2016-08-16 15 views

答えて

8

はい。アプリケーションのフォルダの構造。あなたは(Xamarinのようなものを使用してコンパイル)ドロイドアプリケーションモノ「ノーマル」を見ている場合たとえば、あなたは、Android

に、あなたはAPK/ZIPにおけるこれらの構造のいくつかの」

/assemblies/Sikur.Monodroid.dll 
/assemblies/Sikur.dll 
/assemblies/Xamarin.Android.Support.v13.dll 
/assemblies/Xamarin.Android.Support.v4.dll 
/assemblies/Xamarin.Android.Support.v7.AppCompat.dll 
/assemblies/Xamarin.Android.Support.v7.CardView.dll 
/assemblies/Xamarin.Android.Support.v7.RecyclerView.dll 
/assemblies/Xamarin.Mobile.dll 
/assemblies/mscorlib.dll 
/classes.dex 
/lib 
/lib/armeabi-v7a 
/lib/armeabi-v7a/libmonodroid.so 
/lib/armeabi-v7a/libmonosgen-2.0.so 
が表示されますすることができます

アセンブリディレクトリ内のファイルはMono/.Netコードになり、これらの通常のツールを使用して元に戻すことができます。

classes.dexは通常のツール(baksmali、IDA Proなど)を使用して元に戻すことができる通常のAndroid Dalvik実行ファイル(dex)ですが、Monoエンジンを起動するために読み込まれたスタブでなければなりません。

ファイルにはlib/**/*が含まれています。これは、ELF ARMファイルにコンパイルされたネイティブ共有ライブラリです。これらは通常、モノドロイドエンジン(libmonodroid.so)と、開発者が使用していた可能性のある他のプラグインに向かいます。これらは、ホッパー、IDA Pro、r2などのELF ARM対応ディスアセンブラを必要とします。

上記の特定の例では、Xamarin以外のコードはSikur.dllとSikur.Monodroid.dllにのみ存在します。 mono.dllを持っている場合はAPK https://ibotpeaches.github.io/Apktool/

デコンパイル


はxamarinです。

コードを見てCでいくつかの.dllを逆コンパイルすることができます。


とiOSでは逆コンパイルできません。 Androidアプリはマシンに依存しないJavaバイトコードにコンパイルされており、比較的簡単にJavaに変換することができます。 iOSアプリはマシンコードに直接コンパイルされ、元のコードの構造を破壊する傾向がある積極的な最適化パスがあります。

コンパイルされたiOSアプリから役立つものは何も学ぶことはできません。 class-dumpツールは、Objective-Cクラス、プロパティ、およびメソッドの名前をコンパイル済みのアプリケーションから抽出できます。これにより、実装方法の手がかりを得ることができます。 NibUnlockerは、コンパイル済みのInterface Builder UIファイルを編集可能な形式に戻すことができます。 Hopperは、機械コードを分解してアセンブリコードにするだけでなく、さらに理解しやすい擬似コードに変換することができます。また、画像、サウンド、その他のリソースは、通常、iOSアプリのバンドルに暗号化されていません。

このアプリを試してみると、違いを見てみると、この回答を読んだ人は誰でも試すことができます。違いが何であるか教えてください。

関連する問題