2024-02-08 03:56:12 +00:00
# Xamarin 应用
2023-07-31 15:59:11 +00:00
< details >
2024-02-08 03:56:12 +00:00
< summary > < strong > 从零开始学习 AWS 黑客技术,成为专家< / strong > < a href = "https://training.hacktricks.xyz/courses/arte" > < strong > htARTE( HackTricks AWS 红队专家)< / strong > < / a > < strong > ! < / strong > < / summary >
2023-07-31 15:59:11 +00:00
2024-01-05 11:51:55 +00:00
支持 HackTricks 的其他方式:
2024-02-08 03:56:12 +00:00
* 如果您想看到您的**公司在 HackTricks 中做广告**或**下载 PDF 版本的 HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
* 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
* 探索[**PEASS 家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFT**](https://opensea.io/collection/the-peass-family)收藏品
2024-02-09 01:27:24 +00:00
* **加入** 💬 [**Discord 群组** ](https://discord.gg/hRep4RUj7f ) 或 [**电报群组** ](https://t.me/peass ) 或在 **Twitter** 🐦 [**@carlospolopm** ](https://twitter.com/hacktricks_live ) 上**关注**我们。
2024-02-08 03:56:12 +00:00
* 通过向 [**HackTricks** ](https://github.com/carlospolop/hacktricks ) 和 [**HackTricks Cloud** ](https://github.com/carlospolop/hacktricks-cloud ) github 仓库提交 PR 来**分享您的黑客技巧**。
2023-07-31 15:59:11 +00:00
< / details >
2024-02-08 03:56:12 +00:00
这是博客文章[https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers](https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers)的摘要
2023-07-31 15:59:11 +00:00
2024-02-08 03:56:12 +00:00
## **基本信息**
2023-07-31 15:59:11 +00:00
2024-02-09 01:27:24 +00:00
Xamarin 是一个为开发人员设计的**开源平台**,可使用 .NET 和 C# 框架**构建 iOS、Android 和 Windows 应用**。该平台提供访问众多工具和扩展,以高效创建现代应用程序。
2023-07-31 15:59:11 +00:00
2024-02-08 03:56:12 +00:00
### Xamarin 的架构
2023-07-31 15:59:11 +00:00
2024-02-09 01:27:24 +00:00
- 对于**Android**, Xamarin 通过 .NET 绑定与 Android 和 Java 命名空间集成,在 Mono 执行环境中与 Android Runtime (ART) 一起运行。托管可调用包装器 (MCW) 和 Android 可调用包装器 (ACW) 促进了 Mono 和 ART 之间的通信,两者都建立在 Linux 内核上。
2024-02-08 03:56:12 +00:00
- 对于**iOS**,应用程序在 Mono 运行时下运行,利用完全的 Ahead of Time (AOT) 编译将 C# .NET 代码转换为 ARM 汇编语言。此过程与 Objective-C Runtime 在类 UNIX 内核上运行。
2023-07-31 15:59:11 +00:00
2024-02-09 01:27:24 +00:00
### .NET 运行时和 Mono 框架
2023-07-31 15:59:11 +00:00
2024-02-09 01:27:24 +00:00
**.NET 框架**包括用于应用程序开发的程序集、类和命名空间,.NET 运行时管理代码执行。它提供平台独立性和向后兼容性。**Mono 框架**是 .NET 框架的开源版本,于 2005 年启动,旨在将 .NET 扩展到 Linux, 现在得到 Microsoft 的支持,并由 Xamarin 领导。
2023-07-31 15:59:11 +00:00
2024-02-08 03:56:12 +00:00
### 反向工程 Xamarin 应用
2023-07-31 15:59:11 +00:00
2024-02-08 03:56:12 +00:00
#### 反编译 Xamarin 程序集
2023-07-31 15:59:11 +00:00
2024-02-09 01:27:24 +00:00
反编译将编译后的代码转换回源代码。在 Windows 中, Visual Studio 的模块窗口可以识别用于反编译的模块,从而直接访问第三方代码并提取源代码进行分析。
2023-07-31 15:59:11 +00:00
2024-02-09 01:27:24 +00:00
#### JIT vs AOT 编译
2023-12-26 02:11:12 +00:00
2024-02-09 01:27:24 +00:00
- **Android**支持即时 (JIT) 和提前 (AOT) 编译,具有混合 AOT 模式以获得最佳执行速度。完全 AOT 仅适用于企业许可证。
- **iOS**由于苹果对动态代码执行的限制,仅使用 AOT 编译。
2023-07-31 15:59:11 +00:00
2024-02-08 03:56:12 +00:00
### 从 APK/IPA 中提取 dll 文件
2023-07-31 15:59:11 +00:00
2024-02-08 03:56:12 +00:00
要访问 APK/IPA 中的程序集,请解压文件并浏览程序集目录。对于 Android, 可以使用 [XamAsmUnZ ](https://github.com/cihansol/XamAsmUnZ ) 和 [xamarin-decompress ](https://github.com/NickstaDB/xamarin-decompress ) 等工具解压缩 dll 文件。
```bash
2023-07-31 15:59:11 +00:00
python3 xamarin-decompress.py -o /path/to/decompressed/apk
```
2024-02-09 01:27:24 +00:00
对于 Android 中的汇编 blob, [pyxamstore](https://github.com/jakev/pyxamstore) 可以对其进行解包。
2024-02-08 03:56:12 +00:00
```bash
2023-09-03 15:33:32 +00:00
pyxamstore unpack -d /path/to/decompressed/apk/assemblies/
```
2024-02-09 01:27:24 +00:00
iOS的dll文件可以轻松访问并进行反编译, 揭示应用程序代码的重要部分, 这些部分通常在不同平台上共享相同的基础。
2023-07-31 15:59:11 +00:00
2024-02-08 03:56:12 +00:00
### 动态分析
2023-07-31 15:59:11 +00:00
2024-02-08 03:56:12 +00:00
动态分析涉及检查SSL绑定并使用类似[Fridax](https://github.com/NorthwaveSecurity/fridax)的工具对Xamarin应用程序中的.NET二进制文件进行运行时修改。Frida脚本可用于绕过root检测或SSL绑定, 增强分析能力。
2023-07-31 15:59:11 +00:00
2024-02-08 03:56:12 +00:00
其他有趣的Frida脚本:
2023-07-31 15:59:11 +00:00
* [**xamarin-antiroot** ](https://codeshare.frida.re/@Gand3lf/xamarin-antiroot/ )
* [**xamarin-root-detect-bypass** ](https://codeshare.frida.re/@nuschpl/xamarin-root-detect-bypass/ )
* [**Frida-xamarin-unpin** ](https://github.com/GoSecure/frida-xamarin-unpin )
2024-02-08 03:56:12 +00:00
## 更多信息
2023-07-31 15:59:11 +00:00
* [https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers ](https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers )
2023-09-24 14:35:53 +00:00
* [https://thecobraden.com/posts/unpacking\_xamarin\_assembly\_stores/ ](https://thecobraden.com/posts/unpacking\_xamarin\_assembly\_stores/ )
2023-07-31 15:59:11 +00:00
< details >
2024-02-08 03:56:12 +00:00
< summary > < strong > 从零开始学习AWS黑客技术, 成为专家< / strong > < a href = "https://training.hacktricks.xyz/courses/arte" > < strong > htARTE (HackTricks AWS Red Team Expert)< / strong > < / a > < strong > !< / strong > < / summary >
2024-01-05 11:51:55 +00:00
支持HackTricks的其他方式:
2023-07-31 15:59:11 +00:00
2024-02-08 03:56:12 +00:00
* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
2024-02-09 01:27:24 +00:00
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[NFTs](https://opensea.io/collection/the-peass-family)收藏品
* **加入** 💬 [**Discord群** ](https://discord.gg/hRep4RUj7f ) 或 [**电报群** ](https://t.me/peass ) 或在**Twitter** 🐦 [**@carlospolopm** ](https://twitter.com/hacktricks_live )**上关注**我们。
2024-02-08 03:56:12 +00:00
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
2023-07-31 15:59:11 +00:00
< / details >