【Android】编译和调试dex2jar
git位于https://github.com/pxb1988/dex2jar.git,配置和编译方法参照前几帖所示、这里就不配图文了同样的,很多apk会找到apktool或dex2jar的bug来达到保护自己的目的,对于dex2jar就有nullpointer等错误
dex2jar的目标jar有很多,现在以dex2smali为例:
编译:Gradle projects->:d2j-smali->Tasks->build->jar编译成功后会得到d:\dex2jar\d2j-smali\build\libs\d2j-smali-2.1-SNAPSHOT.jar(最新发布的才2.0!)
调试:这里参照apktool 里d2j-dex2smali.bat来设置
因为d2j-smali-2.1-SNAPSHOT.jar这个jar里其实包含至少2个功能,一个是dex2smali,一个是smali2dex,因此有多个主类,因此并不能用上节那样调试jar
bat里是java -Xms512m -Xmx1024m -cp "%CP%" %* @"%~dp0d2j_invoke.bat" com.googlecode.d2j.smali.BaksmaliCmd %*
因此增加配置项(如上个帖子)EditConfiguration-> + -> Application写入:
Main class -> com.googlecode.d2j.smali.BaksmaliCmd
VM options -> -Xms512m -Xmx1024m
Program arguments -> classes.dex拿个dex文件做例子,自己配置相应目录Working directory
在d2j-smali -> src -> main -> java -> com.googlecode.d2j.smali.BaksmaliCmd ->main中下断点
之后点虫子按钮调试,这时提示“错误: -source 1.6 中不支持 diamond 运算符(请使用 -source 7 或更高版本以启用 diamond 运算符)”
也就是java版本低了,那么在菜单File->Project Structure中吧所有存在的1.6版本全改成1.7
再点虫子,ok断下!
页:
[1]