Xamarin Apps
Це краткий огляд блог-пости 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-файли.
Для розбору блобів у збірках Android можна використати pyxamstore.
iOS dll-файли легко доступні для декомпіляції, розкриваючи значні частини коду додатка, який часто має спільну базу на різних платформах.
Динамічний аналіз
Динамічний аналіз включає перевірку SSL-пінінгу та використання інструментів, таких як Fridax для змін за час виконання .NET-бінарних файлів у додатках Xamarin. Доступні скрипти Frida для обхіду виявлення root або SSL-пінінгу, що покращує можливості аналізу.
Інші цікаві скрипти Frida:
Додаткова інформація
Last updated