CA证书导入系统目录


 

 

 

针对安装证书后无法抓包的情况,将证书添加到系统路径,使其成为系统信任凭证可解决:
设备要求userdebug获取超级权限:
adb disable-verity
adb reboot
adb root
adb remount

pc端需要配置openssl
进入openssl的安装目录,执行start.bat
输入命令 openssl x509 -subject_hash_old -in 证书文件路径
将证书更名为 哈希值.0
将更名后的证书导入系统路径:
adb push 证书路径 /system/etc/security/cacerts/
进入系统设置查看:adb shell am start -a android.settings.SECURITY_SETTINGS

 

安装配置好后,实际使用过程中,还是会遇到一些问题,如:抓取的https请求,接口返回都显示为unknown,app很多请求不走代理,无论怎么配置都无法抓到请求

为了解决上面的问题,可以使用iptables 进行请求转发,将请求转发到代理服务器上

② 查看需要转发请求的app uuid

ps -ef | grep 包名

③ 将所有应用u0_aXX的请求到端口0-65535的请求,转发到透明代理 127.0.0.1:16666 上

iptables -t nat -A OUTPUT -p tcp ! -d 127.0.0.1 -m owner --uid-owner u0_aXX --dport 0:65535 -j DNAT --to-destination 127.0.0.1:16666

需要指定端口可以用 -m multiport --dports 80,443 这样来限定一个或者多个端口

iptables -t nat -A OUTPUT -p tcp ! -d 127.0.0.1 -m owner --uid-owner u0_aXX -m multiport --dports 80,443 -j DNAT --to-destination 127.0.0.1:16666

 ④ 使用redsocks将流量转发到正向代理(charles)

修改redsocks配置文件

 

修改配置文件redsocks.conf,内容如下:

base {

    log_debug = off;

    log_info = on;

    log = stderr;

    daemon = off;

    redirector = iptables;

}

 

redsocks {

    bind = "127.0.0.1:16666";

    relay = "代理主机地址:8889";

    type = socks5;

    autoproxy = 0;

    timeout = 13;

}

redsoks 里面,bind为透明代理地址及端口;relay为正向代理(charles)地址及端口,注意配置文件的每一对{}后面都应该有一个空行,否则会报错;

将解压文件夹里的 redsocks、redsocks.conf上传到机器里面,并执行redsocks;使用如下命令

adb push redsocks /data/local/tmp/redsocks
adb push redsocks.conf /data/local/tmp/redsocks.conf
adb shell chmod +x /data/local/tmp/redsocks
adb shell chmod +x /data/local/tmp/redsocks.conf
adb shell
su
cd /data/local/tmp
./redsocks

⑤查看chales上的抓包结果,并通过charles的breakepoint 和 maplocal 功能,即可对接口请求,返回进行自定义配置

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM