hacktricks/mobile-pentesting/xamarin-apps.md
2024-02-10 18:14:16 +00:00

82 lines
6.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Xamarin Uygulamaları
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahramanla öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklam vermek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
</details>
Bu, [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) blog yazısının özeti.
## **Temel Bilgiler**
Xamarin, .NET ve C# çerçevelerini kullanarak iOS, Android ve Windows için uygulamalar oluşturmak için geliştiriciler için tasarlanmış **açık kaynaklı bir platformdur**. Bu platform, modern uygulamaları verimli bir şekilde oluşturmak için birçok araç ve uzantıya erişim sağlar.
### Xamarin'in Mimarisi
- **Android** için, Xamarin, .NET bağlantıları aracılığıyla Android ve Java ad alanlarını .NET bağlamına entegre eder ve Android Runtime (ART) ile birlikte Mono yürütme ortamında çalışır. Yönetilen Çağrılabilir Sargılar (MCW) ve Android Çağrılabilir Sargılar (ACW), Mono ve ART arasındaki iletişimi kolaylaştırır ve her ikisi de Linux çekirdeği üzerine inşa edilmiştir.
- **iOS** için, uygulamalar Mono çalışma zamanı altında çalışır ve C# .NET kodunu ARM derlemesine dönüştürmek için tam Önce Derleme (AOT) derlemesini kullanır. Bu işlem, UNIX benzeri bir çekirdek üzerinde Objective-C Runtime ile birlikte çalışır.
### .NET Runtime ve Mono Framework
**.NET çerçevesi**, uygulama geliştirme için derlemeleri, sınıfları ve ad alanlarını içerir ve kod yürütmesini yöneten .NET Runtime'ı sunar. Platform bağımsızlığı ve geriye dönük uyumluluk sunar. **Mono Framework**, .NET çerçevesinin açık kaynaklı bir sürümü olup, 2005 yılında .NET'i Linux'a genişletmek için başlatılmıştır ve şu anda Microsoft tarafından desteklenmekte ve Xamarin tarafından yönetilmektedir.
### Xamarin Uygulamalarının Tersine Mühendisliği
#### Xamarin Derlemelerinin Dekompilasyonu
Dekompilasyon, derlenmiş kodu tekrar kaynak koduna dönüştürür. Windows'ta, Visual Studio'daki Modüller penceresi, dekompilasyon için modülleri tanımlayabilir, üçüncü taraf koduna doğrudan erişim sağlayabilir ve analiz için kaynak kodunu çıkarabilir.
#### JIT ve AOT Derlemesi
- **Android**, Just-In-Time (JIT) ve Ahead-Of-Time (AOT) derlemesini destekler ve en iyi yürütme hızı için Hibrit AOT moduna sahiptir. Tam AOT, Yönetici lisanslarına özeldir.
- **iOS**, Apple'ın dinamik kod yürütme üzerindeki kısıtlamaları nedeniyle yalnızca AOT derlemesini kullanır.
### APK/IPA Dosyalarından dll Dosyalarını Çıkarma
APK/IPA dosyalarındaki derlemelere erişmek için dosyayıın ve derlemeler dizinini keşfedin. Android için, [XamAsmUnZ](https://github.com/cihansol/XamAsmUnZ) ve [xamarin-decompress](https://github.com/NickstaDB/xamarin-decompress) gibi araçlar dll dosyalarını sıkıştırılmış halden çözebilir.
```bash
python3 xamarin-decompress.py -o /path/to/decompressed/apk
```
Android'deki derleme blokları için, [pyxamstore](https://github.com/jakev/pyxamstore) onları açabilir.
```bash
pyxamstore unpack -d /path/to/decompressed/apk/assemblies/
```
iOS dll dosyaları deşifre edilmek için kolayca erişilebilir ve genellikle farklı platformlar arasında ortak bir temel paylaşan uygulama kodunun önemli bölümlerini ortaya çıkarır.
### Dinamik Analiz
Dinamik analiz, SSL pinning kontrolü yapmayı ve Xamarin uygulamalarındaki .NET ikili dosyasının çalışma zamanı değişiklikleri için [Fridax](https://github.com/NorthwaveSecurity/fridax) gibi araçları kullanmayı içerir. Frida betikleri, kök tespitini veya SSL pinning'i atlamak için kullanılabilir ve analiz yeteneklerini artırır.
Diğer ilginç Frida betikleri:
* [**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)
## Daha fazla bilgi
* [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/)
<details>
<summary><strong>AWS hackleme konusunda sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>'ı öğrenin!</strong></summary>
HackTricks'i desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın veya** bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin.**
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın.**
</details>