Xamarin Apps
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Xamarinは、開発者が.NETおよびC#フレームワークを使用してiOS、Android、Windows用のアプリを構築するために設計されたオープンソースプラットフォームです。このプラットフォームは、効率的に現代的なアプリケーションを作成するための多数のツールと拡張機能へのアクセスを提供します。
Androidの場合、Xamarinは.NETバインディングを介してAndroidおよびJava名前空間と統合され、Android Runtime (ART)とともにMono実行環境内で動作します。Managed Callable Wrappers (MCW)とAndroid Callable Wrappers (ACW)は、MonoとART間の通信を促進し、両者はLinuxカーネル上に構築されています。
iOSの場合、アプリケーションはMonoランタイムの下で実行され、C# .NETコードをARMアセンブリ言語に変換するために完全なAhead of Time (AOT)コンパイルを利用します。このプロセスは、UNIXライクなカーネル上のObjective-C Runtimeとともに実行されます。
.NETフレームワークには、アプリケーション開発のためのアセンブリ、クラス、および名前空間が含まれており、.NETランタイムがコードの実行を管理します。プラットフォームの独立性と後方互換性を提供します。Monoフレームワークは、2005年にLinux向けに.NETを拡張するために開始されたオープンソース版の.NETフレームワークで、現在はMicrosoftによってサポートされ、Xamarinによって主導されています。
デコンパイルは、コンパイルされたコードをソースコードに戻すプロセスです。Windowsでは、Visual Studioのモジュールウィンドウがデコンパイル用のモジュールを特定でき、サードパーティのコードへの直接アクセスと分析のためのソースコードの抽出を可能にします。
Androidは、Just-In-Time (JIT)およびAhead-Of-Time (AOT)コンパイルをサポートしており、最適な実行速度のためのハイブリッドAOTモードがあります。完全なAOTはエンタープライズライセンス専用です。
iOSは、Appleの動的コード実行に関する制限のため、AOTコンパイルのみを使用します。
APK/IPA内のアセンブリにアクセスするには、ファイルを解凍し、アセンブリディレクトリを探索します。Androidの場合、XamAsmUnZやxamarin-decompressのようなツールを使用してdllファイルを解凍できます。
APKを逆コンパイルした後、unknown/assemblies/フォルダ内に.dll
ファイルが見える場合、dnSpyを使用して.dll
を直接分析することが可能です。
しかし、時にはunknown/assemblies/フォルダ内にassemblies.blob
とassemblies.manifest
ファイルが見つかることがあります。ツールpyxamstoreは、Xamarinアプリのassemblies.blob
ファイルを解凍するために使用でき、さらなる分析のために.NETアセンブリにアクセスすることを可能にします。
iOSのdllファイルは逆コンパイルのために容易にアクセス可能であり、アプリケーションコードの重要な部分を明らかにします。これらは異なるプラットフォーム間で共通のベースを共有することがよくあります。
.dll
を取得したら、dnSpy や ILSpy **などのツールを使用して、.Netコードを静的に分析することが可能です。これにより、アプリのコードを変更することができます。これは、保護を回避するためにアプリケーションを改ざんするのに非常に役立ちます。
アプリを変更した後は、再度パッキングし、再署名する必要があることに注意してください。
動的分析は、SSLピンニングのチェックや、Xamarinアプリの.NETバイナリのランタイム変更のためにFridaxのようなツールを使用することを含みます。Fridaスクリプトは、ルート検出やSSLピンニングを回避するために利用可能で、分析能力を向上させます。
他の興味深いFridaスクリプト:
ツールUber APK Signerは、同じキーで複数のAPKに署名することを簡素化し、変更を加えた後にアプリを再署名するために使用できます。
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)