dex2jar工具及问题
目的將dex文件反編譯成jar
步驟如下:
(1) 將apk重命名為zip;
(2) 用zip解壓classes.dex;
(3) 執行?d2j-dex2jar? classes.dex?//將classes.dex反編譯成classes-dex2jar.jar
? ? ?dex2jar classes.dex -> .\classes-dex2jar.jar?
可選參數如下:
usage: d2j-dex2jar [options] <file0> [file1 ... fileN]
options:
-d,--debug-info translate debug info?//轉 debug信息
-e,--exception-file <file> detail exception file, default is $current_dir/[file-name]-error.zip //指定報錯文件路徑文件名
-f,--force force overwrite //強制覆蓋目標文件
-h,--help Print this help message //幫助
-n,--not-handle-exception not handle any exception throwed by dex2jar //不處理異常
-nc,--no-code
-o,--output <out-jar-file> output .jar file, default is $current_dir/[file-name]-dex2jar.jar //指定輸出jar包文件路徑文件名
-os,--optmize-synchronized optmize-synchronized//??
-p,--print-ir print ir to Syste.out
-r,--reuse-reg reuse regiter while generate java .class file //復用寄存器?
-s same with --topological-sort/-ts
-ts,--topological-sort sort block by topological, that will generate morereadable code, default enabled
支持直接decode apk文件,命令如下:
d2j-dex2jar? xxx.apk
?
FAQ?
1??遇到 "not support version"問題??
E:\Decompilation\Dex2jar\dex2jar-2.0>d2j-dex2jar.bat? classes.dex
dex2jar classes.dex -> .\classes-dex2jar.jar
com.googlecode.d2j.DexException: not support version.
??????? at com.googlecode.d2j.reader.DexFileReader.<init>(DexFileReader.java
??????? at com.googlecode.d2j.reader.DexFileReader.<init>(DexFileReader.java
??????? at com.googlecode.dex2jar.tools.Dex2jarCmd.doCommandLine(Dex2jarCmd.
??????? at com.googlecode.dex2jar.tools.BaseCmd.doMain(BaseCmd.java:288)
??????? at com.googlecode.dex2jar.tools.Dex2jarCmd.main(Dex2jarCmd.java:32)
解決辦法:將dex文件以16進制打開(例如用Ultra Edit), 若前八位是不是“64 65 78 0A 30 33 35 00”(字符串格式為“dex.035."),
則將其修改為“64 65 78 0A 30 33 35 00”保存好再進行反編譯即可
?
2 關鍵代碼解不出來?
可以嘗試使用Jadx-gui工具打開,大部分java代碼都能自動反解出來,但是仍然有些反解不出。
?
Jadx-gui工具
使用簡單,只用把apk或dex文件拖拽到界面上,自動反解,用時較慢。
?
luyten?工具
該工具只能打開jar包,只用把jar文件拖拽到界面上,自動反解。
?
總結
以上是生活随笔為你收集整理的dex2jar工具及问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 讲php fpm的书,细说PHP-fpm
- 下一篇: IIS的安装与配置