banner
AndrewTsui

AndrewTsui

安卓リバースエンジニアリングの一般的な手順

Source: Kanxue Forum

  1. HTTP プロトコルの分析を実現するために、Charles、Wireshark などのパケットキャプチャツールを使用し、署名を見つけ、明確な標準アルゴリズム特徴があるかどうかを確認します。
  2. jadx-gui、gda、apktools などのツールを使用して、DEX および APK の逆コンパイルを実現し、Java および Smali コードを閲覧します。
  3. 汎用のアンパッキングポイントを見つけてアンパッキングを実現し、Android ソースコードをコンパイルおよび変更し、抽出された関数を復元するために関数をアクティブに呼び出します。
  4. Xposed や Frida などのツールを使用して、ネイティブおよび Java レイヤーのダイナミックインストルメンテーションを実現し、メモリデータを覗き見ます。
  5. Ida、Hyper、Ghida などのツールを使用して、SO の静的分析を行い、メモリブレークポイントおよびハードウェアブレークポイントを設定して動的デバッグを実現し、SO の署名分析とトレース分析を実現します。
  6. VMP 保護の入口関数のアドレスを見つけ、動的デバッグを実現し、目標のジャンプアドレスを見つけ、その後、静的分析ツールを使用してオフセットアドレスを分析し、ソースコードを解析します。
  7. OLLVM の文字列の暗号化、制御フローフラット化、命令の置換、および偽の制御フローは、Frida を使用してメモリアドレスの値を出力し、IDA トレースを分析することで実現できます。
  8. 署名のアルゴリズムを判断するために、署名特徴と見つかった定数に基づいてください。
  9. Spring を使用して署名サーバーを構築し、負荷テストを実施します。
  10. ターゲットインターフェースのリスク管理戦略を探知するために、事前に大量のインターフェース呼び出しを行い、展開および呼び出し戦略を決定します。
  11. IP をグループごとに交換する必要がある場合、OpenWRT でソフトルーターを自動的に切り替えることができます。
  12. 単一の IP アドレスでの単一のデバイスの場合、オープンソースのプロキシアプリを変更して、携帯電話で自動的にプロキシを切り替えることができます。
  13. Protocol Buffers を使用している一部のプロトコルについては、逆コンパイルおよびダイナミックインストルメンテーションを使用してプロトコルクラスを見つけ、タグタイプに基づいて対応する.proto ファイルを作成して対応するクラスを生成します。
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。