Xamarin Apps
Last updated
Last updated
学习与实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习与实践 GCP 黑客技术: HackTricks 培训 GCP 红队专家 (GRTE)
Xamarin 是一个 开源平台,旨在帮助开发者使用 .NET 和 C# 框架 构建 iOS、Android 和 Windows 应用。该平台提供了众多工具和扩展,以高效创建现代应用。
对于 Android,Xamarin 通过 .NET 绑定与 Android 和 Java 命名空间集成,在 Mono 执行环境中与 Android Runtime (ART) 一起运行。托管可调用包装器 (MCW) 和 Android 可调用包装器 (ACW) 促进了 Mono 和 ART 之间的通信,二者均基于 Linux 内核构建。
对于 iOS,应用在 Mono 运行时下运行,利用完整的提前编译 (AOT) 将 C# .NET 代码转换为 ARM 汇编语言。此过程与 UNIX 类内核上的 Objective-C 运行时一起运行。
.NET 框架 包含用于应用开发的程序集、类和命名空间,.NET 运行时管理代码执行。它提供平台独立性和向后兼容性。Mono 框架 是 .NET 框架的开源版本,始于 2005 年,旨在将 .NET 扩展到 Linux,现在由 Microsoft 支持并由 Xamarin 主导。
反编译将编译后的代码转换回源代码。在 Windows 中,Visual Studio 的模块窗口可以识别可供反编译的模块,从而直接访问第三方代码并提取源代码进行分析。
Android 支持即时编译 (JIT) 和提前编译 (AOT),并具有混合 AOT 模式以实现最佳执行速度。完整 AOT 仅限于企业许可证。
iOS 仅采用 AOT 编译,因为 Apple 对动态代码执行有严格限制。
要访问 APK/IPA 中的程序集,请解压文件并浏览程序集目录。对于 Android,可以使用 XamAsmUnZ 和 xamarin-decompress 等工具解压 dll 文件。
在反编译APK后,如果可以看到unknown/assemblies/文件夹及其中的.dll
文件,则可以直接使用dnSpy对.dll
进行分析。
然而,有时会在unknown/assemblies/文件夹中发现assemblies.blob
和assemblies.manifest
文件。可以使用工具pyxamstore来解包Xamarin应用中的assemblies.blob
文件,从而访问.NET程序集以进行进一步分析:
iOS dll 文件可以轻松获取以进行反编译,揭示应用程序代码的显著部分,这些代码通常在不同平台之间共享一个共同的基础。
一旦获得 .dll
,就可以使用 dnSpy 或 ILSpy 等工具对 .Net 代码进行静态分析,这将允许修改应用程序的代码。这对于篡改应用程序以绕过保护措施非常有用。
请注意,在修改应用程序后,您需要将其重新打包并重新签名。
动态分析涉及检查 SSL 钉扎,并使用 Fridax 等工具对 Xamarin 应用中的 .NET 二进制文件进行运行时修改。Frida 脚本可用于绕过根检测或 SSL 钉扎,从而增强分析能力。
其他有趣的 Frida 脚本:
工具 Uber APK Signer 简化了使用相同密钥签名多个 APK 的过程,并可用于在对应用程序进行更改后重新签名。
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)