反编译apk工具「反编译apk软件」( 二 )


反编译流程:
一、apk反编译得到程序的源代码、图片、XML配置、语言资源等文件
下载上述工具中的apktool , 解压得到3个文件:aapt.exe , apktool.bat , apktool.jar , 将需要反编译的APK文件放到该目录下 ,
打开命令行界面(运行-CMD) , 定位到apktool文件夹 , 输入命令:apktool.bat d -f test.apk test
(命令中test.apk指的是要反编译的APK文件全名 , test为反编译后资源文件存放的目录名称 , 即为:apktool.bat d -f [apk文件 ] [输出文件夹])
说明获取成功 , 之后发现在文件夹下多了个test文件 , 点击便可以查看该应用的所有资源文件了 。
如果想将反编译完的文件重新打包成apk , 可以:输入apktool.bat b test(你编译出来文件夹)便可 , 之后在之前的test文件下便可以发现多了2个文件夹:
builddist(里面存放着打包出来的APK文件)
反编译Android APK的具体步骤是怎样的反编译:
一、更改apk文件的后缀名 , 如:LianyunHelper3.0.11.apk改成LianyunHelper3.0.11.zip
二、用zip解压缩LianyunHelper3.0.11.zip文件
三、从解压缩的文件夹中取出classes.dex文件并放到dex2jar.bat所在目录
四、运行cmd命令 , 进入dex2jar.bat所在的目录 , 输入dex2jar.bat classes.dex即可生成classes.dex.dex2jar.jar文件
五、用jd-gui工具打开classes.dex.dex2jar.jar文件 , 即可看到源码
六、将AndroidManifest.xml文件放到AXMLPrinter2.jar所在目录 , 运行cmd命令 , 进入 AXMLPrinter2.jar所在目录 , 输入java -jar AXMLPrinter2.jar AndroidManifest.xml AndroidManifest.txt 。
防止反编译:
2.3之后的在工程的"default.properties"中添加这样一句话“proguard.config=proguard.cfg”
2.3之前的把 proguard.cfg 文件 拷贝到 旧项目里就好了 。
如何反编译Android 的apk/dex/odex , 获得源码/how-to-deodex-applications-on-android-5-0-lollipop/ 。 具体方法如下:
1. 从这里下载工具包 , 解压缩到本地 。 这里的baksmali的版本是2.0.3. 不同版本的baksmali针对的Android内核不同 。 有时候高版本反倒不好用 。
2. 打开工具所在目录 , 按住shift键 , 点击鼠标右键 , 打开windows命令窗口
3. 把 odex文件拷贝到该目录
4. 在命令窗口运行: oat2dex.bat *.odex. 正常情况下 , 应该显示OK等信息 。 如果报错的话 , 说明这个文件无法转换 , 后面的也不用试了 。
5. 运行 oat2dex.bat *.odex temp.dex . 运行后会创建一个temp.dex文件 。
6. 运行 java -jar baksmali-2.0.3.jar -a 21 -x temp.dex -o source . 运行后会创建一个source的文件夹 , 并将temp.dex反编译到该文件夹 。 -a 21 表明的是Android内核的版本21
7. 运行 java -jar small-2.0.3.jar -a 21 source -o classes.dex , 反编译为classes.dex文件 。
需要注意的是:由这种方式反编译成的classes.dex 文件相比原生的classes.dex 还是缺少了些信息 , 因此反编译这种classes.dex 文件后生成的java代码可读性会更差些 。
8. 用在线工具JADX 来把 classes.dex 最终反编译为java代码 。
如何使用apktool反编译apk
1.下载apktool所需文件:
a、 apktool1.5.2.tar.bz2
b、apktool-install-windows-r05-ibot.tar.bz2 (windows系统)
2.解压刚刚下载的文件 , 并将解压的文件放入C:\Windows目录下
3.启动控制台 , 输入apktool , 回车可查看到apktool工具常用指令
4.新建一个文件夹 , 用于存放apk及待解压的文件 , 这里笔者将文件夹建在D:\apk目录 , 同时放入用于测试的android app包(test.apk)
5.控制台输入:apktool d D:\apk\test.apk D:\apk\test 进行反编译操作
中句话中“D:\apk\test.apk”指apk存放位置 , “D:\apk\test”指反编译后文件存放的位置


特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。