mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-29 08:01:00 +00:00
84 lines
5.6 KiB
Markdown
84 lines
5.6 KiB
Markdown
# Xamarin Apps
|
||
|
||
{% hint style="success" %}
|
||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||
|
||
<details>
|
||
|
||
<summary>支持 HackTricks</summary>
|
||
|
||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
|
||
|
||
</details>
|
||
{% endhint %}
|
||
|
||
这是博客文章 [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) 的摘要
|
||
|
||
## **基本信息**
|
||
|
||
Xamarin 是一个 **开源平台**,旨在帮助开发人员使用 .NET 和 C# 框架 **构建 iOS、Android 和 Windows 应用**。该平台提供了众多工具和扩展,以高效创建现代应用程序。
|
||
|
||
### Xamarin 的架构
|
||
|
||
- 对于 **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 运行时和 Mono 框架
|
||
|
||
**.NET 框架** 包含用于应用程序开发的程序集、类和命名空间,.NET 运行时管理代码执行。它提供平台独立性和向后兼容性。**Mono 框架** 是 .NET 框架的开源版本,始于 2005 年,旨在将 .NET 扩展到 Linux,现在由 Microsoft 支持并由 Xamarin 主导。
|
||
|
||
### 反向工程 Xamarin 应用
|
||
|
||
#### Xamarin 程序集的反编译
|
||
|
||
反编译将编译后的代码转换回源代码。在 Windows 中,Visual Studio 的模块窗口可以识别可反编译的模块,允许直接访问第三方代码并提取源代码进行分析。
|
||
|
||
#### JIT 与 AOT 编译
|
||
|
||
- **Android** 支持即时编译 (JIT) 和提前编译 (AOT),并具有混合 AOT 模式以实现最佳执行速度。完整 AOT 仅限于企业许可证。
|
||
- **iOS** 仅采用 AOT 编译,因为 Apple 对动态代码执行有严格限制。
|
||
|
||
### 从 APK/IPA 中提取 dll 文件
|
||
|
||
要访问 APK/IPA 中的程序集,请解压文件并浏览程序集目录。对于 Android,可以使用 [XamAsmUnZ](https://github.com/cihansol/XamAsmUnZ) 和 [xamarin-decompress](https://github.com/NickstaDB/xamarin-decompress) 等工具解压 dll 文件。
|
||
```bash
|
||
python3 xamarin-decompress.py -o /path/to/decompressed/apk
|
||
```
|
||
对于Android中的assembly blobs,[pyxamstore](https://github.com/jakev/pyxamstore)可以解压它们。
|
||
```bash
|
||
pyxamstore unpack -d /path/to/decompressed/apk/assemblies/
|
||
```
|
||
iOS dll 文件可以轻松访问以进行反编译,揭示了应用程序代码的显著部分,这些代码通常在不同平台之间共享一个共同的基础。
|
||
|
||
### 动态分析
|
||
|
||
动态分析涉及检查 SSL 钉扎,并使用像 [Fridax](https://github.com/NorthwaveSecurity/fridax) 这样的工具对 Xamarin 应用中的 .NET 二进制文件进行运行时修改。Frida 脚本可用于绕过根检测或 SSL 钉扎,从而增强分析能力。
|
||
|
||
其他有趣的 Frida 脚本:
|
||
|
||
* [**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)
|
||
|
||
|
||
## 进一步信息
|
||
* [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)
|
||
* [https://thecobraden.com/posts/unpacking\_xamarin\_assembly\_stores/](https://thecobraden.com/posts/unpacking\_xamarin\_assembly\_stores/)
|
||
|
||
{% hint style="success" %}
|
||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||
|
||
<details>
|
||
|
||
<summary>支持 HackTricks</summary>
|
||
|
||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **在** **Twitter** 🐦 **上关注我们** [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享黑客技巧。
|
||
|
||
</details>
|
||
{% endhint %}
|