APK分析相关教程

1 抓包

1.1 PC端抓包

本文档采用方案:夜神模拟器+Fiddler。
软件安装略过,直接上硬货。以下文字整理自互联网,仅供学习。
=============分界线===============
一、配置Fiddle参数设置
1、Tools->Options
APK抓包、反编译教程 - 图1
2、HTTPS->勾选Ignore …
APK抓包、反编译教程 - 图2
3、如果HTTPS下没有Ignore选项,勾选Action->Reset All Certificates
APK抓包、反编译教程 - 图3
4、Connections ->记下port号8888 (此处端口可自己设定),这个后面有大用。Connections->勾选Allow
APK抓包、反编译教程 - 图4
至此,Fiddle配置操作成功
=============分界线===============

二、夜神模拟器设置
1、设置模拟其的IP地址和端口Port
APK抓包、反编译教程 - 图5
点击WiredSSID,长按鼠标左键数秒,弹出弹窗。代理服务器填写本机IP,端口填写Fiddler中填写的端口。
APK抓包、反编译教程 - 图6
2、安装Fiddle证书
在模拟器浏览器输入http://ipv4.fiddler:8012,下载安装证书
APK抓包、反编译教程 - 图7

保存证书(证书名可随意填)。
APK抓包、反编译教程 - 图8

1.1 手机端抓包

APK抓包、反编译教程 - 图9 以抓包精灵为例
1. 选择需要抓包的APP
APK抓包、反编译教程 - 图10
2.开启抓包后会显示每一条连接。
APK抓包、反编译教程 - 图11
3. 进入查看包内容
APK抓包、反编译教程 - 图12

2 反编译

工具介绍
apktool
资源文件获取,可以提取出图片文件和布局文件进行使用查看
dex2jar
将apk反编译成java源码(classes.dex转化成jar文件)
jd-gui
查看APK中classes.dex转化成出的jar文件,即源码文件
  1. apk反编译得到程序的源代码、图片、XML配置、语言资源等文件

  2. 下载上述工具中的apktool,解压得到3个文件:aapt.exe,apktool.bat,apktool.jar ;

  3. 将需要反编译的APK文件放到该目录下;
  4. 打开命令行界面(运行-CMD),定位到apktool文件夹,输入以下命令:apktool.bat d -f test.apk test

APK抓包、反编译教程 - 图13
(命令中test.apk指的是要反编译的APK文件全名,test为反编译后资源文件存放的目录名称,即为:apktool.bat d -f [apk文件 ] [输出文件夹])
APK抓包、反编译教程 - 图14

二、Apk反编译得到Java源代码

  1. 下载上述工具中的dex2jar和jd-gui ,解压;
  2. 将要反编译的APK后缀名改为.rar或则 .zip,并解压(此处可直接用rar等压缩工具解压);
  3. 得到其中的额classes.dex文件(它就是java文件编译再通过dx工具打包而成的),将获取到的classes.dex放到之前解压出来的工具dex2jar-0.0.9.15 文件夹内;
  4. 在命令行下定位到dex2jar.bat所在目录,输入dex2jar.bat classes.dex,效果如下

APK抓包、反编译教程 - 图15

在该目录下会生成一个classes_dex2jar.jar的文件,然后打开工具jd-gui文件夹里的jd-gui.exe,之后用该工具打开之前生成的classes_dex2jar.jar文件,便可以看到源码了,效果如下:
APK抓包、反编译教程 - 图16
被混淆过的效果图(类文件名称以及里面的方法名称都会以a,b,c….之类的样式命名):
APK抓包、反编译教程 - 图17