art*_*cer 5 xamarin.ios xamarin.android xamarin
Theres可以通过任何方式查明给定的Android或iOS应用是否是使用Xamarin构建的?
是.应用程序的文件夹的结构.例如,你可以在Android中
如果您正在查看"正常"单声道机器人应用程序(使用类似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
Run Code Online (Sandbox Code Playgroud)
程序集目录中的文件将是Mono/.Net代码,可以使用这些常规工具进行反转.
classes.dex是一个普通的Android Dalvik可执行文件(dex),它可以使用常用工具(baksmali,IDA Pro等)进行反转 - 尽管它应该只是加载了启动Mono引擎的存根.
这些文件包含在lib/**/*中.本机共享库也是如此,它们被编译成ELF ARM文件.这些通常发送到monodroid引擎(libmonodroid.so)以及开发人员可能使用的其他插件.这些将需要支持ELF ARM的反汇编程序,如Hopper,IDA Pro,r2等.
在上面的具体示例中,唯一的非Xamarin代码将位于Sikur.dll和Sikur.Monodroid.dll中.
反编译apk https://ibotpeaches.github.io/Apktool/
如果在xamarin中有mono.dll.
你可以用c#反编译一些.dll来看代码.
在iOS中,您无法进行分解.Android应用程序被编译为与机器无关的Java字节码,将其转换回Java相对容易.iOS应用程序直接编译为机器代码,具有积极的优化传递,往往会破坏原始代码的许多结构.
但这并不是说你不能从已编译的iOS应用程序中学到任何有用的东西.该级转储工具,可以从编译应用程序,它可以给你线索,它是如何实现的提取Objective-C类,属性和方法的名称.NibUnlocker可以将已编译的Interface Builder UI文件转换回可编辑的格式.Hopper不仅可以反汇编机器代码将其转换为汇编代码,还可以进一步将其转换为更易理解的伪代码.图像,声音和其他资源通常包含在iOS应用包中未加密.
您可以尝试使用此应用程序并观看区别是任何阅读此答案的人都可以尝试.让我知道有什么区别.
| 归档时间: |
|
| 查看次数: |
909 次 |
| 最近记录: |