
最速かつ最も強力なAndroidデコンパイラ(Java VMなしで動作するネイティブツール)で、APK、DEX、ODEX、OAT、JAR、AAR、CLASSファイルに対応。悪意のある動作検出、プライバシー漏洩検出、脆弱性検出、パス解決、パッカー識別、変数追跡、難読化解除、Python&Javaスクリプト、デバイスメモリ抽出、データ復号化・暗号化などをサポート。

GDAは、C++で実装された強力なDalvikバイトコード逆コンパイラであり、高速解析、メモリ・ディスク消費量の低さ、apk、dex、odex、oat、jar、class、aarファイルを逆コンパイルする強力な能力という利点があります。
GDAは完全にネイティブソフトウェアであり、セットアップやJava VMを必要とせず、追加設定なしで新しいWindowsシステムや仮想マシンシステムで正常に動作します。GDA Decompilerプロジェクトは2013年に開始され、最初のバージョン1.0は2015年に**GDA website**でリリースされました。
GDAはまた、強力で高速なリバース解析プラットフォームです。基本的な逆コンパイル操作だけでなく、悪意のある動作検出、プライバシー漏洩検出、脆弱性検出、パス解決、パッカー識別、変数追跡解析、難読化解除、Python&Javaスクリプト、デバイスメモリ抽出、データの復号化と暗号化など、多くの優れた機能もサポートしています。
すべての機能は以下のとおりです。
𝕬 対話的操作:
1. 文字列、クラス、メソッド、フィールドの相互参照
2. 文字列、クラス、メソッド、フィールドの検索
3. Javaコードへのコメント
4. メソッド、フィールド、クラスの名前変更
5. 解析結果をGDA DBファイルに保存
…
𝕭 補助解析のためのユーティリティ:
1. ODEXからDEXを抽出
2. OATからDEXを抽出
3. XMLデコーダ(コンポーネントフィルター)
4. アルゴリズムツール(ローリング暗号化およびほぼすべての一般的な暗号化アルゴリズムをサポート)
5. デバイスメモリダンプ(so、odex、dex、oatファイルのダンプ)
6. パス解決
7. 静的脆弱性スキャナー
…
𝕮 優れた機能:
1. 親しみやすいGUIを備えたC++による新しいDalvik逆コンパイラ
2. パッカー認識
3. マルチDEXサポート
4. 難読化解除
5. APIチェーンによる悪意のある動作スキャン
6. スタックステートマシンと動的ルールインタプリタに基づく静的脆弱性スキャナー
7. 変数の動作をプレビューするテイント解析
8. 変数のソースを特定するテイント解析
9. 相互参照付きAPIビュー
10. 深いURL抽出
11. モジュールと権限の関連付け
12. APKフォレンジック解析
13. デュアル逆コンパイラモード
14. スマート名前変更
15. デバイスメモリデータダンプ、メモリ検索によるDEXファイルダンプ
16. Fridaを使用して選択したメソッドまたはクラスをフックおよび呼び出す機能
17. プライバシー漏洩スキャン
18. 機密情報抽出
19. マルチDEXマージ
20. 低レベル中間表現(LIR)に基づくパス解決
21. ジャンク命令の除去
22. コールグラフビューのサポート
23. Smali命令パッチ、APK再パッケージ化およびインストール
24. サブクラスおよび親クラスビューのサポート
25. 文字列の翻訳サポート
…
𝕲𝕯𝕬 ショートカットキー
インストールは不要で、binファイルをダブルクリックするだけで使用できます。 注意: これは少なくとも短期的にはオープンソースプロジェクトではありません。ここで公開されている無料のツールや一部のオープンソーススクリプトは使用できます。
著作権保護のため、GDAは認可されたVMPで保護されており、一部のウイルス対策ソフトウェアで誤検知が発生する可能性があります。無視するか、GDAをホワイトリストに追加してください。GDAには悪意のある動作はありません。
GDAにはADBとgdump(デバイスメモリデータのダンプに使用)、脆弱性ルール、ソーステイントルール、APIフィンガープリントなどが組み込まれているため、%APPDATA%/GDAディレクトリにいくつかのファイルが表示されます。この動作により他の実行可能ファイルがリリースされることも、一部のウイルス対策ソフトウェアによってウイルスとして識別される可能性があります。
Windowsのみ
ファイルをGDAにドラッグするだけで完了です。
ファイルが.jar/.class/.aarファイルの場合は、Javaがdxツールをサポートしている必要があります。Javaが正しく動作することを確認してください。解析するjarファイルのサイズが大きすぎると、解析に時間がかかる場合がありますので、お待ちください。
>gda.exe
-sh src_file --> start a Shell
-sv src_file port --> start a Server
-h --> help
------------------------------------------------------------
>gda.exe -h
Usage:gda.exe [option] [apk_file] [-o output_file]
option:
-h help
-x show AndroidManifest.xml
-p app package name
-P permission
-i apk base info
-a attack surface
-k packer
-s all the strings
-S referenced strings
-c cert information
-d decompile all code
------------------------------------------------------------
>gda.exe -sv text.apk 12345
File Loading...
GDA Server listening on port 12345...
>client_gda.py help
------------------------------------------------------------
>gda -sh test.apk
>
>
GDA Shell >help
subcmd [-args]... [-t filter_string]
help --> shell command help
set -o file--> set output file
exit/q --> to exit
axml --> content of androidmainfest.xml
binfo --> apk base info
pname --> apk package name
permission --> permissions of APP
header n --> header of the n-st dex file
attsf --> attacksurface
packer --> packer
cert --> certifacate
appstr --> strings referenced by methods
malscan --> malcious behavior
sensinf --> sensitive infos
interface --> list interface classes
uri --> url,path etc.
native --> list native methods
api --> list api methods
listm cname--> list the methods of class(dot)
sclass cidx--> list subclasses by class index(hex)
pclass cidx--> list parent class by class index(hex)
dasm option--> disasembly a method
option: @type(e.g., dasm method@0045F0)
-n name(signature name,e.g.,"Lcom/base/Binary;->add(Lcom/base/Binary;)V")
dec option--> decompile a method or class,
option: @type (class/method type), e.g., dec method@21f
-c[-m] name(class/method signature name, e.g. , "Lcom/base/Binary;")
-a filepath(decompile the all classes)
find option--> search object by name(match partial/regex)
option: -c[-m][-M][-d][-s][-i][-a] name, e.g., find -C Frame (regex:~"Frame.*")
|-c(match class name) |-C(match class name with package)
|-m(match method name) |-M(match method name with package)
|-d(match field name) |-i(match api method name)
|-s(match string) |-a(match all[classes,methods,field and strings]
xref option --> search cross-reference of object
option(1): @type (method/class/field/string type), e.g. ,xref string@22e
option(2): -c[-m][-M][-d][-s][-i][-a] name(match partial), e.g. ,xref -m send
|-c(xref of class name) |-s(xref of string)
|-m(xref of method name) |-r(xref of resource name)
|-f(xref of field name) |-a(xref of all[classes,methods,field and strings]
スキルの例:
マルウェア解析の例:
skill example for malware analyzing
GDA: SmaliのJust-in-timeコンパイルに基づくDEX静的パッチ技術
GDA3.75+のみ対応。その他のバージョンではこのテーマファイルを使用しないでください。使用方法:メニューFile→Import Color Configをクリックし、テーマファイルを選択してGDAを再起動してください。

| ショートカット | 説明 |
|---|
| F5 | JavaとSmaliを切り替え、再び押すとJavaに戻る |
| F | データフロー解析により引数と戻り値を追跡 |
| X | 相互参照、呼び出し元の特定(文字列、クラス、メソッド、フィールド) |
| Esc/◄/Backspace | 最後の訪問に戻る |
| ► | 次の訪問に進む |
| G | オフセットを入力して指定場所にジャンプ |
| N | 変数/メソッド/クラス名を変更 |
| S | 指定された文字列ですべての要素を検索 |
| C | コメント。Javaコードのみ対応 |
| DoubleClick | カーソルをメソッド/文字列/フィールド/クラスに置いてダブルクリックでオブジェクトにアクセス |
| M | カーソルをSmali行に置いてキー「M」を押すと命令を編集 |
| ▲ UP | 上矢印キーでツリーコントロールの上のメソッドに移動 |
| ▼ Down | 下矢印キーでツリーコントロールの下のメソッドに移動 |
| D | メソッドのバイナリデータをダンプ(Smaliウィンドウのみ対応) |
| Enter | 編集ボックスの変更を確定 |
| H | データを16進数で表示 |
| Ctr+H | 検索履歴ウィンドウを表示 |
| Ctr+A | すべて選択 |
| Ctr+C | コピー |
| Ctr+V | 貼り付け(編集可能なボックスのみ) |
| Ctr+X | 切り取り |
| Ctr+F | コード領域内の文字列を検索 |
| Ctr+S | 変更をGDAデータベースファイルに保存 |