| JEB デコンパイラ | |
|---|---|
![]() | |
| 原作者 | ニコラ・ファリエール |
| 開発者 | PNFソフトウェア株式会社 |
| 安定版リリース | |
| 書かれた | ジャワ |
| オペレーティング·システム | Windows、Mac OS X、Linux |
| プラットフォーム | ジャワ |
| タイプ | リバースエンジニアリング |
| ライセンス | 独自の |
| Webサイト | www.pnfsoftware.com |
JEBは、 Androidアプリケーション[ 2 ]およびネイティブマシンコード用の逆アセンブラおよびデコンパイラソフトウェアです。DalvikバイトコードをJavaソースコードに、x86、ARM、RISC-VなどのマシンコードをCソースコードにデコンパイルします。アセンブリおよびソースの出力はインタラクティブで、リファクタリングが可能です。ユーザーは独自のスクリプトやプラグインを作成してJEBの機能を拡張することもできます。
歴史
JEBは、インタラクティブな出力を提供する最初のDalvikデコンパイラです。リバースエンジニアは、相互参照の検証、コメントの挿入、クラスやメソッドなどの項目名の変更などを行うことができます。バイトコードとデコンパイルされたJavaコード間の対応関係は、可能な限りユーザーが確認できます。JEBはデコンパイラという名称ですが、APKの完全なビュー(マニフェスト、リソース、証明書など)も提供しています。APIを利用することで、ユーザーはPythonとJavaのスクリプトやプラグインを通じて、アクションをカスタマイズまたは自動化できます。
JEB 2.2では、Dalvikおよびネイティブ(Intel、ARM、MIPS)コード用のAndroidデバッグモジュールが導入されました。ユーザーは「すべてのアプリ([...] 明示的にデバッグを許可していないアプリも含む)」において、「Dalvikバイトコードとネイティブマシンコードをシームレスにデバッグ」できます。[ 3 ]
JEB 2.3ではネイティブコードデコンパイラが導入されました。JEBに同梱された最初のデコンパイラは、MIPS 32ビット対話型デコンパイラでした。
JEB 3 には、Intel x86、Intel x86-64、WebAssembly (wasm)、Ethereum (evm)、Diem ブロックチェーン (diemvm) などの追加のデコンパイラが同梱されています。
JEB 4は2021年にリリースされました。JEB 4.5にはRISC-Vデコンパイラが追加されました。JEB 4.16にはS7 PLCブロックデコンパイラが追加されました。
JEB 5 は 2023 年にリリースされました。Volta+/sm_70+ アーキテクチャをターゲットとする Nvidia GPU コード用の SASS デコンパイラが JEB 5.31 に追加されました。
デコンパイラ
JEB には、次の独自仕様およびオープンソースのデコンパイラ プラグインが付属しています。
- DalvikバイトコードからJavaへ
- JavaバイトコードからJavaへ
- Intel x86/x86-64 マシンコードから C へ
- ARMマシンコードからC
- MIPSマシンコードからC
- RISC-VマシンコードをCへ
- S7 (MC7)バイトコードから C
- WebAssemblyバイトコードを C へ
- Nvidia SASSコード(コンパイルされた GPU カーネル)を C に
- EVM バイトコード(コンパイルされた Ethereum スマート コントラクト)をSolidityのようなソースコードに変換
- Diemバイトコード[ 4 ](Diemブロックチェーン上で実行されるコンパイルされたdiemvmモジュール)からmvirのような(Move IR)ソースコード
その他のプラグイン
JEBには多数の逆アセンブラとデバッガプラグインが付属しています。[ 5 ]
JEBは、ネイティブプラグインまたはサードパーティ製プラグインを追加することで、あらゆるファイル形式の解析を可能にします。例としては、PDFパーサープラグイン(プロプライエタリ)、XLSドキュメントプラグイン(オープンソース)などがあります。
参照
参考文献
- ^ JEB 変更リスト
- ^ Chell他著『モバイルアプリケーションハッカーズハンドブック』 240-241ページ。2015年
- ^ JEB製品説明ページ
- ^ GitHubリポジトリ
- ^機能マトリックス
