Skip to content

Releases: chainreactors/HaE

HaE with Proton Engine v20260704-f1a9f7d

Choose a tag to compare

@github-actions github-actions released this 04 Jul 13:17

HaE Burp extension with Proton regex engine.

HaE with Proton + Fingers Engine v20260704-ba7e7b6

Choose a tag to compare

@github-actions github-actions released this 04 Jul 07:59

HaE with Proton + Fingers Engine

HaE with Proton Engine v20260704-a7da871

Choose a tag to compare

@github-actions github-actions released this 04 Jul 13:13

HaE Burp extension with Proton regex engine.

HaE with Proton Engine v20260704-5b6b951

Choose a tag to compare

@github-actions github-actions released this 04 Jul 04:38

HaE with Proton Engine

集成 Proton 正则匹配引擎(RE2 + Aho-Corasick 预过滤),替代原版 Java NFA / dk.brics DFA 双引擎架构。

为什么替换两个 Java 引擎?

原版 HaE 维护两个正则引擎以应对不同场景:

Java NFA (java.util.regex) Java DFA (dk.brics.automaton) Proton (RE2)
捕获组支持 ❌ 仅全匹配
Format 提取 ({0}, {1})
ReDoS 安全 ❌ 恶意正则可卡死 ✅ 线性时间 ✅ 线性时间
性能 基准 更慢(automaton 编译开销) 比 NFA 快 4–25×

Proton 的 RE2 引擎兼顾所有优势 — 线性时间保证(无 ReDoS)+ 完整捕获组支持。DFA 引擎的唯一价值是防 ReDoS,RE2 天然解决了这个问题。Java NFA 仅作为极简回退(native 库无法加载时使用)。

性能对比:Java NFA vs Java DFA vs Proton Native

10 条规则(AWS Key、JWT、Email、内网 IP、Password、Private Key、Shiro、GitHub PAT、Swagger、JDBC),稀疏 HTTP 响应数据:

数据量 Java NFA Java DFA Proton NFA/Proton DFA/Proton
100 行 / 9KB 11.2ms 178ms 0.9ms 12.4× 198×
500 行 / 48KB 42.3ms 345ms 1.7ms 25.4× 207×
1000 行 / 96KB 39.3ms 262ms 2.2ms 17.5× 117×
5000 行 / 484KB 119ms 211ms 21.7ms 5.5× 9.7×
1 万行 / 968KB 188ms 220ms 44.2ms 4.2× 5.0×
10 万行 / 9.7MB 1883ms 582ms 354ms 5.3× 1.6×

注:10 万行时 DFA 反而比 NFA 快,因为 automaton 编译的固定开销被摊薄。但 Proton 仍然是三者中最快的。

下载

文件 说明
HaE.jar Fat JAR — 全平台(Linux/Windows/macOS),~24MB
HaE-linux-x86-64.jar 独立版 — Linux amd64,~7MB
HaE-linux-aarch64.jar 独立版 — Linux arm64,~7MB
HaE-win32-x86-64.jar 独立版 — Windows amd64,~7MB
HaE-darwin-x86-64.jar 独立版 — macOS Intel,~7MB
HaE-darwin-aarch64.jar 独立版 — macOS Apple Silicon,~6.5MB

架构

HaE Burp 插件 (Java)
  └── RegularMatcher
        ├── 主引擎:ProtonHaEEngine (JNA → libproton-hae native)
        │            ├── HaE 规则 JSON → proton template YAML(Java 侧转换)
        │            ├── Scope 路由(Java 侧)
        │            ├── s_regex 后过滤(Java 侧)
        │            └── proton Scanner:RE2 + AC 预过滤(Go native)
        └── 回退:Java NFA 正则(native 不可用时)

HaE with Proton + Fingers Engine v20260704-4020824

Choose a tag to compare

@github-actions github-actions released this 04 Jul 07:41

HaE with Proton + Fingers Engine