全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 659|回复: 8

[经验] 抱歉打扰了,继续加强希望达到实用级别再来

[复制链接]
发表于 昨天 18:12 | 显示全部楼层 |阅读模式
本帖最后由 mimiphp 于 2026-2-16 19:57 编辑

抱歉打扰了,继续加强希望达到实用级别再来
发表于 昨天 19:26 | 显示全部楼层
本帖最后由 MasterCard 于 2026-2-16 19:44 编辑

直接AI还原效果不够好 我让AI花10秒生成了个babel插件简单处理了下 下面是chatgpt生成的分析报告

下面是去混淆 + 重命名 + 结构整理后的可读版本。逻辑没有改变,只是把变量名还原为有意义的名称,并修复了乱码文本。

✅ 还原后的可读版本
超出loc字数限制了
https://pastebin.com/PzwyyuwR

这套代码目前实现更偏向教学级行为验证示例,在对抗真实自动化环境方面缺少完整性校验、环境一致性检测以及 challenge 绑定机制。如果要用于生产,需要补充环境篡改检测、深度 WebDriver 识别以及 PoW 防重放机制。
一、核心问题分析
1️⃣ 所有逻辑完全可重放
当前逻辑:
risk 计算在前端
pow 在前端
tapProof 在前端
所有字段可篡改
2️⃣ 风险模型太线性
当前 risk 算法:
risk = 基础值
      - eventScore * 0.4
      - entropy * 0.15
      - distance * 0.1
      - time * 某比例
      + webdriver * 0.35

问题:
权重固定
可预测
无随机扰动
无多维统计特征
攻击者只需:
模拟鼠标移动
加长时间
控制轨迹
即可把 risk 压到 0.1 以下。
这是典型“静态阈值模型”。
3️⃣ PoW 只是 CPU 限速,不是安全机制
PoW:
无 salt 绑定 IP
无服务器签名
prefix 可预测
可并行
可预计算
而且:
nonce = counter.toString(36)

太简单。
真正的防重放 PoW 需要:
服务器下发 challenge
challenge 内含签名
包含过期时间
包含客户端指纹
否则可直接离线算好。
4️⃣ 完全没有环境完整性检测
这是最明显的缺失。
没有:
原型链污染检测
Function.prototype.toString native 校验
WebDriver 深度检测
headless 特征检测
canvas / audio 指纹
stack trace 检测
DevTools hook 检测
VM 执行环境检测
debugger trap
现在的检测级别是:
navigator.webdriver

这在 2026 年属于玩具级检测。
二、可以给出的专业改进建议
下面这些是“真正 anti-bot 级别”的方向。
1️⃣ 原型链完整性校验
检测是否被 Hook:
function isNative(fn) {
  return /\{\s*\[native code\]\s*\}/.test(Function.prototype.toString.call(fn));
}
const checks = [
  isNative(window.fetch),
  isNative(JSON.stringify),
  isNative(Object.getOwnPropertyDescriptor),
  isNative(Element.prototype.appendChild),
];

攻击者常用:
重写 fetch
重写 addEventListener
注入 Proxy
可以增加:
Object.getPrototypeOf(fetch) === Function.prototype
2️⃣ 深层 WebDriver 检测
不只是:
navigator.webdriver

还可以:
'chrome' in window
navigator.plugins.length
navigator.languages
permissions.query({name:'notifications'})

检测:
Headless Chrome
Playwright
Puppeteer
Selenium
CDP 注入
3️⃣ Stack Trace 检测
自动化环境常见 stack:
try {
  null.f();
} catch (e) {
  console.log(e.stack);
}

查找:
puppeteer
playwright
selenium
puppeteer_evaluation_script
at evaluate
4️⃣ 时间抖动检测
自动化通常:
事件间隔极稳定
执行极线性
可以做:
const deltas = [];
// 统计间隔标准差

检测:
是否符合人类随机性
5️⃣ 真正的 PoW 设计建议
改为:
服务器返回:
{
  challenge: "...",
  expires: 123456,
  sig: HMAC(challenge, serverSecret)
}

客户端算:
sha256(challenge + nonce)

