在线验证的原理

一勺料汁
5
· 5 小时前
第 1 条补充
·
5 小时前

源码加密

回答

Hamibot AI
1
· 5 小时前

你提到的“在线验证”在Hamibot中主要用于订阅授权、设备绑定管理以及脚本市场权限校验。其核心原理如下:

  1. 凭证采集与签名:客户端在触发验证时,会收集设备唯一标识、账号授权凭证及当前时间戳。为保证数据完整性与防篡改,系统会使用安全哈希算法(如SHA-512)对关键参数进行签名计算,并加入随机数防止重放攻击。
  2. HTTPS云端校验:签名后的请求通过加密通道发送至Hamibot服务器。服务端验证签名有效性后,会核对账号订阅状态、设备绑定数量、脚本使用权限及黑名单策略。
  3. 令牌下发与本地缓存:验证通过后,服务器返回短期有效的授权令牌。客户端会将授权状态安全缓存至本地,后续脚本执行时优先读取缓存结果,避免频繁发起网络请求。若缓存过期或检测到环境变更,会自动触发静默重试。
  4. 容错与防作弊机制:验证过程采用异步非阻塞设计,不会卡顿自动化任务。同时内置设备指纹校验、请求频率限制与异常拦截策略,防止多设备共享授权或恶意刷接口。网络中断时,Hamibot会依赖本地有效缓存继续运行已授权任务,并在网络恢复后自动同步状态。

为保证在线验证稳定,建议你保持设备网络畅通,避免频繁恢复出厂设置、修改系统底层标识或使用多开工具。若你在特定场景(如企业版设备批量管理、脚本市场付费脚本授权)中遇到验证问题,可以说明具体现象,我会为你提供针对性的排查步骤。

ℹ️ 内容由 AI 生成,可能不准确,请注意核实
Hamibot AI
1
· 5 小时前

Hamibot 的脚本运行基于 Rhino JavaScript 引擎,该引擎在执行时必须解析明文源码,因此不支持直接对完整源码进行加密后运行。任何在本地执行的 JavaScript 脚本理论上都可被提取,源码保护的核心思路是提高逆向成本与隔离核心逻辑。你可以采用以下兼容 Hamibot 的最佳实践:

1. 敏感数据加密(内置 AES 模块)

脚本中的密钥、Token、接口地址或配置参数不应明文硬编码。你可以使用 Hamibot 内置的 aes 模块在发布前加密,运行时动态解密。

// 文档地址 https://docs.hamibot.com/
function aesEncrypt(text, key) {
  var iv = aes.generateIV();
  var encrypted = aes.encrypt(text, key, iv);
  return iv + encrypted;
}

function aesDecrypt(combined, key) {
  var iv = combined.substring(0, 16);
  var encrypted = combined.substring(16);
  return aes.decrypt(encrypted, key, iv);
}

// 使用示例
var key = 'mySecretKey12345';
// 此密文需提前通过 aesEncrypt 生成并替换到脚本中
var encryptedData = 'a1b2c3d4e5f6g7h8X9Y8Z7W6V5U4T3S2R1Q0P9O8N7M6L5K4J3I2H1G0F9E8D7C6B5A4';
var plainText = aesDecrypt(encryptedData, key);
log('解密结果:', plainText);

注意:Rhino 1.7.15 未完全兼容最新 JavaScript,代码中已避免使用箭头函数与默认参数,确保在 Hamibot 环境中稳定运行。

2. 代码混淆

在分发脚本前,使用 JavaScript 混淆工具(如 javascript-obfuscator)对源码进行处理。混淆会重命名变量、打乱控制流、编码字符串,生成仍为合法 JS 但难以阅读的脚本。Hamibot 可正常执行混淆后的代码。配置混淆工具时,请关闭 ES6+ 语法转换,并保留 requirelogaes 等 Hamibot 全局 API 不被压缩。

3. 核心逻辑云端化

将关键业务规则、风控策略或高价值算法部署至你的服务器。Hamibot 脚本仅作为客户端,通过 HTTPS 请求获取指令或处理结果。这是目前保护自动化脚本最彻底的方式,可完全避免本地源码泄露核心逻辑。

4. 结合授权机制

若用于商业分发,建议将脚本发布至 Hamibot 脚本市场或使用企业版设备管理。通过云端订阅校验与设备绑定,即使脚本文件被提取,未授权设备也无法通过在线验证,从而形成完整保护闭环。

关键提醒

  • 解密密钥切勿与密文同文件存放,建议通过用户输入、安全配置项或云端下发获取。
  • 本地运行的脚本无法做到绝对防破解,加密与混淆的目标是提升破解成本。
  • 保持网络畅通可确保授权校验与云端逻辑正常交互,避免因缓存过期导致任务中断。

如果你有具体的分发场景(如脚本市场上架、企业内部部署、防二次修改等),可以说明细节,我会为你提供针对性的配置步骤与架构建议。

ℹ️ 内容由 AI 生成,可能不准确,请注意核实