目录
今天更新了一个工具,通过JA4或JA4_RO查询与近似搜索工具,快速匹配最可能的客户端。这让我在面对未知指纹还有一点余力。
JA4 Query & Client Version Matching
示例
t13d1517h2_8daaf6152771_b0da82dd1658
SIMILARITY |
TYPE |
SYSTEM |
NAME/ENGINE |
VERSION |
1 |
browser |
* |
Blink |
95-133 |
|
|
|
|
…… |
t13d1716h2_1301,1303,1302,c02b,c02f,cca9,cca8,c02c,c030,c00a,c009,c013,c014,009c,009d,002f,0035_0000,0017,ff01,000a,000b,0023,0010,0005,0022,0033,002b,000d,002d,001c,001b,fe0d_0403,0503,0603,0804,0805,0806,0401,0501,0601,0203,0201
SIMILARITY |
TYPE |
SYSTEM |
NAME/ENGINE |
VERSION |
1 |
browser |
* |
Gecko |
132-133 |
ja4:t12d2809h2_d943125447b4_2a7cfaa15647
ja4_ro:t12d2809h2_c02c,c030,009f,cca9,cca8,ccaa,c02b,c02f,009e,c024,c028,006b,c023,c027,0067,c00a,c014,0039,c009,c013,0033,009d,009c,003d,003c,0035,002f,00ff_0000,000b,000a,0023,3374,0010,0016,0017,000d_0403,0503,0603,0807,0808,0809,080a,080b,0804,0805,0806,0401,0501,0601,0303,0203,0301,0201,0302,0202,0402,0502,0602
SIMILARITY |
TYPE |
SYSTEM |
NAME/ENGINE |
VERSION |
0.859375 |
library |
* |
curl |
7.58-7.58 |
样本大致的覆盖范围
-
浏览器
- nk 内核
Chrome、Edge、Oprea、Chromium、Yendix
- Gecko 内核
Firefox
- WebKit 内核
Safari
- Trident
IE、Edge(early)
- 部分奇怪的手机浏览器
-
开发语言和部分主流类库
- Golang
- Java
- PHP
- Node
- Python
- 等等
-
工具、命令行
-
主流爬虫(未录入)
优点
- 由于软件的更新具有传承性,相似算法可以匹配到相近版本。特别是新版本的更新出现的新指纹,精准匹配只能祈祷早点搜集到位。
- 对于只修改指纹部分信息的工具,同个相似算法依然可以将其与原版本相关联
- 样本由手动收集,保证准确性
缺点
- 基于自己收集的样本,返回结果不会超过样本范围
- 目前不会自动收集和更新数据库
必要说明
- ja4 的ja4_b 和 ja4_c 已经被hash了,几乎只有在精确匹配时才有效
- 对于部分浏览器UA并不会及时更新,比如夸克,这是版本信息只能能作为参考
- 对于iPhone的浏览器,除个特殊软件外,都与WebKit内核一致
TODO
- add JA3_str、JA4_o、ja4_r
- 常见的指纹
- 新增的指纹
- 增加主流爬虫信息
- 增加反馈按钮(或许可以直接在这个文章下留言)