Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
android-reverse-engineering-skill — Android APK/XAPK/JAR/AARファイルを逆コンパイルし、jadxを使用してHTTP API、認証パターン、コールフローを抽出します。また、セキュリティ研究やペネトレーションテストのためのR8耐性のあるKotlin名の復元機能を備えています。 | Kitploit
ツール/GitHubGitHub/simoneavogadro/android-reverse-engineering-skill
Androidセキュリティ静的分析脆弱性分析モバイルアプリペンテストリバースエンジニアリングAPIセキュリティテスト情報収集ペネトレーションテストモバイルセキュリティ

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
バイナリ解析
学習と教育
GitHubsimoneavogadro/android-reverse-engineering-skill

android-reverse-engineering-skill

Android APK/XAPK/JAR/AARファイルを逆コンパイルし、jadxを使用してHTTP API、認証パターン、コールフローを抽出します。また、セキュリティ研究やペネトレーションテストのためのR8耐性のあるKotlin名の復元機能を備えています。

リポジトリを見る
6.7k7371421時間44分前Kitploit レビュー済み

Android リバースエンジニアリング & API 抽出 — Claude Code スキル

License: Apache-2.0 GitHub stars GitHub last commit

Android APK/XAPK/JAR/AAR ファイルを逆コンパイルし、アプリが使用する HTTP API(Retrofit エンドポイント、OkHttp 呼び出し、ハードコードされた URL、認証パターン)を抽出する Claude Code スキルです。元のソースコードがなくても API を文書化・再現できます。

Kotlin ファースト対応: 最近の Android アプリは Kotlin/KMP で書かれ、R8 で強く難読化されています。このスキルは、R8 が除去できないメタデータから 元の Kotlin クラス名 を復元し、Ktor、Apollo (GraphQL)、Koin といったモダンなスタックからも API を抽出します(従来の Retrofit/OkHttp スタックだけではありません)。詳細は下記「Kotlin 名復元 (R8 難読化解除)」を参照してください。

Windows / PowerShell 対応 (実験的): bash スクリプトと共に提供される *.ps1 スクリプトは最近コミュニティから寄稿されたもので、まだ安定化中です。問題が発生した場合は、このリポジトリ(寄稿者の上流フォークではなく)に issue を開いてください。PowerShell スクリプトは @SimoneAvogadro によってここでメンテナンスされています。

目次

  • 概要
  • 動作環境
  • インストール
  • 使い方
  • リポジトリ構造
  • 参考情報
  • 謝辞
  • 免責事項
  • ライセンス

概要

動作環境

必須:

  • Java JDK 17+
  • jadx (CLI)

推奨 (任意):

  • Vineflower または Fernflower — 複雑な Java コードに対してより良い出力
  • dex2jar — APK/DEX ファイルで Fernflower を使用するために必要

詳細なインストール手順は plugins/android-reverse-engineering/skills/android-reverse-engineering/references/setup-guide.md を参照してください。

インストール

GitHub から(推奨)

Claude Code 内で以下を実行:

root@kitploit:~
/plugin marketplace add SimoneAvogadro/android-reverse-engineering-skill
/plugin install android-reverse-engineering@android-reverse-engineering-skill

このスキルは今後のすべてのセッションで永続的に利用可能になります。

ローカルクローンから

root@kitploit:~
git clone https://github.com/SimoneAvogadro/android-reverse-engineering-skill.git

その後、Claude Code 内で:

root@kitploit:~
/plugin marketplace add /path/to/android-reverse-engineering-skill
/plugin install android-reverse-engineering@android-reverse-engineering-skill

使い方

スラッシュコマンド

root@kitploit:~
/decompile path/to/app.apk

依存関係チェック、逆コンパイル、初期構造分析を含む完全なワークフローを実行します。

自然言語

以下のようなフレーズでスキルが起動します:

  • 「この APK を逆コンパイルして」
  • 「この Android アプリをリバースエンジニアリングして」
  • 「このアプリから API エンドポイントを抽出して」
  • 「LoginActivity からの呼び出しフローを追跡して」
  • 「この AAR ライブラリを分析して」

手動スクリプト

スクリプトは単独でも使用できます:

root@kitploit:~
# 依存関係チェック
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/check-deps.sh

# 不足している依存関係をインストール(OS とパッケージマネージャーを自動検出)
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/install-dep.sh jadx
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/install-dep.sh vineflower

# 逆コンパイル前に APK/XAPK をフィンガープリント (Phase 0 トリアージ):
# フレームワーク、HTTP スタック、難読化レベル、ネイティブライブラリ、注目すべき SDK
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/fingerprint.sh app.apk

# jadx で APK を逆コンパイル(デフォルト)
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/decompile.sh app.apk

# XAPK を逆コンパイル(自動で各 APK を抽出・逆コンパイル)
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/decompile.sh app-bundle.xapk

# Fernflower で逆コンパイル
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/decompile.sh --engine fernflower library.jar

# 両方のエンジンを実行して比較
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/decompile.sh --engine both --deobf app.apk

# API 呼び出しを検索 — デフォルトではサポートされているすべてのスタックをフルスキャン
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/find-api-calls.sh output/sources/
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/find-api-calls.sh output/sources/ --retrofit
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/find-api-calls.sh output/sources/ --urls

# モダンな Kotlin/KMP スタックと難読化耐性抽出
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/find-api-calls.sh output/sources/ --ktor    # Ktor クライアント
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/find-api-calls.sh output/sources/ --apollo  # Apollo / GraphQL
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/find-api-calls.sh output/sources/ --paths   # R8 インライン化を生き延びる引用符付きパスリテラル

Kotlin 名復元 (R8 難読化解除)

実際の Kotlin/KMP アプリのほとんどは R8 を通して出荷されるため、逆コンパイルされたクラスは a.b.c のような名前になります。R8 は JVM シンボルをリネームしますが、Kotlin メタデータ文字列は除去できません — Kotlin ランタイム(リフレクション、コルーチン)は実行時に元の完全修飾名を必要とします。このスキルは、@DebugMetadata / @Metadata アノテーションをマイニングして 難読化後→本来の クラス名マップを再構築します。典型的なアプリでは、本来読みたい *Repository / *ViewModel / *UseCase / *Impl クラスの約 100% を復元します。

root@kitploit:~
# 1. 逆コンパイルされたソースからマッピングを構築
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/recover-kotlin-names.sh output/sources/ output/names/
#    → output/names/mapping.tsv, mapping.json, by_package/

# 2. クエリ: 難読化名を解決、本来の名前で検索、または各ヒットに復元されたクラス名を注釈してソースを grep
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/lookup-name.sh output/names/ LoginRepository
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/lookup-name.sh output/names/ -o a.b.c
bash plugins/android-reverse-engineering/skills/android-reverse-engineering/scripts/lookup-name.sh output/names/ --grep 'login' output/sources/

リポジトリ構造

root@kitploit:~
android-reverse-engineering-skill/
├── .claude-plugin/
│   └── marketplace.json                    # マーケットプレイスカタログ
├── plugins/
│   └── android-reverse-engineering/
│       ├── .claude-plugin/
│       │   └── plugin.json                 # プラグインマニフェスト
│       ├── skills/
│       │   └── android-reverse-engineering/
│       │       ├── SKILL.md                # コアワークフロー (Phase 0–5)
│       │       ├── references/
│       │       │   ├── setup-guide.md
│       │       │   ├── jadx-usage.md
│       │       │   ├── fernflower-usage.md
│       │       │   ├── api-extraction-patterns.md
│       │       │   ├── kotlin-name-recovery.md
│       │       │   ├── third_party_hosts.txt   # ファーストパーティ/サードパーティの振り分け用拒否リスト
│       │       │   └── call-flow-analysis.md
│       │       └── scripts/
│       │           ├── check-deps.sh       # Bash
│       │           ├── check-deps.ps1      # PowerShell
│       │           ├── install-dep.sh
│       │           ├── install-dep.ps1
│       │           ├── decompile.sh
│       │           ├── decompile.ps1
│       │           ├── fingerprint.sh          # Phase 0 — 逆コンパイル前のトリアージ
│       │           ├── recover-kotlin-names.sh # R8 → 本来の Kotlin クラス名
│       │           ├── lookup-name.sh          # 復元された名前マップをクエリ
│       │           ├── find-api-calls.sh
│       │           └── find-api-calls.ps1
│       └── commands/
│           └── decompile.md                # /decompile スラッシュコマンド
├── LICENSE
└── README.md

