banner
lca

lca

真正的不自由,是在自己的心中设下牢笼。

macOSでAPKを逆コンパイルしてソースコードを表示する方法

需要用到的工具

查看 apktool 版本

 apktool --version

image

Mac 安装 dex2jar

 brew install dex2jar

第一步 Apktool 反编译 APK 文件

 apktool d xxx.apk

image

apktool からは、いくつかのソースコードファイルを apk で見ることができます。この方法で逆コンパイルすると、smali ソースコードのみを表示できます。

image.png

第二步 dex2jar 将 dex 反编译为 jar

apk ファイルの拡張子を zip の拡張子に変更します。

image

zip ファイルを解凍して、dex の拡張子のファイルを取得し、dex2jar を使用して dex ファイルを jar ファイルに変換します。

 d2j-dex2jar classes.dex

image

または、dex2jarを直接ダウンロードして、次のコマンドを実行します。

sh d2j-dex2jar.sh classes.dex

コンパイルに失敗し、バージョンの問題が表示される場合は、dex ファイルのヘッダーのバージョンを変更する必要があります。

image

dex ファイルのヘッダーには、dex ファイルのタイプとバージョンを示す 8 バイトの固定文字配列である magic フィールドがあります。以下は、異なるバージョンの dex ファイルのヘッダーの magic フィールドの内容です:

・Android 1.0 および 1.1 のバージョン:dex 035
・Android 1.5 のバージョン:dex 035
・Android 1.6 のバージョン:dex 036
・Android 2.0 から 2.3.7 のバージョン:dex 035
・Android 3.0 から 3.2.6 のバージョン:dex 036
・Android 4.0 から 4.0.4 のバージョン:dex 035
・Android 4.1 から 4.4.4 のバージョン:dex 036
・Android 5.0 から 6.0.1 のバージョン:dex 037
・Android 7.0 から 7.1.2 のバージョン:dex 038
・Android 8.0 以上のバージョン:dex 039

jar ファイルを取得したら、jd-gui を使用して jar コードを表示できます。

第三步 JD-GUI で jar コードを表示

image

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。