目前在跑akamai中遇到一个网站 经常被403
尝试过很多东西 怀疑是ja3指纹的问题
在github搜索到有一些人编译的cronet
是chromium中的网络请求库抽离出来的动态库
官方的解释
Cronet是Chromium网络引擎对不同操作系统做的封装,
实现了移动端应用层、表示层、会话层协议,
支持HTTP1/2、SPDY、QUIC、WebSocket、FTP、DNS、TLS等协议标准。
支持Android、IOS、Chrome OS、Fuchsia,
部分支持Linux、MacOS、Windows桌面操作系统。
实现了Brotli数据压缩、预连接、DNS缓存、session复用等策略优化
以及TCP fast open等系统优化
优点
他内部支持完整的tls层 不需要依赖openssl 是完全和chrome浏览器一样的ja3指纹
可以降低被识别的可能性
编译
1. 拉代码
首先需要拉下来chromium的源码
我使用的是 22.04.1-Ubuntu x64 的linux 系统
chromium官方文档 看官方文档就好了
2. 生成编译文件
gn gen out/Cronet --args='is_debug=false'
is_debug=false 是release模式 都编译进一个so里
3. 开始编译
ninja -C out/Cronet/ cronet_package
如果不指定后面的cronet_package 就会编译chromium浏览器
大概四千多个文件 编译还是挺快的
4. 编译结果
5. 使用
很多语言都可以调用这个动态库
效果
这是chrome浏览器的
{
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36",
"ja3_hash": "49f70b3e88f1c16efb129287356f5d8f",
"ja3_text": "771,4865-4866-4867-49195-49199-49196-49200-52393-52392-49171-49172-156-157-47-53,27-5-10-13-35-18-65037-0-51-11-45-65281-16-17513-23-43,25497-29-23-24,0",
"ja3n_hash": "4c9ce26028c11d7544da00d3f7e4f45c",
"ja3n_text": "771,4865-4866-4867-49195-49199-49196-49200-52393-52392-49171-49172-156-157-47-53,0-5-10-11-13-16-18-23-27-35-43-45-51-17513-65037-65281,25497-29-23-24,0",
"akamai_hash": "1078ca4bfd193d5da4914b977eec979e",
"akamai_text": "1:65536;2:0;4:6291456;6:262144;64234:3439937096|15663105|0|m,a,s,p"
}
这是动态库请求的
{
"user_agent": "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Mobile Safari/537.36",
"ja3_hash": "18b44992750235fb3f1a5c1c23b3158e",
"ja3_text": "771,4865-4866-4867-49195-49199-49196-49200-52393-52392-49171-49172-156-157-47-53,5-45-17513-27-43-65037-13-65281-51-10-18-0-23-11-35-16,25497-29-23-24,0",
"ja3n_hash": "4c9ce26028c11d7544da00d3f7e4f45c",
"ja3n_text": "771,4865-4866-4867-49195-49199-49196-49200-52393-52392-49171-49172-156-157-47-53,0-5-10-11-13-16-18-23-27-35-43-45-51-17513-65037-65281,25497-29-23-24,0",
"akamai_hash": "52d84b11737d980aef856699f885ca86",
"akamai_text": "1:65536;2:0;4:6291456;6:262144|15663105|0|m,a,s,p"
}
JA3_hash 不一致是因为新的chrome会随机扩展顺序导致的
akamai 测试上面的站成功率从20%多提升到90%