跳到主要内容

心跳模拟

心跳模拟是 HeartbeatSocks 的核心功能页面,负责拦截并替换用户数据包中的心跳特征。页面包含 6 个配置选项卡:基础配置、心跳特征配置、二级代理、SNI 过滤、包过滤、包替换。

┌─────────────────────────────────────────────────────────────────────┐
│ 心跳模拟页面 │
├──────────┬──────────┬──────────┬──────────┬──────────┬──────────────┤
│ 基础配置 │心跳特征 │ 二级代理 │ SNI 过滤 │ 包过滤 │ 包替换 │
│ │ 配置 │ │ │ │ │
├──────────┴──────────┴──────────┴──────────┴──────────┴──────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ 当前选项卡内容区域 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
├─────────────────────────────────────────────────────────────────────┤
│ 底部数据包实时列表 │
│ ID │ 类型 │ 时间 │ 游戏ID │ 大小 │ 状态 │ 转发 │ 心跳 │ 数据预览 │
└─────────────────────────────────────────────────────────────────────┘

启动与停止

页面顶部控制栏提供:

  • 监听端口: 心跳模拟代理监听的本地端口,默认 1088。客户端需要将 SOCKS5 代理地址设为 127.0.0.1:1088
  • 启动服务 / 停止服务: 控制代理服务的运行

启动前请确保:

  • 数据池中有足够的心跳数据(建议 50 条以上)
  • 心跳特征已正确配置
  • 监听端口未被占用

选项卡一:基础配置

长度计算模式

模式说明
静态替换直接替换字节,不重新计算包长度
动态计算(推荐)替换后重新计算长度字段
推荐

绝大多数场景应使用「动态计算」模式,确保替换后的数据包长度正确。

数据池选择策略

策略说明
固定选择总是选第一个(调试用)
顺序选择依次轮换选择
随机选择(推荐)随机选取,行为最自然

62 特征支持

启用后额外支持 01 0A 00 62 特征(09 特征的互补特征)的处理。

高级偏移配置

展开可配置:

配置项说明
First Write Offset首次写入的偏移量
处理 00 开头 GameID是否对以 00 开头的 GameID 执行替换
处理 0B 结尾 GameID是否对以 0B 结尾的 GameID 执行替换

游戏类型过滤

启用后仅使用指定游戏类型的心跳数据进行替换:

  1. 勾选「使用游戏类型过滤」
  2. 从下拉列表选择目标游戏类型
  3. 游戏类型列表由「数据采集」页面管理

SOCKS5 认证

启用后,客户端连接代理时需要提供用户名和密码。认证配置在「账号管理」页面管理。

信息

认证设置为全局配置,同时影响采集代理和心跳模拟代理。


选项卡二:心跳特征配置

心跳特征是用于识别心跳包的字节模式规则,按列表顺序从上到下依次评估。

重要

心跳特征配置直接影响替换效果,错误配置可能导致游戏断开。请根据目标游戏选择合适的特征。

特征规则列表

每条规则包含以下字段:

