百趣云
百趣云的博客
🔖抓包
iOS 抓包的三层障碍iOS 上抓 HTTPS 比 Android 更折腾,障碍分三层:系统层:iOS 默认信任用户安装的 CA(描述文件装证书后还要在"设置→通用→关于→证书信任设置"里手动开完全信任——这一步 90% 的新手会漏)ATS(App Transport Security):苹果强制的安全策略,但只卡"系统 CA 不信任"的场景,装了证书就过SSL Pinning:App 代码里写死证书/公钥校验,系统信任链完全被绕过——这是真正的城墙SSL Kill Switch 2:一键绕过 PinningSSL Kill Switch 2 是 iOS 上绕过证书绑定的标准工具,原理是 ho
为什么系统代理不够用安卓抓包的标准痛点:在 WiFi 设置里配了代理,但很多 App 根本不走系统代理——OkHttp 可以配 Proxy.NO_PROXY,native 层的网络库(Cronet、自研协议栈)直接无视系统设置。表现就是 Charles 里只能抓到部分请求,目标接口一个都看不到。解法:VPN 型全局接管。Postern 这类工具在手机上起一个本地 VPN,所有 TCP 流量强制走 VPN,再转发给 Charles——App 无论怎么配置都逃不掉。方案架构手机 App → Postern(VPN 接管) → Charles(电脑) → 目标服务器配置步骤第一步:Charles 端
Rewrite 是 Charles 被低估的功能大多数人用 Charles 只看包,其实它的 Rewrite(重写) 功能可以规则化地批量修改请求和响应——改参数、换 host、注 header,不用写一行代码。逆向调试和服务端逻辑测试都靠它。入口:Tools → Rewrite → Enable Rewrite,然后添加规则集。六大规则类型与实战场景1. Modify Header(改请求头)场景:测试接口对 ua 的校验逻辑——把所有请求的 User-Agent 改成指定值:Type: Modify Header
Where: Request
Match: Name=User-Agent
为什么要写插件而不是手动看包mitmproxy 手动看包适合探索,但逆向工程经常需要批量处理:自动解密响应、自动提取 token、自动记录特定接口。这些靠手点不现实——mitmproxy 的插件系统(Python addon)就是干这个的。mitmdump -s myaddon.py --listen-port 8888
# 手机代理指向 8888,所有流量经过你的 Python 代码插件骨架:事件驱动mitmproxy 插件是事件驱动的,常用事件钩子:from mitmproxy import http, ctx
class DecryptAddon:
def request(se