APK反编译,修改了.java源码,现在怎么编译回去?

APK提取里面的dex文件,用dex2jar工具编译生成classes_dex2jar.jar文件,再把这个文件用jdgui编译出来,得到了classes_dex2jar.src.zip源码压缩包,里面都是.java的源码,我已经修改好了源码,现在怎么让他编译程开始的dex文件呢?

这样做是行不通的。反编译一般是不能完全得到源Java代码的,得到的代码甚至会有语法错误,除非是简单的那些代码。要改的话就得改.class文件,但这个非常困难,要在16进制下改。或者改smali文件,这个比改.class文件要稍微简单一点,不用在16进制下修改,可直接改代码,但也是需要一定的smali语法知识的。追问

用jd gui提取不出.class文件怎么办呢?

追答

可以把dex文件转成jar包,工具为dex2jar。建议还是改smali。

追问

已经改成.jar包了,再怎么做呢?

追答

请看我的回答补充。改.class文件非常麻烦,之前我也尝试过,也成功过,但也只能改到改变某个基本数据类型变量的值等一些简单的修改而已。后来就放弃了,去修改改smali文件,可以做更多的事情,而且也方便得多。

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-10-26
做行通反编译般能完全源Java代码代码甚至语错误除非简单些代码要改改.class文件非困难要16进制改或者改smali文件比改.class文件要稍微简单点用16进制修改直接改代码需要定smali语知识
相似回答