字段说明
状态启用/禁用
规则名称自定义名称
主特征主要匹配的字节特征(如 01 0A 00 23
次要特征辅助匹配特征
备注说明信息

管理操作

  • 添加规则: 创建新的心跳特征规则
  • 编辑: 修改选中规则的配置
  • 删除: 移除选中的规则
  • 启用/禁用: 切换规则的生效状态
  • 上移/下移: 调整规则的匹配优先级(靠前的规则优先匹配)
  • 帮助: 查看心跳特征配置的详细说明

选项卡三:二级代理

支持将修改后的数据包转发到另一个 SOCKS5 代理,实现链式代理。

配置项

配置项说明
启用二级代理开启链式代理转发
代理地址下游 SOCKS5 代理的 IP 或域名
代理端口下游代理的端口号
代理用户名二级代理的认证用户名(如需)
代理密码二级代理的认证密码(如需)
转发修改的数据包是否将替换后的数据发送到二级代理

选项卡四:SNI 过滤

SNI(Server Name Indication)过滤通过分析 TLS 握手中的域名信息,精确控制哪些连接需要进行心跳处理。

启用 SNI 过滤

勾选「强制启用 SNI 过滤」后,仅匹配目标域名的连接才会执行伪心跳替换,其他连接直接透传。

预设域名库

左侧面板管理常用域名列表:

  • 添加域名: 输入域名后点击「添加」
  • 删除选中: 移除选中的域名
  • 清空全部: 清除所有预设域名

SNI 监听端口

右侧面板管理需要嗅探 SNI 信息的端口:

  • 手动添加: 输入端口号后点击「添加」
  • 快捷按钮: +443 / +8443 / +10012 一键添加常用端口
  • 移除: 删除选中的端口
  • 清空端口: 清除所有端口
提示

SNI 过滤可以有效减少不必要的数据包分析,提升代理性能。建议在明确目标游戏服务器域名时启用。

安全提示

启用 SNI 过滤可以有效防止替换规则被盗取。未启用时,任何通过代理的连接都会触发伪心跳替换逻辑,第三方可通过抓包分析替换模式来窃取你的规则配置。启用 SNI 过滤后,仅匹配目标域名的连接才会执行替换,其他连接直接透传,从而避免替换行为暴露。强烈建议在生产环境中始终启用 SNI 过滤。

工作原理

  1. 客户端通过代理发起 HTTPS 连接
  2. 代理截获 TLS ClientHello 报文
  3. 从 SNI 扩展字段提取目标域名
  4. 将域名与配置的目标域名比对
  5. 匹配则标记连接需要心跳处理,不匹配则直接透传

选项卡五:包过滤

包过滤(规则链模式)提供灵活的数据包过滤机制,在伪心跳替换前决定哪些数据包应该被处理。

启用与默认动作

  • 启用规则链: 开启包过滤功能
  • 默认动作: 当没有任何规则匹配时执行的动作
默认动作说明
Allow允许对该数据包执行伪心跳替换
LogOnly仅记录日志,不处理
Drop丢弃数据包,不转发
SkipReplace跳过替换,数据包原样转发

预设规则链

提供一键应用的预设规则链配置:

  • 三角洲行动(ACE 拦截 + 游戏放行): 针对三角洲行动的预设规则
  • 通用 ACE 过滤: 通用的 ACE 反作弊过滤规则

规则列表

每条规则包含以下字段:

字段说明
状态启用/禁用
规则名称自定义名称
动作匹配后的执行动作(Allow/LogOnly/Drop/SkipReplace)
逻辑多条件的逻辑关系(AND/OR)
条件数规则包含的匹配条件数量
命中次数运行时该规则被命中的次数
备注说明信息

管理操作

  • 添加规则: 创建新的过滤规则
  • 编辑: 修改选中规则的条件和动作
  • 删除: 移除选中的规则
  • 启用/禁用: 切换规则的生效状态
  • 上移/下移: 调整规则在链中的位置(靠前的规则优先匹配)
  • 重置统计: 清零所有规则的命中计数

规则评估逻辑

规则链按列表顺序从上到下依次评估。第一条匹配的规则决定最终动作。如果所有规则都不匹配,执行默认动作。

示例场景

仅替换特定端口的流量:

规则 1: 端口 = 443 → Allow
默认动作: SkipReplace

排除特定域名:

规则 1: 域名 = cdn.example.com → SkipReplace
规则 2: 域名 = static.example.com → SkipReplace
默认动作: Allow

选项卡六:包替换

除伪心跳替换外,还支持自定义的字节序列替换规则。

启用与配置

配置项说明
启用包替换开关
执行时机伪心跳之前执行 / 伪心跳之后执行 / 仅替换(跳过伪心跳)
遇到错误时继续执行单条规则失败不影响后续规则

替换规则列表

每条规则定义搜索和替换的字节序列:

  • 添加规则: 创建新的替换规则
  • 删除: 移除选中的规则
  • 上移/下移: 调整执行顺序

匹配模式

模式说明
任意位置在包中任意位置匹配
固定偏移在指定偏移量处匹配
范围匹配在指定字节范围内匹配
仅首次仅匹配第一次出现

底部数据包列表

运行时实时显示经过代理的数据包信息:

说明
ID数据包序号
类型包类型标记
时间收到时间
游戏ID从包中提取的 GameID
大小数据包字节大小
状态包完整性状态
转发转发处理结果
心跳伪心跳替换结果
数据预览数据包的十六进制预览

点击「清空列表」可清除当前显示的记录。