参考情報

  • jadx — Dex to Java decompiler
  • Fernflower — JetBrains analytical decompiler
  • Vineflower — Fernflower community fork
  • dex2jar — DEX to JAR converter
  • apktool — Android resource decoder

謝辞

このスキルの形成に貢献してくださった方々に感謝します:

  • @tajchert — Phase 0 フィンガープリンティング、R8 耐性 Kotlin 名復元(recover-kotlin-names.sh、lookup-name.sh)、および Ktor / Apollo / Koin / HMAC 抽出パターン (#16)
  • @philjn — ネイティブ Windows / PowerShell 対応(check-deps.ps1、install-dep.ps1、decompile.ps1、find-api-calls.ps1)、および decompile.sh における分割/バンドル APK 検出 (#8)
  • @txhno — メンテナンスされている ThexXTURBOXx/dex2jar フォークへの移行 (#12)
  • @muqiao215 — 逆コンパイル部分成功ハンドリング、Fernflower タイムアウト保護、中間アーティファクトディレクトリ (#10)
  • @kevinaimonster — 中国語ローカライゼーション(SKILL.md 発見キーワード)(#4)

免責事項

このプラグインは合法的な目的にのみ提供されます。これには以下が含まれますが、これらに限定されません:

  • セキュリティ研究および許可されたペネトレーションテスト
  • 適用法(例: EU 指令 2009/24/EC、米国 DMCA §1201(f))の下で許可される相互運用性分析
  • マルウェア分析およびインシデント対応
  • 教育目的および CTF コンペティション

お客様は単独で、このツールの使用がすべての適用される法律、規制、およびサービス利用規約に準拠していることを確認する責任を負います。お客様が所有していない、または分析する許可を得ていないソフトウェアの無許可のリバースエンジニアリングは、お客様の管轄区域における知的財産法やコンピュータ詐欺法に違反する可能性があります。

著作者は、このツールの誤用に対する一切の責任を否認します。

ライセンス

Apache 2.0 — LICENSE を参照

ツールをダウンロード
機能説明
まずフィンガープリント (Phase 0)数秒で APK/XAPK をトリアージ — フルデコンパイルの前に、フレームワーク(Flutter / React Native / Cordova / Xamarin / ネイティブ Kotlin)、HTTP スタック、難読化レベル、ネイティブライブラリを検出
逆コンパイルjadx および Fernflower/Vineflower を使用して APK、XAPK、JAR、AAR ファイルを逆コンパイル(単一エンジンまたはサイドバイサイド比較)
Kotlin 名を復元R8 が除去できない Kotlin メタデータを使用して、R8 難読化バイナリから元の *Repository / *ViewModel / *UseCase クラス名を再構築
API を抽出Retrofit、OkHttp、Volley およびモダンな Kotlin/KMP スタック: Ktor、Apollo (GraphQL)、Koin DI — エンドポイント、ハードコードされた URL、認証ヘッダー、トークン、HMAC リクエスト署名スキーム
呼び出しフローを追跡Activity/Fragment から ViewModel、リポジトリを経て HTTP 呼び出しまで
構造を分析マニフェスト、パッケージ、アーキテクチャパターン
難読化への対応R8 耐性のあるパス/URL 抽出に加え、ProGuard/R8 出力をナビゲートする戦略