私たちの開発チームは、(ほとんど)Visual StudioでMonoDroidを使用してAndroidアプリを完成させました。それは銀行業務と関係があるため、逆コンパイルしようとする人に対して何らかのセキュリティを追加するために、難読化しようとしました。最初はProGuardを使うことができたと思っていましたが、Visual Studioで編集できるproject.propertiesファイルはないようです。誰もこの題材に輝く輝かしい助けを輝かせて、ProGuardをMonoと一緒に使うことができるかどうか教えてください。そして私の新しさは私のビジョンを曇らせていますか? Android用ProGuardをMonoDroidで使用する方法はありますか?
答えて
モノは、
(Monoランタイムは、それが発行与えるようで別の開発者が、我々はすぐにProGuard-を使用する方法を見つけることができませんでしたが、それは、多くのエラーで失敗しましたDotfuscatorの-sinceを使用しようとしました。) toolchainは現時点でproguardを実行するためのサポートを持っていません。
しかし、1つの広範な例外を除いて、プロガードのサポートの欠如は主に間違いです。 ProguardはJavaバイトコードでのみ動作します。 Mono for Android architectureにはプロセスでMonoランタイムが実行されています。 .NET CILはJavaバイトコードに「コンパイル」されず、CILはMonoによってJITされます。実行中のJavaコードはAndroid Callable Wrappersのため、Java/Androidはマネージコードを呼び出すことができます。
したがって、AndroidアプリケーションのMonoで保護されるのは、メソッド宣言の大部分で構成されるAndroid Callable Wrappersだけです。 Android Callable Wrappersでデコンパイルするビジネスロジックはありません。
代わりに、CILアセンブリは、圧縮解除されて.apk
ファイルに格納されます。アセンブリーを逆コンパイルして、すべてのビジネス・ロジックを取得することができます。ここでの解決策は、アセンブリを.apk
に埋め込む前に難読化することです。 XenocodeのPostbuild 2010を使用することができるreportsがありますが、これをフックする方法の詳細はわかりません。
上記の例外は、AndroidJavaSource
およびAndroidJavaLibrary
ビルドアクションを介してbuild procesに含まれるカスタムJavaコードに関するもので、AdMobライブラリなどを組み込むために使用されます。このシナリオでは、ビルドプロセスにプロガードサポートを追加する必要がありますが、プロガードサポートが追加されるタイミングについてはETAがありません。
これは本当に物事をクリアしました。ありがとう! – Luke
- 1. ProGuardを使用して難読化されたAndroid APKをリバースエンジニアリング/デコンパイルする方法はありますか?
- 2. ProGuard最適化を使用せずにロギングコールを削除する方法はありますか?
- 3. DataprocでBigQueryを使用する方法はありますか?
- 4. FragmentでSearchViewを使用する方法はありますか?
- 5. モジュールでクラスメソッドを使用する方法はありますか?
- 6. jscriptでGetProfilesDirectoryを使用する方法はありますか?
- 7. HTML5でフレームを使用する方法はありますか?
- 8. Unity3dでスレッドを使用する方法はありますか?
- 9. FlexでOpenLayersを使用する方法はありますか?
- 10. cocoapodでプルリクエストを使用する方法はありますか?
- 11. TabLayoutでSpannableStringを使用する方法はありますか?
- 12. FirestoreでGeoFireを使用する方法はありますか?
- 13. モノガームでクリップボードを使用する方法はありますか?
- 14. ServerSocketChannelでSSLContextを使用する方法はありますか?
- 15. クロムエクステンションでC++を使用する方法はありますか?
- 16. mod_wsgiをlocalhostで使用する方法はありますか?
- 17. GEOADDでReJSONを使用する方法はありますか?
- 18. WikitudeをNativescriptで使用する方法はありますか
- 19. tvOSでバックエンドレスを使用する方法はありますか?
- 20. MonoDroid NumberPicker Example使用法は?
- 21. com.foo。*のみを難読化する方法はありますが、com.foo.bar。*は除外できますか? (ProGuardの)
- 22. テンプレートで一致方法を使用する方法はありますか
- 23. Proguardファイルの使用方法は?
- 24. LinqをOracleに使用する方法はありますか
- 25. "Workspace project"リポジトリを使用する方法はありますか?
- 26. ScalaMockをテストに使用する方法はありますか?
- 27. ARMプロセッサを使用する方法はありますか?
- 28. MonoDroidまたはAndroidを使用すべきですか?
- 29. android 2.3でproguardを使用する方法
- 30. アンドロイドでproguardを使用する効率的な方法
私はモノドロイドチームがこのベストに答えることができると思いますか? – Peterdk
私は数日前に実際にサポートメールを送ってきましたが、私は何の反応も得ていませんでした。私はここで質問して最後に試してみると思います。 – Luke
難読化は、あなたのコードベースを大きく守るためには何もしません。 1つは、ランタイムはそれを実行するためにcilを再構成する必要があります。コードの一部に依存しないようにするには、アプリケーションモデルが間違っている必要があります。それは私があなたの知的財産を隠そうとしているのを見ることができると言いました – IanNorton