8.2 KiB
Xamarin Apps
Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!
Інші способи підтримки HackTricks:
- Якщо ви хочете побачити вашу компанію рекламовану на HackTricks або завантажити HackTricks у форматі PDF, перевірте ПЛАНИ ПІДПИСКИ!
- Отримайте офіційний PEASS & HackTricks мерч
- Відкрийте для себе Сім'ю PEASS, нашу колекцію ексклюзивних NFT
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами на Twitter 🐦 @carlospolopm.
- Поділіться своїми хакерськими трюками, надсилайте PR до HackTricks і HackTricks Cloud репозиторіїв на GitHub.
Це краткий огляд блог-пости https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers
Основна інформація
Xamarin - це відкрита платформа, призначена для розробників для створення додатків для iOS, Android та Windows з використанням .NET та C# фреймворків. Ця платформа надає доступ до численних інструментів та розширень для ефективного створення сучасних додатків.
Архітектура Xamarin
- Для Android, Xamarin інтегрується з Android та Java namespaces через .NET bindings, працюючи в середовищі виконання Mono поряд з Android Runtime (ART). Managed Callable Wrappers (MCW) та Android Callable Wrappers (ACW) сприяють комунікації між Mono та ART, обидва побудовані на ядрі Linux.
- Для iOS, додатки працюють під управлінням Mono runtime, використовуючи повну компіляцію Ahead of Time (AOT) для перетворення коду C# .NET в мову асемблера ARM. Цей процес працює поряд з Objective-C Runtime на ядрі подібному до UNIX.
.NET Runtime та Mono Framework
.NET framework включає збірки, класи та простори імен для розробки додатків, а .NET Runtime керує виконанням коду. Він пропонує платформенну незалежність та сумісність з попередніми версіями. Mono Framework - це відкрита версія .NET framework, започаткована в 2005 році для розширення .NET на Linux, зараз підтримується Microsoft та очолюється Xamarin.
Реверс-інженерія додатків Xamarin
Декомпіляція збірок Xamarin
Декомпіляція перетворює скомпільований код назад у вихідний код. У Windows вікно Модулів у Visual Studio може ідентифікувати модулі для декомпіляції, що дозволяє безпосередній доступ до коду сторонніх вендорів та видобування вихідного коду для аналізу.
JIT проти AOT компіляції
- Android підтримує Just-In-Time (JIT) та Ahead-Of-Time (AOT) компіляцію, з гібридним режимом AOT для оптимальної швидкості виконання. Повна AOT доступна лише для корпоративних ліцензій.
- iOS використовує виключно AOT компіляцію через обмеження Apple на динамічне виконання коду.
Вилучення dll-файлів з APK/IPA
Для доступу до збірок у APK/IPA розпакуйте файл та дослідіть каталоги збірок. Для Android інструменти, такі як XamAsmUnZ та xamarin-decompress, можуть розпаковувати dll-файли.
python3 xamarin-decompress.py -o /path/to/decompressed/apk
Для розбору блобів у збірках Android можна використати pyxamstore.
pyxamstore unpack -d /path/to/decompressed/apk/assemblies/
iOS dll-файли легко доступні для декомпіляції, розкриваючи значні частини коду додатка, який часто має спільну базу на різних платформах.
Динамічний аналіз
Динамічний аналіз включає перевірку SSL-пінінгу та використання інструментів, таких як Fridax для змін за час виконання .NET-бінарних файлів у додатках Xamarin. Доступні скрипти Frida для обхіду виявлення root або SSL-пінінгу, що покращує можливості аналізу.
Інші цікаві скрипти Frida:
Додаткова інформація
- https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers
- https://thecobraden.com/posts/unpacking_xamarin_assembly_stores/
Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!
Інші способи підтримки HackTricks:
- Якщо ви хочете побачити вашу компанію рекламовану в HackTricks або завантажити HackTricks у PDF-форматі, перевірте ПЛАНИ ПІДПИСКИ!
- Отримайте офіційний PEASS & HackTricks мерч
- Відкрийте для себе Сім'ю PEASS, нашу колекцію ексклюзивних NFT
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами на Twitter 🐦 @carlospolopm.
- Поділіться своїми хакерськими трюками, надсилайте PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.