decompile-java

来源:互联网 发布:宁波网络机柜回收 编辑:程序博客网 时间:2024/04/30 14:28
反编译apk: 
apktool : http://code.google.com/p/android-apktool/  linux,win,mac 
dex2jar : http://code.google.com/p/dex2jar/ // 注意!!!这里的版本一定要下对!!否则没有用!版本是:dex2jar-0.0.7.4-SNAPSHOT正常,dex2jar-0.0.7.5-SNAPSHOT及以后版本很可能异常,目前最新版:dex2jar-0.0.9.8.tar.gz可用(见本文附件) 
jd-gui : http://java.decompiler.free.fr/?q=jdgui  linux,win,mac 
jd-eclipse-plugin update site: 
http://java.decompiler.free.fr/jd-eclipse/update 

方法: 
解压apk得classes.dex,将其copy到dex2jar-0.0.7-SNAPSHOT目录。 
cd path/to/dex2jar-0.0.7-SNAPSHOT 
sh dex2jar.sh classes.dex  
得到classes.dex.dex2jar.jar 
打开jd-gui,file -> open ,找到classes.dex.dex2jar.jar即可看到源码了。 
导出源码:file -> save all sources 

资源文件: 
apktool d path/to/apk path/to/place/appfiles 
重新打包: 
apktool b path/to/place/appfiles 

如果用jd eclipse plugin, 将classes.dex.dex2jar.jar加入到工程的classpath, 直接双击相应的class文件即得源码。 

一般的apk都是用的proguard机制混淆来达到反反编译的目的,但这样的方式隐藏不了软件的逻辑,最好的加密方式是用classloader机制进行加密,要使用时解密。 

反汇编so:objdump(linux) 
objdump -D sofile 
according to manpage it can also handle arm 
if you have the source you might prefer -S 
(end) 
原创粉丝点击