Cookie の使用について.本サイトでは、基本機能の提供に必要な必須 Cookie を使用しています。さらに、同意いただいた場合に限り、アクセス解析 Cookie を利用して利用状況を把握し、サービス改善に役立てます。詳しくは .
このツールは使いやすかったですか?
フィードバックは改善に役立ちます
APK、DEX、AAB、AAR、一般的な分割パッケージから、読みやすいコードとアプリリソースを抽出します。
ファイルを選択ここにファイルをドロップするか、クリックして選択
.apk · .xapk · .aab · .aar · .apks · .apkm · .dex
最大 10 MB
アップロード上限:ゲスト 10 MB、会員 20 MB、アドバンス 50 MB、プロ 50 MB。
概要
解決できる課題、処理の仕組み、データの範囲を確認できます。
Androidアプリのパッケージには、ランタイム向けのバイトコード、リソース、マニフェストなどが含まれています。APKは主にインストールに使用され、AABは端末に適したAPKを生成するための配布形式です。AARは通常、Androidプロジェクトから参照するライブラリパッケージで、DEXにはDalvik/ARTで実行されるコードが格納されています。分割パッケージでは、ベースパッケージと端末設定別のリソースが別々に保存される場合があります。アップロード後、読み取り可能なJava形式のコードと識別できたパッケージ内ファイルをZIPにまとめます。
逆コンパイルされたコードは、バイトコードから再構築した近似表現です。Kotlinのコンパイル結果はJava形式の構造で表示される場合があり、コルーチン、インライン関数、コンパイラ生成コードは元のKotlinコードとは異なります。R8やProGuardによる難読化でクラス名やメソッド名が短縮され、リソース名、コメント、元のモジュール構成が失われていることもあります。
アプリパッケージには、バイナリ形式のマニフェスト、画像、レイアウト、テキスト、設定、ネイティブライブラリなどが含まれる場合があります。ZIP内のディレクトリ構造は内容の把握に役立ちますが、完全なAndroid Studioプロジェクトを再現するものではありません。APKにUnity Monoアセンブリが含まれている場合は、一部のC#コードの個別抽出を試みます。IL2CPPの場合、ネイティブマシンコードからC#ソースコードを復元することはできません。
使い方
手順に沿って操作し、例を使って入力と結果を確認します。
確認する権限がある、5 MB以下の.apk、.dex、.aab、.aar、.xapk、.apkm、または.apksファイルを用意します。
アップロード後に処理を開始します。アプリストアから取得した分割パッケージの場合は、できるだけベースパッケージと必要な設定を含む完全なアーカイブを使用してください。単一のsplitだけでは、クラスやリソースが不足することがあります。
処理が完了したら、結果一覧でマニフェスト、パッケージ内のディレクトリ、複数のコードファイルを確認してからZIPをダウンロードします。クラス名や文字列を検索する際は、難読化によって元の名前を特定できない場合がある点に注意してください。
動作を調べる際は、エントリーポイントとなるコンポーネント、呼び出し関係、リソース参照、権限宣言をまとめて確認してください。クラス名だけでアプリの動作を判断しないでください。
大規模な依存関係や複雑なファイルは、処理がタイムアウトしたり、大量の出力が生成されたりする場合があります。失敗した場合は、まず入力ファイルが破損していないことを確認し、より小さい単体のDEXやAPK、または必要なsplitをそろえたパッケージで再試行してください。
活用例
仕事や日常の流れの中での活用方法を紹介します。
manifest、権限宣言、リソースパス、最終的なパッケージ内容を確認し、リリース成果物が想定したビルド結果と一致しているか検証します。
DEX、マニフェスト、リソースから、コンポーネント登録、バージョンごとの動作、設定差異の手掛かりを探し、プロジェクトと端末ログで検証します。
検査を許可されたアプリパッケージを静的に確認し、再現可能な証拠を記録して、実行時の観察結果と照合します。
リソース抽出やコード確認は、包括的なセキュリティスキャンではなく、アプリに隠れた動作がないことを証明するものでもありません。
Q&A
よくある疑問や迷いやすい点をまとめて確認できます。
できません。この機能はアーカイブ内のバイトコードとリソースを読み取るもので、端末別の分割処理、署名、新しいインストールパッケージの生成は行いません。
保証されません。バイトコードは通常、Java形式のソースコードとして再構築されます。コルーチン、インライン処理、コンパイラ生成構造は、元のKotlinプロジェクトと大きく異なる場合があります。
アップロードしたsplitには、特定の端末設定向けデータしか含まれていない場合があります。ベースパッケージ、ほかの設定パッケージ、動的配信リソースが含まれていなければ、抽出結果も不完全になります。
注意
利用範囲、結果の制限、必要な注意点を事前に確認します。
自身が所有するアプリ、または解析の許可を得たアプリパッケージのみを対象にしてください。他者のソフトウェアをダウンロードまたは逆コンパイルしても、その著作権、ライセンス、利用規約は変更されません。また、複製、改変、再配布、アクセス制限の回避が許可されるものでもありません。
APKには、アカウント識別子、アプリのサービスURL、証明書、公開鍵、テストデータ、未公開のビジネスロジックが含まれる場合があります。このツールは、選択したファイルをサーバーに送信して処理します。個人情報、実際のユーザーデータ、秘密鍵、企業秘密を含むパッケージはアップロードしないでください。作業用の一時ディレクトリは処理完了後に削除されますが、ダウンロードした結果は自身で適切に管理してください。
最適化、難読化、圧縮、保護処理、アーカイブの破損、splitの不足により、結果の欠落や名称の不一致が生じることがあります。静的解析だけでは、コードが実行時に必ず動作するかを確認できず、隔離した端末での検証、動的テスト、元のプロジェクトとの照合に代わるものではありません。APK内のUnity C#抽出は、一部のMonoアセンブリにのみ対応します。IL2CPPの出力はネイティブコードのため、元のC#プロジェクトへ直接変換することはできません。
関連
関連ツール、特集、利用可能なAPIを探せます。