反编译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)
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)