服务器验证:
签名是否正确
是否过期
是否重复
否则现在这个 PoW 可以被重放。
6️⃣ VM / DevTools 检测
可以加入:
debugger timing trap
const t = performance.now();
debugger;
if (performance.now() - t > 100) suspicious++;
Console hook 检测
const original = console.log;
console.log = function(){};
if (!isNative(original)) suspicious++;
7️⃣ VM 混淆建议
当前代码:
完全可读
结构明显
没有自校验
可以加入:
字符串数组动态解码
控制流平坦化
死代码混淆
runtime integrity hash
自毁机制
例如:
if (sha256Hex(sourceCode) !== expected) {
  throw new Error("tampered");
}
8️⃣ 行为模型升级建议
可以加入:
曲率统计
轨迹方向变化率
鼠标加速度
scroll inertia
点击前 hover 时间
键盘节奏统计
现在的:
distance + entropy
太基础。


总结

这套代码的问题:

维度        等级
行为采集        入门级
风险模型        线性可预测
PoW        可重放
环境检测        几乎没有
抗自动化        极弱
抗 hook        无

如果你愿意,我可以帮你写一份:

✅ 进阶版 anti-bot 结构设计图
✅ 带完整性检测的强化版客户端框架
✅ 生产级 challenge + PoW 协议设计
发表于 昨天 19:48 | 显示全部楼层
另外需要各种破盾协议的老板看我签名
 楼主| 发表于 昨天 20:12 | 显示全部楼层
MasterCard 发表于 2026-2-16 19:48
另外需要各种破盾协议的老板看我签名

再重构中,没事的,我已经找到AI代理模式。。我自己慢慢跟它攻防耗下去
发表于 昨天 20:19 | 显示全部楼层
本帖最后由 MasterCard 于 2026-2-16 20:22 编辑
mimiphp 发表于 2026-2-16 20:12
再重构中,没事的,我已经找到AI代理模式。。我自己慢慢跟它攻防耗下去


我卖了一年多最难的几个盾的破盾协议,可以告诉你antibot难点从来不在检测,难点在收集足够多高质量用户数据,设计风控模型
浏览器检测点就那么多,多花点时间小学生都能补出来
 楼主| 发表于 昨天 20:27 | 显示全部楼层
MasterCard 发表于 2026-2-16 20:19
我卖了一年多最难的几个盾的破盾协议,可以告诉你antibot难点从来不在检测,难点在收集足够多高质量用户 ...


所以本来设计就是动态的,本意是如果判断就是真人,尽量无感。但已经在nodeseek 讨论很多了,争议很大,但方向是好的。新年快乐。我主要是一开始测试不够充分,没想到chatgpt的agent模式这么强大。至于你说的风控,你觉得我一开始弄达到人家CF级别吗?肯定做不到的。但传统图片验证码 AI已经百分百通过,你可以用豆包试一下就知道。。。复杂验证码体验感实在太差,特别是谷歌那个。。。所以如果是正常合理的氛围讨论,没什么大不了的。就是不要嘲讽,目前总是有些人觉得自己天下无敌,我都不敢去v2ex发帖,你懂的。。。。

我在重构中,目的很明确,但确实还差很远。暂时不急着发布
发表于 昨天 20:33 | 显示全部楼层
https://github.com/pysunday/sdenv-jsdom
我用这个补环境(执行并拦截fetch发送给PY)+TLS指纹伪造(py实现发送), 能过大部分自动验证的WAF.

那个需要拖和点的需要逆向或者找打码平台都90% WAF都能过. 不能过那些经测试是对IP有高要求.请求多了后整个IP段会被拉入黑名单.
 楼主| 发表于 昨天 20:36 | 显示全部楼层
奧巴马 发表于 2026-2-16 20:33
https://github.com/pysunday/sdenv-jsdom
我用这个补环境(执行并拦截fetch发送给PY)+TLS指纹伪造(py实现 ...

可以,我慢慢研究,多谢指导
 楼主| 发表于 昨天 20:49 | 显示全部楼层
MasterCard 发表于 2026-2-16 20:19
我卖了一年多最难的几个盾的破盾协议,可以告诉你antibot难点从来不在检测,难点在收集足够多高质量用户 ...

找到一个关键点:passkey。感兴趣可以互相讨论
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2026-2-17 01:59 , Processed in 0.059627 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表