タイトルどおり、関数呼び出しのように、実行時のアプリケーションの動作
5 に答える
いくつかのオプションがあります。
「dexdump」はSDKに含まれており、デバイスに存在します。「-d」オプションを使用すると、メソッドの飾り気のない逆アセンブルが生成されます。出力形式は、dxの「--dump-to」出力形式を模倣することを目的としています。
「smali/baksmali」は、Dalvikバイトコードのアセンブラー/逆アセンブラーです。これはオープンソースであり、おそらく最も完全なソリューションです。
「dedexer」は、Jasminのような出力を生成する逆アセンブラです。オープンソースでもあります。
私の知る限り、DalvikバイトコードをJavaバイトコードまたはソースコードに変換しようとするプログラムを書いた人は誰もいません。
2つのAndroidマーケットアプリのAPKでdex2jarを試しましたが、非常にうまく機能します。これをjadと組み合わせると、Javaソースコードを取得できます。
詳細については、dex2jarのユーザーガイドを参照してください。
android開発キットには逆アセンブラが含まれています。AFAIK、現時点で利用可能な.classまたは.javaデコンパイラはありません。
実際には、dalvikバイトコードをjavaバイトコードに変換するツールがあります:dex2jar。今のところ、ほとんどの実際のアプリケーションではクラッシュしますが、単純なアプリを適切に変換できるため、dex2jarとjdの組み合わせを使用すると、非常に優れたJavaコードが得られます。また、dex2jarは急速に開発されており、ますます多くのケースをサポートしています。
Fredericがdex2jarが非常に優れていると述べたように、アセンブリ言語のような「 .ddx」や「 .smail」ファイルの代わりに、 dex2jarとjadを使用して読み取り可能なJavaソースコードを取得できます。