xamarin - 查找应用程序是否是使用 Xamarin 构建的?

标签 xamarin xamarin.ios xamarin.android

有什么方法可以确定给定的 Android 或 iOS 应用程序是使用 Xamarin 构建的吗?

最佳答案

是的。应用程序文件夹的结构。例如,您可以在 Android 中

如果您正在查看“普通”单声道 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

程序集目录中的文件将是 Mono/.Net 代码,可以使用那些普通工具进行反转。

classes.dex 是一个普通的 Android Dalvik 可执行文件 (dex),可以使用常用工具(baksmali、IDA Pro 等)反转它 - 尽管它应该只是加载以启动 Mono 引擎的 stub 。

lib/**/*.so 中包含的文件是编译成 ELF ARM 文件的 native 共享库。这些通常会进入 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 应用程序中学到任何有用的东西。 class-dump工具可以从编译的应用程序中提取 Objective-C 类、属性和方法的名称,这可以为您提供有关它是如何实现的线索。 NibUnlocker可以将编译的 Interface Builder UI 文件转换回可编辑的格式。 Hopper不仅可以将机器码反汇编为汇编代码,还可以进一步将其转换为更易理解的伪代码。图像、声音和其他资源通常未加密地包含在 iOS 应用程序包中。

您可以尝试使用此应用程序并观察不同之处在于阅读此答案的任何人都可以尝试。让我知道有什么区别。

关于xamarin - 查找应用程序是否是使用 Xamarin 构建的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38982770/

相关文章:

ios - 如何在 Xamarin 中处理 iOS 生物识别身份验证中的错误情况?

iphone - 使用C#在单点触控iPhone项目上的动画 View

Android 使用许多 webView.LoadData 调用为 WebView 设置动画

c# - Xamarin - 在社区版中编译 AOT?

c# - 如何使用 Xamarin.from 应用部署数据库文件?

android - xamarin 形式的本地化

Xamarin.Forms - "include"是否有局部 View 的机制?

cordova - Xamarin 和 PhoneGap 可以一起使用吗?

mono - Mono for Android 中的[应用程序]是什么?

android - Xamarin.Android 检查 API 级别