今天因为需要研究了一下反编译,总结出步骤如下:
反编译步骤:
1. 在网上下载APK,
2. 将apk文件后缀改为zip并解压,得到其中的classes.dex
3. 在命令行下(打开cmd.exe)定位到dex2jar.bat所在目录,运行
(classes.dex在E:\qq目录下)dex2jar.bat E:\qq\classes.dex
如图:
得到 文件classes_dex2jar.jar,现在就可以在jd_gui.exe中打开查看源码了。
4. 在命令行下定位到apktool.bat文件夹,输入以下命令:
apktool.bat d E:\qq\QQ_122.apk E:\qq\qq反编译后
(第一次尝试时报异常如图,试了几次都是这样
在网上找了好久都是解释说java虚拟机堆内存不够导致的。重新下载了一个apk,重复上面的操作,结果成功了。)成功后运行结果如图:
apktool.bat 命令行解释:apktool.bat d -f [apk文件 ] [输出文件夹] 其中-f表示如果输出文件夹已存在,则覆盖。
反编译后的项目文件包括如下:
5. 将反编译完的文件重新打包成apk,输入apktool.bat b (编译出来文件夹)即可,命令如下:
打包apk后的文件在目录xinlangweibo下,生成了两个文件夹:
其中,打包生成的xinlangweibo.apk,在上面的dist文件夹下。