2012-01-06 12 views
3

私たちの開発チームは、(ほとんど)Visual StudioでMonoDroidを使用してAndroidアプリを完成させました。それは銀行業務と関係があるため、逆コンパイルしようとする人に対して何らかのセキュリティを追加するために、難読化しようとしました。最初はProGuardを使うことができたと思っていましたが、Visual Studioで編集できるproject.propertiesファイルはないようです。誰もこの題材に輝く輝かしい助けを輝かせて、ProGuardをMonoと一緒に使うことができるかどうか教えてください。そして私の新しさは私のビジョンを曇らせていますか? Android用ProGuardをMonoDroidで使用する方法はありますか?

+0

私はモノドロイドチームがこのベストに答えることができると思いますか? – Peterdk

+0

私は数日前に実際にサポートメールを送ってきましたが、私は何の反応も得ていませんでした。私はここで質問して最後に試してみると思います。 – Luke

+0

難読化は、あなたのコードベースを大きく守るためには何もしません。 1つは、ランタイムはそれを実行するためにcilを再構成する必要があります。コードの一部に依存しないようにするには、アプリケーションモデルが間違っている必要があります。それは私があなたの知的財産を隠そうとしているのを見ることができると言いました – IanNorton

答えて

5

モノは、

(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がありません。

+0

これは本当に物事をクリアしました。ありがとう! – Luke

関連する問題