Reversing Native Libraries

htARTE(HackTricks AWS Red Team Expert)で**ゼロからヒーローまでAWSハッキングを学ぶ**

HackTricksをサポートする他の方法:

WhiteIntelは、ダークウェブを活用した検索エンジンで、企業やその顧客がスティーラーマルウェアによって侵害されていないかをチェックする無料機能を提供しています。

WhiteIntelの主な目標は、情報窃取マルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。

彼らのウェブサイトをチェックして、無料でエンジンを試すことができます:


詳細はこちらをチェック: https://maddiestone.github.io/AndroidAppRE/reversing_native_libs.html

Androidアプリは、パフォーマンス重視のタスクには一般的にCまたはC++で書かれたネイティブライブラリを使用します。マルウェア作成者もこれらのライブラリを使用し、DEXバイトコードよりもリバースエンジニアリングが難しいためです。このセクションでは、アセンブリ言語の教育よりもAndroidに特化したリバースエンジニアリングスキルが強調されています。互換性のためにARMおよびx86バージョンのライブラリが提供されています。

キーポイント:

  • Androidアプリのネイティブライブラリ:

    • パフォーマンス重視のタスクに使用される。

    • CまたはC++で書かれており、リバースエンジニアリングが難しい。

    • Linuxバイナリに似た.so(共有オブジェクト)形式で見つかる。

    • マルウェア作成者は分析を難しくするためにネイティブコードを好む。

  • Java Native Interface(JNI)&Android NDK:

    • JNIはJavaメソッドをネイティブコードで実装することを可能にする。

    • NDKはAndroid固有のツールセットで、ネイティブコードを書くためのもの。

    • JNIとNDKはJava(またはKotlin)コードとネイティブライブラリを結びつける。

  • ライブラリのロードと実行:

    • ライブラリはSystem.loadLibraryまたはSystem.loadを使用してメモリにロードされる。

    • ライブラリのロード時にJNI_OnLoadが実行される。

    • Javaで宣言されたネイティブメソッドはネイティブ関数にリンクされ、実行が可能になる。

  • Javaメソッドをネイティブ関数にリンクする:

    • ダイナミックリンキング: ネイティブライブラリ内の関数名が特定のパターンに一致するため、自動的にリンクが可能。

    • スタティックリンキング: リンクのためにRegisterNativesを使用し、関数名や構造に柔軟性を提供する。

  • リバースエンジニアリングツールとテクニック:

    • GhidraやIDA Proなどのツールがネイティブライブラリを分析するのに役立つ。

    • JNIEnvはJNI関数と相互作用を理解するために重要である。

    • ライブラリのロード、メソッドのリンク、ネイティブ関数の特定の練習が提供されています。

リソース:

WhiteIntelは、ダークウェブを活用した検索エンジンで、企業やその顧客がスティーラーマルウェアによって侵害されていないかをチェックする無料機能を提供しています。

WhiteIntelの主な目標は、情報窃取マルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。

彼らのウェブサイトをチェックして、無料でエンジンを試すことができます:

htARTE(HackTricks AWS Red Team Expert)で**ゼロからヒーローまでAWSハッキングを学ぶ**

HackTricksをサポートする他の方法:

Last updated