安卓逆向(工具篇)
安卓逆向
(1).下载工具
1.apktool——可以反编译软件的布局文件、图片等资源,方便大家学习一些很好的布局;
2.dex2jar——将apk反编译成java源码(classes.dex转化成jar文件);
3.jd-gui——查看APK中classes.dex转化成出的jar文件,即源码文件;
4.AXMLPrinter2——静态分析工具,正常打开xml文件内容(一般打开会乱码)
apktool(选最新版)
iBotPeaches / Apktool / Downloads — Bitbucket
然后把这个网址里的东西复制粘贴保存为apktool.bat,和上面下载的apktool.jar放在同一个目录下
https://raw.githubusercontent.com/iBotPeaches/Apktool/master/scripts/windows/apktool.bat
安装工具dex2jar2.0
Download dex2jar from SourceForge.net
下载jd-gui(我下载的win版)
程序:
Java Decompiler (java-decompiler.github.io)
jar文件
java-decompiler/jd-gui: A standalone Java Decompiler GUI (github.com)
下载AXMLPrinter2
digitalsleuth/AXMLPrinter2: AXMLPrinter jar and zip files from Google Code (github.com)
(2).使用
1.获取dex文件
工具:解压缩工具
我们都知道,Android会把class文件打包成dex文件然后存放于apk中,我们第一步就是要获取dex文件,其实办法非常简单:将apk安装包后缀“.apk”更改为“.zip”,然后用解压缩工具进行解压即可,毕竟apk也是一种压缩包格式嘛!
2.资源文件xml破解
工具:AXMLPrinter2.jar
上面解压缩后,除了获取到dex文件外,还有res资源文件夹,里面有布局文件啊,drawable啊等等,图片资源是可以直接查看了,但布局文件和AndroidManifest.xml等xml格式的打开后都会出现乱码,我们接下来以AndroidManifest.xml为例进行破解,AXMLPrinter2.jar和AndroidManifest.xml至于相同目录下,在当前目录按住shift键点击鼠标右键,在此处打开Powershell窗口”(win10系统),输入命令:
java -jar AXMLPrinter2.jar AndroidManifest.xml > AndroidManifest.txt
会产生一个txt文件
打开就能看到原始内容啦
3.将dex文件转换为jar文件
工具:dex2jar-2.0
把上面获取到的dex文件——classes.dex放到 dex2jar-2.0 根目录中,
然后在 dex2jar-2.0 根目录下打开命令行窗口,然后输入命令:
./d2j-dex2jar.bat classes.dex
执行完毕后,会生成一个classes-dex2jar.jar文件
4.查看classes-dex2jar.jar
工具:jd-gui
直接打开jd-gui.exe,然后在工具中打开上面生成的classes-dex2jar.jar文件,图形化界面非常nice,操作也非常简单,至此我们直接可以查看class文件了,如下图所示:
5.反编译修改
工具:apktool
将待反编译的apk文件与apktool.bat、apktool.jar置于同一目录下,在当前目录打开命令行窗口,输入命令:
apktool.bat d -r test.apk -o test
说明:apktool.bat d -r [待反编译的apk] -o [反编译之后存放文件夹]
注意到上面红色箭头smali目录,里面所有文件都是以“.smali”为后缀的,这是反编译后的格式,如果你需要对其进行修改的话,你需要学一部分smali语法,这里就不做展开了。
6.二次打包
工具:apktool、360签名工具
上面反编译后,你做了修改后当然希望能够再次打包成apk文件,我们同样是用apktool工具,同样在上面目录下打开命令行窗口,输入命令:
apktool.bat b test
说明:test为反编译后存放的文件夹
基本用法先介绍到这,以后有需要继续更新