私たちの開発チームは、(ほとんど)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. クロムエクステンションでC++を使用する方法はありますか?
- 4. FlexでOpenLayersを使用する方法はありますか?
- 5. HTML5でフレームを使用する方法はありますか?
- 6. DataprocでBigQueryを使用する方法はありますか?
- 7. jscriptでGetProfilesDirectoryを使用する方法はありますか?
- 8. mod_wsgiをlocalhostで使用する方法はありますか?
- 9. Proguardファイルの使用方法は?
- 10. MonoDroid NumberPicker Example使用法は?
- 11. ARMプロセッサを使用する方法はありますか?
- 12. "Workspace project"リポジトリを使用する方法はありますか?
- 13. LinqをOracleに使用する方法はありますか
- 14. android 2.3でproguardを使用する方法
- 15. dwrでproguardを使用する最良の方法
- 16. アンドロイドでproguardを使用する効率的な方法
- 17. ProGuardで-dontwarnを使用するには?
- 18. IE7またはIE8でCanvasを使用する方法はありますか?
- 19. ASP.NETでストアドプロシージャを使用するより良い方法はありますか?
- 20. will_paginateでヘルパーメソッドを使用するより良い方法はありますか?
- 21. Sharepointでナビゲーション用の* .sitemapファイルを使用する方法はありますか?
- 22. Android&Proguard - 難読化する方法はありますが、コードを最適化する方法はありませんか?
- 23. MonoDroidまたはAndroidを使用すべきですか?
- 24. Javaアノテーションを使用してAndroidのProguardをガイドする方法
- 25. インクルードパスをPHPでパラメータを使用する方法はありますか?
- 26. MonodroidでContextMenuを使う方法
- 27. MonodroidでMessageBoxを表示する方法
- 28. MonoDroidレイアウトaxmlファイル内でカスタム属性を使用する方法は?
- 29. IronPythonをMonodroidで使用する - NotImplementedError
- 30. MonoDroidでwebView.AddJavascriptInterfaceを使用する
私はモノドロイドチームがこのベストに答えることができると思いますか? – Peterdk
私は数日前に実際にサポートメールを送ってきましたが、私は何の反応も得ていませんでした。私はここで質問して最後に試してみると思います。 – Luke
難読化は、あなたのコードベースを大きく守るためには何もしません。 1つは、ランタイムはそれを実行するためにcilを再構成する必要があります。コードの一部に依存しないようにするには、アプリケーションモデルが間違っている必要があります。それは私があなたの知的財産を隠そうとしているのを見ることができると言いました – IanNorton