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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
enjarify — Dalvikバイトコード(DEX/APK)を同等のJavaバイトコードに変換し、Java解析ツールがエッジケースに対して高い正確性でAndroidアプリケーションを処理できるようにします。 | Kitploit
ツール/GitHubGitHub/google/enjarify
Androidセキュリティ静的分析コード分析リバースエンジニアリングモバイルセキュリティバイナリ解析Archived
GitHubgoogle/enjarify

enjarify

Dalvikバイトコード(DEX/APK)を同等のJavaバイトコードに変換し、Java解析ツールがエッジケースに対して高い正確性でAndroidアプリケーションを処理できるようにします。

リポジトリを見る
2.7k5396年前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有

注:このリポジトリは古くなっている可能性があります。今後の開発は https://github.com/Storyyeller/enjarify で行われます。

はじめに

Enjarifyは、Dalvikバイトコードを等価なJavaバイトコードに変換するツールです。これにより、Java解析ツールでAndroidアプリケーションを解析できるようになります。

使い方とインストール

Enjarifyは純粋なPython 3アプリケーションなので、git cloneしてそのまま実行できます。リポジトリのトップディレクトリにいると仮定して、直接実行するには次のようにします。

root@kitploit:~
python3 -O -m enjarify.main yourapp.apk

通常の使用では、ラッパースクリプトを使用してパスに設定することをお勧めします。

Linux

便利なように、ラッパーシェルスクリプトenjarify.shが用意されています。このスクリプトは、CPythonよりも高速なPypyが利用可能な場合はそれを使用しようとします。Enjarifyをどこからでも呼び出せるようにするには、PATH上の任意の場所(例:~/bin)にシンボリックリンクを作成します。これを行うには、リポジトリのトップレベルにいることを前提として、

root@kitploit:~
ln -s "$PWD/enjarify.sh" ~/bin/enjarify

Windows

ラッパーバッチスクリプトenjarify.batが用意されています。どこからでも呼び出せるようにするには、リポジトリのルートディレクトリをPATHに追加してください。バッチスクリプトは常にpython3をインタプリタとして呼び出します。pypyを使用したい場合は、スクリプトを編集してください。

使い方

スクリプトを正しくパスに設定していれば、次のように enjarify と入力するだけでどこからでも呼び出せます。

root@kitploit:~
enjarify yourapp.apk

最も基本的な使い方は、入力としてapkファイルまたはdexファイルを指定することです。マルチデックスapkを指定すると、Enjarifyは自動的にすべてのdexファイルを変換し、結果を1つの結合されたjarに出力します。dexファイルを指定した場合、そのdexファイルのみが変換されます。例えば、手動でdexファイルを抽出したと仮定すると、次のようにできます。

root@kitploit:~
enjarify classes2.dex

デフォルトの出力ファイルは、カレントディレクトリ内の[inputname]-enjarify.jarです。出力ファイル名を明示的に指定するには、-oまたは--outputオプションを指定します。

root@kitploit:~
enjarify yourapp.apk -o yourapp.jar

デフォルトでは、Enjarifyは出力ファイルが既に存在する場合、上書きを拒否します。出力を上書きするには、-fまたは--forceオプションを指定します。

dex2jarではなくEnjarifyを使う理由

Dex2jarは、DalvikをJavaバイトコードに変換しようとする古いツールです。ほとんどの場合に妥当に動作しますが、多くの難解な機能やエッジケースでは失敗したり、誤った結果を静かに出力したりすることがあります。対照的に、Enjarifyは、Dex2jarが失敗するようなコードでも可能な限り多くのケースで動作するように設計されています。特に、EnjarifyはUnicodeクラス名、複数の型として使用される定数、暗黙的なキャスト、通常の制御フローにジャンプする例外ハンドラ、過剰な定数を参照するクラス、非常に長いメソッド、catchallハンドラの後の例外ハンドラ、間違った型の静的初期値を正しく処理します。

制限事項

Enjarifyは現在、ソースファイル属性、行番号、アノテーションなどのオプションメタデータを変換しません。

Enjarifyは可能な限り多くのクラスを正常に変換しようと努力していますが、Android、Java、またはその両方の制限により、単純に不可能なケースがいくつかあります。幸い、これは人為的な状況でのみ発生するため、実際には問題になりません。

パフォーマンスのヒント

PyPyはCPythonよりもはるかに高速です。PyPyをインストールするには、http://pypy.org/ を参照してください。通常のPyPyではなくPyPy3を入手してください。Linuxラッパースクリプトは、利用可能な場合は自動的にpypy3コマンドを使用します。Windowsでは、自分でラッパースクリプトを編集する必要があります。

デフォルトでは、Enjarifyはバイトコードに対して最適化(コピー伝播、未使用値の削除など)を実行し、人間が読みやすくします。これが不要な場合は、--fastオプションで最適化を無効にすることで高速化できます。非常にまれなケースとして、最適化なしではクラスファイルに収まらないほど大きなクラスがある場合、Enjarifyは自動的にすべての最適化を有効にして再試行するため、このオプションは正常に変換されるクラスの数に影響を与えません。

免責事項

これはGoogleの公式製品(実験的かどうかにかかわらず)ではなく、たまたまGoogleが所有しているコードです。

ツールをダウンロード