APK分析相关教程
1 抓包
1.1 PC端抓包
本文档采用方案:夜神模拟器+Fiddler。
软件安装略过,直接上硬货。以下文字整理自互联网,仅供学习。
=============分界线===============
一、配置Fiddle参数设置
1、Tools->Options
2、HTTPS->勾选Ignore …
3、如果HTTPS下没有Ignore选项,勾选Action->Reset All Certificates
4、Connections ->记下port号8888 (此处端口可自己设定),这个后面有大用。Connections->勾选Allow
至此,Fiddle配置操作成功
=============分界线===============
二、夜神模拟器设置
1、设置模拟其的IP地址和端口Port
点击WiredSSID,长按鼠标左键数秒,弹出弹窗。代理服务器填写本机IP,端口填写Fiddler中填写的端口。
2、安装Fiddle证书
在模拟器浏览器输入http://ipv4.fiddler:8012,下载安装证书
1.1 手机端抓包
以抓包精灵为例
1. 选择需要抓包的APP
2.开启抓包后会显示每一条连接。
3. 进入查看包内容
2 反编译
工具介绍 |
---|
apktool |
资源文件获取,可以提取出图片文件和布局文件进行使用查看 |
dex2jar |
将apk反编译成java源码(classes.dex转化成jar文件) |
jd-gui |
查看APK中classes.dex转化成出的jar文件,即源码文件 |
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文件 ] [输出文件夹])
二、Apk反编译得到Java源代码
- 下载上述工具中的dex2jar和jd-gui ,解压;
- 将要反编译的APK后缀名改为.rar或则 .zip,并解压(此处可直接用rar等压缩工具解压);
- 得到其中的额classes.dex文件(它就是java文件编译再通过dx工具打包而成的),将获取到的classes.dex放到之前解压出来的工具dex2jar-0.0.9.15 文件夹内;
- 在命令行下定位到dex2jar.bat所在目录,输入dex2jar.bat classes.dex,效果如下
在该目录下会生成一个classes_dex2jar.jar的文件,然后打开工具jd-gui文件夹里的jd-gui.exe,之后用该工具打开之前生成的classes_dex2jar.jar文件,便可以看到源码了,效果如下:
被混淆过的效果图(类文件名称以及里面的方法名称都会以a,b,c….之类的样式命名):