五、安卓抓包工具
这部分介绍如何使用工具抓取安卓手机上的流量,主要是BurpSuite和Fiddler工具,还有安装证书抓取HTTPS的过程。
1、BurpSuite
BurpSuite抓取手机上的流量需要先设置手机和电脑为同一局域网
在BurpSuite中配置
设置一个新的代理监听器
手机wifi设置代理
访问应用-抓取流量
在手机上随便访问一些app,可以在BurpSuite中看到抓取的包
抓取HTTPS流量-下载证书
浏览器中输入代理IP和端口,点击右上角的CA Certificate按钮下载cacert.der证书。默认下载是.der
格式的证书,手机上无法打开.der文件,下载好后需要将其改为.crt
文件。
抓取HTTPS流量-导入证书
在设置-安全-从存储设备安装中,选择cacert.crt证书,安装即可
访问https的网址
在浏览器中访问https://www.baidu.com,BurpSuite中成功抓取到。
2、Fiddler
先简单介绍Fiddler抓包工具的一些基础操作,稍微熟悉下
清除目前抓到的包
选项栏中选择Remove all
删除所有的包
抓包及指定抓包
左下角的Capturing图标来关闭/开启抓包功能,旁边可以对包进行选择
All Processes 抓取所有通过Fiddler代理的request包 Web Browsers 抓取PC中浏览器的代理请求包 (需要选中Capturing) Non-Browser 抓取除浏览器外的代理请求包 Hide All 隐藏所有的代理请求包
配置抓取HTTPS流量
下载、安装证书,配置监听端口即可
3、HTTP Debugger Pro
下载地址:百度
直接双击安装
默认下一步简单安装
解密SSL-添加证书
进入页面后,点击黄色框中的解密 SSL,选择添加证书即可。
之后即可抓包,也可以抓模拟器上的数据包
六、JEB静态分析+动态调试
1、简单介绍
本次调试的目的:实现任意用户注册,无视注册码
调试程序截图如下,失败返回无效用户名或注册码
2、静态分析
1)将注册机.apk文件导入至JEB中
2)简单查看反编译后的Java代码
关键点在于checkSN函数,传入两个参数arg11和arg12,分别对应用户名和注册码
MessageDigest类为应用程序提供信息摘要算法的功能,这里提供MD5算法 messageDigest.update(str)输入待加密的字符串 messageDigest.digest()加密后的字节数组
主要的逻辑就是:将输入的用户名作为参数1并进行MD5加密,之后进行处理得到一个注册码,也就是说这里的注册码是实时根据用户名生成的,之后在将输入的注册码进行比较,相同则返回True。
跟进equalsIgnoreCase()
函数找到生成的注册码即可,接下来交给动态调试
3、动态调试
1)雷电模拟器中启动注册机apk
随意尝试用户名和注册码进行注册,返回提示无效用户名或注册码
2)JEB下断点
选定equalsIgnoreCase()
函数,按q
返回到对应汇编代码处,下好断点
3)连接到模拟器进行动态调试
需要adb工具,在之前安装SDK时配带
选择Debugger -> Start
,选择雷电模拟器和注册机apk的进程
4)找到校验值(破解点)
发现equalsIgnoreCase()
函数需要两个变量v6和p2,查看v6的值"222275aa4840481c"
5)成功注册
重新启动注册机apk,输入admin和注册码222275aa4840481c,注册成功
4、小结
初入门移动安全逆向apk的第一个小项目,虽然简单,只是一个破解得到注册码,但学到JEB工具的静态分析及动态调试,简单分析Java代码等