前言很久以前就在反编译,知道今天非要反编译才又捡起来,今天就记录一下吧.工具准备1.测试环境:win102,使用工具:2.1CSDN下载地址:apktooldex2jarjd-gui2.2官方最新版下载地址:apktool(googlecode)dex2jar(googlecode)jd-gui(googlecode)工具介绍apktool功能:资源文件获取,可以提取图片文件和布局文件使用查看dex2jar功能:将apk反编译成Java源码(classes.dex转成jar文件)jd-gui功能:查看classes.dex转成APKjar文件,即一、源码文件的反编译过程1.反编译apk得到程序的源码、图片、XML配置、语言资源等文件1)在上述工具中下载apktool,解压得到3个文件:aapt.exe,apk工具。bat、apktool.jar,把需要反编译的APK文件放到这个目录下,2)打开命令行界面(Run-CMD),找到apktool文件夹,输入以下命令:apktool.batd-ffish.apkfish(命令中的test.apk是指要反编译的APK文件的全名,test是反编译后资源文件所在目录的名称,即:apktool.batd-f[apkfile][outputfolder])3)表示获取成功,后来发现文件夹里多了一个fish文件,点击可以查看应用的所有资源文件。4)如果想把反编译后的文件重新打包成apk,那么可以:进入apktool.batbtest(你编译的那个文件夹),效果如下:5)之后就可以在之前的测试文件下使用了又找到2个文件夹:builddist(存放打包后的APK文件)2.反编译Apk获取Java源码1)在上述工具中下载dex2jar和jd-gui,解压2)待反编译的APK将后缀名改为.rar或.zip,解压得到classes.dex文件(由java文件编译后用dx工具打包),将得到的classes.dex解压后放入dex2jar-0.0.9.15文件夹中工具,3)在命令行下找到dex2jar.bat所在目录,输入dex2jar.batclasses.dex,效果如下:4)在改目录下会生成一个class_dex2jar.jar文件,并且然后打开工具jd-gui文件夹下的jd-gui.exe,然后用这个工具打开之前生成的classes_dex2jar.jar文件,可以看源码,效果如下:5)混淆后的效果图(class里面的文件名和方法名会按照a,b,c的样式命名。...)。反编译现状因为这种工具的存在对知识产权的保护非常不利,所以现在的技术也发生了变化。很多公司都会配置自己的产品,在反编译的时候可能会出现各种各样的问题。该异常导致反编译失败。
