github-trend-summarizer

android-reverse-engineering-skill 概要

1. このリポジトリは何?

Claude Code(Anthropic 製のコーディングエージェント)向けのプラグイン / Skill で、Android アプリ(.apk / .xapk / .jar / .aar)を decompile し、そこから HTTP API の仕様を取り出して文書化する作業を、自然言語または /decompile スラッシュコマンドから半自動で進めるためのもの。

構成要素:

ライセンスは Apache 2.0。主言語は Shell。

2. 何が嬉しいの?(類似手段との比較)

既存の「生の CLI ツール」で同じことをやる場合、利用者は jadx / Fernflower / Vineflower / dex2jar / apktool などを個別にインストールし、APK なのか JAR なのか XAPK なのかで手順を切り替え、decompile 後のソースを grep しながら自力で Retrofit/OkHttp の断片から API 仕様を再構築する必要がある。

このリポジトリの嬉しさは以下:

用途としては、セキュリティリサーチ、相互運用のための API 解析、マルウェア解析、CTF が想定され、利用者の責任で合法的に使うことが README で明示されている。

3. 使うときの流れ

  1. インストール
    Claude Code 内で /plugin marketplace add SimoneAvogadro/android-reverse-engineering-skill/plugin install android-reverse-engineering@android-reverse-engineering-skill。ローカルクローンからも可。
  2. 起動
    /decompile path/to/app.apk もしくは「Decompile this APK」「Extract API endpoints from this app」等の自然言語。trigger フレーズで Skill が自動起動する。
  3. Phase 1: 依存確認
    check-deps.sh で Java17+/jadx(必須)と Vineflower/dex2jar(推奨)を検査。不足は install-dep.sh で導入。
  4. Phase 2: decompile
    入力種別に応じてエンジンを選択:APK/XAPK は jadx を第一選択、JAR/AAR は Fernflower、品質比較したいときは --engine both、難読化 APK は --deobf。出力は <file>-decompiled/(both なら jadx/fernflower/ サブディレクトリ)。
  5. Phase 3: 構造解析
    AndroidManifest.xml からランチャー Activity・Application クラス・パーミッションを把握、sources/ のパッケージ構造から api / network / repository 等を特定、MVP/MVVM/Clean Architecture を判別。
  6. Phase 4: コールフロー追跡
    Application.onCreate の HTTP クライアント初期化から始め、UI → ViewModel → Repository → ApiService → 実 HTTP 呼び出しへ辿る。Dagger/Hilt の @Module で DI バインディングを確認。難読化時は文字列リテラルとライブラリ API をアンカーに。
  7. Phase 5: API 抽出と文書化
    find-api-calls.sh--retrofit / --urls / --auth で絞り込み可)で候補を列挙し、各エンドポイントについてメソッド・ベース URL・パラメータ・ヘッダ・レスポンス型・呼び出し元を定型 Markdown で記録。
  8. 成果物
    decompile 済みソース、アーキテクチャサマリ、API ドキュメント、主要機能(特に認証)のコールフローマップが最終的に手元に残る。