有说啊 TTNetworkManager里 Hook看下就知道了
楼上说得对。请问怎么读取本地认证文件,路径是多少?
1 个赞
这个我知道,关键你用什么换?
可行吗?证书以Data的形式加入ClientCertificates还是ServerCertificate,两个都加了 还是抓不了
setServerCertificate时添加证书。我是这么做的
1 个赞
你在手机端如何连接的charles?是通过系统设置里面的Http代理还是第三方App。
系统设置 紫薯布丁 紫薯布丁 紫薯布丁
那没啥问题~
1 个赞
大佬求个解法思路可否?
楼上高赞答案,把charles证书放(pin)进去。
3 个赞
SSL Pinning中的证书固定,tql
1 个赞
学到了
1 个赞
搞个FLEX 看一下网络请求数据不就好了
16.8
1 个赞
17.6也可以吗?这个TTNetworkManager 貌似没用到? 单利方法都没调用过。
这个TTNetworkManager是什么东西呀。我google一顿,也没找到解释
字节跳动自己写的网络请求类,网上查不到的
1 个赞
你有没有打印一下数组里item的类型?
嗯是的…
意识到了。
@class TTNetworkManager;
CHDeclareClass(TTNetworkManager)
CHOptimizedMethod1(self, void, TTNetworkManager, setServerCertificate, id, arg1){
NSString *resourcePath = [[NSBundle mainBundle] pathForResource:@"charles-ssl-proxying-certificate" ofType:@"cer"];
NSData *p12Data = [NSData dataWithContentsOfFile:resourcePath];
NSMutableArray *array = [(NSArray *)arg1 mutableCopy];
[array addObject:p12Data];
CHSuper1(TTNetworkManager, setServerCertificate, array);
}
CHConstructor{
CHLoadLateClass(TTNetworkManager);
CHHook1(TTNetworkManager, setServerCertificate);
}
两个注意点
- 直接代理是不行的,原理 我不是很清楚。之前看到过一篇文章说到过。我是用的 shadownsocks 做了一层代理
- 证书,,,直接加到 原有的数组里 就好了。(也是之前看到一篇文章说 ssl pin 会有 p12 文件,然后想当然的以为 sesssioncheck.bundle 里面的 p12 文件就是…)
5 个赞
DY可能又要多一波 DAU