安卓逆向(工具篇)

安卓逆向

(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

image-20220403195227657

安装工具dex2jar2.0

Download dex2jar from SourceForge.net

image-20220403195128218

下载jd-gui(我下载的win版)

程序:

Java Decompiler (java-decompiler.github.io)

jar文件

java-decompiler/jd-gui: A standalone Java Decompiler GUI (github.com)

image-20220403195244678

下载AXMLPrinter2

digitalsleuth/AXMLPrinter2: AXMLPrinter jar and zip files from Google Code (github.com)

image-20220403204849103

(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文件

image-20220403205216328

打开就能看到原始内容啦

image-20220403205254720

3.将dex文件转换为jar文件

工具:dex2jar-2.0
把上面获取到的dex文件——classes.dex放到 dex2jar-2.0 根目录中,

image-20220403205415710

然后在 dex2jar-2.0 根目录下打开命令行窗口,然后输入命令:

./d2j-dex2jar.bat classes.dex

执行完毕后,会生成一个classes-dex2jar.jar文件

image-20220403205453101

4.查看classes-dex2jar.jar

工具:jd-gui
直接打开jd-gui.exe,然后在工具中打开上面生成的classes-dex2jar.jar文件,图形化界面非常nice,操作也非常简单,至此我们直接可以查看class文件了,如下图所示:

image-20220403205626523

5.反编译修改

工具:apktool
将待反编译的apk文件与apktool.bat、apktool.jar置于同一目录下,在当前目录打开命令行窗口,输入命令:

apktool.bat d -r test.apk -o test 
说明:apktool.bat d -r [待反编译的apk] -o [反编译之后存放文件夹] 

image-20220403205958557

注意到上面红色箭头smali目录,里面所有文件都是以“.smali”为后缀的,这是反编译后的格式,如果你需要对其进行修改的话,你需要学一部分smali语法,这里就不做展开了。

6.二次打包

工具:apktool、360签名工具
上面反编译后,你做了修改后当然希望能够再次打包成apk文件,我们同样是用apktool工具,同样在上面目录下打开命令行窗口,输入命令:

apktool.bat b test
说明:test为反编译后存放的文件夹

基本用法先介绍到这,以后有需要继续更新

参考:https://www.jianshu.com/p/da81e7e9aff4

posted on 2022-04-03 21:03  cuihua-  阅读(366)  评论(0编辑  收藏  举报

导航