Xamarin Apps

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Це краткий огляд блог-пости 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:

Додаткова інформація

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Last updated