Charles抓抖音的包为啥都是unKnow

有说啊 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一顿,也没找到解释 :joy:

字节跳动自己写的网络请求类,网上查不到的

1 个赞

:sweat_smile:
你有没有打印一下数组里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);
}

两个注意点

  1. 直接代理是不行的,原理 我不是很清楚。之前看到过一篇文章说到过。我是用的 shadownsocks 做了一层代理
  2. 证书,,,直接加到 原有的数组里 就好了。(也是之前看到一篇文章说 ssl pin 会有 p12 文件,然后想当然的以为 sesssioncheck.bundle 里面的 p12 文件就是…)
5 个赞

DY可能又要多一波 DAU :grinning: