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

6.5 KiB
Raw Blame History

Xamarin Uygulamaları

AWS hacklemeyi sıfırdan kahramanla öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)!

HackTricks'ı desteklemenin diğer yolları:

Bu, 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ış ı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 ve xamarin-decompress gibi araçlar dll dosyalarını sıkıştırılmış halden çözebilir.

python3 xamarin-decompress.py -o /path/to/decompressed/apk

Android'deki derleme blokları için, pyxamstore onları açabilir.

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 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:

Daha fazla bilgi

AWS hackleme konusunda sıfırdan kahraman olmak için htARTE (HackTricks AWS Red Team Expert)'ı öğrenin!

HackTricks'i desteklemenin diğer yolları: