JEBデコンパイラ

JEB デコンパイラ
原作者ニコラ・ファリエール
開発者PNFソフトウェア株式会社
安定版リリース
5.35 / 2026年1月7日[ 1 ] (2026年1月7日
書かれたジャワ
オペレーティング·システムWindowsMac OS XLinux
プラットフォームジャワ
タイプリバースエンジニアリング
ライセンス独自の
Webサイトwww.pnfsoftware.com

JEBは、 Androidアプリケーション[ 2 ]およびネイティブマシンコード用の逆アセンブラおよびデコンパイラソフトウェアです。DalvikバイトコードをJavaソースコードに、x86ARMRISC-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ドキュメントプラグイン(オープンソース)などがあります。

参照

参考文献