Android 逆向工程:Charles + Android 实现 HTTPS 抓包

通过抓包我们可以知道APP的API请求参数,我们就可以利用这些API做一些我们想做的事情。常用的抓包工具有 Flidder 和 Charles,我一般是使用 Charles,如果是HTTP抓包是非常简单,但是HTTPS就复杂很多,而且还可能无法抓包。

HTTPS 抓包

这里介绍的是 Charles + Android 的HTTPS抓包方式,首先是要在手机上安装 证书 才可以实现抓包。


Install Charles Root Certificate 是给PC端安装证书,实现电脑浏览器HTTPS抓包。Android 是点击 Install Charles Root Certificate on a Mobile Device or Remote Browser

下载 pem 文件

在手机浏览器输入 chls.pro/ssl,建议使用UC浏览器下载,就会提示一个 pem 格式的文件。

小米手机安装 charles 证书,提示 没有可安装的证书 ,需要使用UC浏览器来下载。

安装证书

这里是以小米手机为例,打开 设置 - 更多设置 - 系统安全 - 加密与凭证 - 从存储设备安装;然后找到刚才下载的 pem文件目录。


设置代理

找到电脑的IP地址,手机设置电脑的代理


设置 SSL代理

添加需要抓包的网址

测试

到这里就已经配置完毕了,在手机的浏览器上输入 对应的测试网址就可以看到 HTTPS 抓包。

异常一(无法抓包,需要安装系统级别证书)

通过手机浏览器的浏览的HTTPS页面基本都可以抓包,但是 APP 的请求,很多都是无法抓包,主要是有两种原因,这个就是我们安装的证书是属于 用户级别,需要安装成为系统级别才可以,但是必须要 ROOT 权限,之后的文章再解释如何解决。

Failure Client SSL handshake failed: An unknown issue occurred processing the certificate (certificate_unknown)
Notes You may need to configure your browser or application to trust the Charles Root Certificate. See SSL Proxying in the Help menu.

如果我们是用于APP调试,Google给出了解决方案
https://developer.android.google.cn/training/articles/security-config.html

异常二(无法抓包,APP做了证书校验)

这种就是APP已经做了证书的校验,只允许通过信任的证书,所以无法实现抓包。

你可能感兴趣的:(Android 逆向工程:Charles + Android 实现 HTTPS 抓包)