在逆向的过程中,抓包是首要要解决的问题。但是现在的app反制措施很多,其中限制代理和vpn是抓包是很普遍的。通常这样的解决方案是找到app相关的类,进行hook或者pach,但是要找到这样的类或者方法是不容易的,并不适合新手操作。本文介绍一种较为容易的另类解决方案,可以较为全面的解决以上问题:
硬件环境:
1:处于同一路由器下的同一ip段的手机和pc;
2:手机需要root权限,笔者系统为android8.1,以下或者以上的系统应该也可以(未经测试);
3:adb usb调试模式连接好手机;
首先,下载附件的clash.rar,解压后可以看到如下的目录:
image-20230218170401912.png (11.18 KB, 下载次数: 0)
下载附件
2023-2-18 18:12 上传
1:用文本编辑工具打开config.yaml文件,笔者的pc ip地址为172.17.145.1,红框内填写你的pc ip地址即可,别的地方无需更改,保存。
image-20230218171900993.png (54.6 KB, 下载次数: 0)
下载附件
2023-2-18 18:14 上传
2:运行push.bat,这一步会推送相关文件到手机的data/local/tmp 目录,运行完毕后,任意键终止即可:
image-20230218170924184.png (21.72 KB, 下载次数: 0)
下载附件
2023-2-18 18:13 上传
3:运行run.bat,这一步会加载clash程序和相关的iptable规则,正常运行的图示如下:
image-20230218171206864.png (38.67 KB, 下载次数: 0)
下载附件
2023-2-18 18:14 上传
4:run.bat后,这个运行窗口会不断的输出信息,在抓包的过程中都要始终保持此窗口。如结束抓包,那么右上角X结束程序,同时需运行clear.bat清除iptale规则,以免给程序运行造成网路的麻烦。
5:在浏览器测试:http://172.17.145.2:9090,其中172.17.145.2为手机的ip地址
如反馈如下,则正常:
image-20230218173020940.png (14.02 KB, 下载次数: 0)
下载附件
2023-2-18 18:16 上传
其次,打开一款web版clash控制台,这里用的是 http://clash.razord.top/(但是这个网址不好使,要翻墙,求推荐好使的web控制台):
1:打开网址 http://clash.razord.top/后,会弹出:
image-20230218172711285.png (41.93 KB, 下载次数: 0)
下载附件
2023-2-18 18:16 上传
填写你的手机 ip 地址,端口9090 ,点确定
2:到设置选项,设置socks5端口为8889,http端口为8888,其他不变:
image-20230218173852192.png (50.01 KB, 下载次数: 0)
下载附件
2023-2-18 18:19 上传
3:回到策略组这里,选择proxy_socks5或者proxy_http:
image-20230218174043637.png (29.12 KB, 下载次数: 0)
下载附件
2023-2-18 18:20 上传
说明:如果选择的是http那么抓包工具charles,fiddler和burp都可以用。如果选择的socks5,那么只有charles可以用(原因是只有charles直接支持socks代理)。这两者的区别在于socks5有更好的兼容性,有些app的包在socke5下才可以顺利抓取。当然如果你有好的http2socks的工具也可以尝试把fd和burp的端口转换位socks,这两款软件个人认为看起来更直观,只是我目前并没有找到这样的工具,求推荐!
4:在clarles的proxy settings,里设置如下:
image-20230218175011373.png (30.61 KB, 下载次数: 0)
下载附件
2023-2-18 18:20 上传
在clarles的ssl proxying settings,里设置如下,其中inclue的host 和 port 都填入*,只有填写正确才能解密ssl:
image-20230218175124322.png (27.81 KB, 下载次数: 0)
下载附件
2023-2-18 18:21 上传
5:安装charles,fd和burp相应的证书。这步从略,网上有很多教程。值得注意的是在android7以上,还需要把证书移动到系统目录,推荐用magisk的Move_Certificates模块,将抓包软件的证书置于系统内让系统信任;
6:顺利抓包的3款软件:
image-20230218175405791.png (110.21 KB, 下载次数: 0)
下载附件
2023-2-18 18:22 上传
image-20230218175439046.png (168.17 KB, 下载次数: 0)
下载附件
2023-2-18 18:21 上传
image-20230218175513483.png (95.45 KB, 下载次数: 0)
下载附件
2023-2-18 18:22 上传
fd和burp的代理设置从略,只要设置为8888端口即可,很简单。
7:
[color=]只要pc和手机的ip和端口没有变化,那么第二大步的web端下次均无需设置,直接运行run.bat和抓包软件即可
最后总结:这种方案是利用clash的core版本配合iptable规则将数据转发到抓包软件,以避免app对代理和vpn的检测,比较具有普遍性。
值得注意的是,即使这样操作后可能某些软件依然有抓包的问题。那么基本上就涉及到ssl pining或者证书绑定等。
但这个便利的框架已经搭建起来,对应解决相关为题即可
最后该项目教程主要来源于:
[Clash版]安卓上基于透明代理抓包 - SeeFlowerX,感谢脸哥
[color=]码字不易,请大家多给热心评分,多谢!!!