如果您正在查看“普通”单声道 droid 应用程序(使用 Xamarin 之类的程序编译),那么您将在 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
assemblies
目录中的文件将是 Mono/.Net 代码,可以使用那些普通工具进行反转。
classes.dex
是一个普通的 Android Dalvik 可执行文件 (dex),可以使用常用工具(baksmali、IDA Pro 等)反转它 - 尽管它应该只是加载以启动 Mono 引擎的存根。
包含的文件lib/**/*.so
是编译成 ELF ARM 文件的本机共享库。这些通常会进入 monodroid 引擎 ( libmonodroid.so
) 以及开发人员使用过的其他潜在插件。这些将需要支持 ELF ARM 的反汇编程序,如 Hopper、IDA Pro、r2 等。
在上面的特定示例中,唯一的非 Xamarin 代码将位于Sikur.dll
和 中Sikur.Monodroid.dll
。