Srinivas-Malapati/wlog-reverse-engineer
GitHub: Srinivas-Malapati/wlog-reverse-engineer
该任务要求 AI Agent 在仅有部分规范和样本的情况下逆向工程自定义二进制日志格式 WLOG v1,并实现精确的 Python 解析与序列化代码,用于评估模型的底层细节推理能力。
Stars: 0 | Forks: 0
# wlog-reverse-engineer
这是一个 Terminal-Bench 3 任务。Agent 必须根据部分规范、少量样本文件和一个黑盒验证器二进制文件,对 **WLOG v1** 二进制日志格式进行逆向工程,然后实现一个能与捆绑的参考实现互操作的 Python `parse` / `serialize` 对。
## 为什么这对当前模型来说很困难
前沿 LLM 会对常见格式(如 protobuf、CBOR、msgpack)进行模式匹配,表面上看起来是对的,但在字节级别的细节上却经常出错。规范故意对核心负载决策描述得不够详尽,因此 agent 必须仅通过样本和验证器来发现这些规则:
- **自定义的大端序 varint** —— 首先发送最高有效位的 7-bit 数据块,这与所有流行的 varint 编码方式正好相反。
- **单个文件中混合了字节序** —— 属性 `int64` 值是小端序的,但带时间戳事件的时间戳是大端序的。
- **CRC32 字节范围不明显** —— trailer 覆盖的是从 `Version` 到最后一个事件字节的区间,既不是整个文件,也不包含 trailer 本身。
- **保留的标志位和 `0xFF` tag 会被严格拒绝**,而不是被静默忽略。
- **`GROUP` 记录同时包含字节级别的 `PayloadLen` 和 `ChildCount`** —— 两者必须保持自身一致。
要求实现精确的往返转换(`parse(serialize(ast)) == ast` 在字节层面成立),这强制要求使用规范的 varint 编码和精确的字段排序。
## 布局
```
.
├── instruction.md # task prompt shown to the agent
├── task.toml # task metadata and verifier/agent/env config
├── environment/
│ ├── Dockerfile # agent container
│ └── data/
│ ├── SPEC.md # partial, deliberately ambiguous format spec
│ ├── samples/*.wlog # 4 visible sample files (varied shapes)
│ └── _validator_src/ # reference source compiled into the validator binary at build time
├── solution/
│ ├── solve.sh # oracle: installs the reference parser as the submission
│ └── wlog_ref.py # canonical reference parser/serializer
├── tests/
│ ├── Dockerfile # verifier container
│ ├── test.sh # verifier entrypoint
│ ├── test_wlog.py # pytest suite: parse / serialize / fuzz / bad-input
│ ├── wlog_ref.py # reference parser, baked into verifier image
│ └── fixtures/
│ ├── parse_samples/*.wlog # 40 hidden samples
│ ├── parse_asts/*.json # their reference ASTs
│ └── serialize_asts/*.json # 40 hidden ASTs for the serialize tests
└── _build/
└── generate_samples.py # regenerates all sample fixtures and syncs the reference
```
参考解析器出现在三个位置(`solution/`、`environment/data/_validator_src/`、`tests/`);`_build/generate_samples.py` 负责保持它们同步。
## 运行
将此目录放在 [Terminal-Bench 3](https://github.com/harbor-framework/terminal-bench-3) 检出的 `tasks/` 目录下,然后:
```
# 本地验证(无 API 花费)
for c in ci_checks/check-*.sh; do bash "$c" tasks/wlog-reverse-engineer; done
harbor run -p tasks/wlog-reverse-engineer --agent oracle # expect reward 1.0
harbor run -p tasks/wlog-reverse-engineer --agent nop # expect reward 0.0
# 真实 agent 试用(需要相关的 provider key)
harbor run -p tasks/wlog-reverse-engineer \
--agent claude-code -m anthropic/claude-opus-4-8 \
--ak reasoning_effort=max
```
要从头重新生成样本 fixtures:
```
python3 _build/generate_samples.py
```
## 验证状态
| 检查项 | 状态 |
|----------------------------|--------|
| 静态 CI 检查 (16/16) | 通过 |
| 实现-评分标准检查 | 11/11 通过 ([报告](analysis/rubric_check.json)) |
| Oracle agent | reward 1.0 |
| Nop agent | reward 0.0 |
| Docker 构建 (environment) | 通过 |
| Docker 构建 (verifier) | 通过 |
| 标准 `/run` × claude-code+opus-4-8 (low effort) | 3 次测试:1 次失败,reward 为 0.0,2 次合法解决,reward 为 1.0 |
| 标准 `/run` × claude-code+sonnet-4-6 (medium) 在强化设计上 | 1 次测试中 1 次失败 (reward 0.0) |
| 对抗性 `/cheat` × claude-code+opus-4-8 (low effort) | 3 次测试:2 次失败,reward 为 0.0,1 次合法解决 (非验证器漏洞利用) |
在 `reasoning_effort=low` 下的六次 opus 测试产生了 3 次失败 / 3 次解决的结果分化,将这个强化任务定性为 opus 在低努力下**处于可解决的边缘**,而不是绝对困难。计划的补救措施(激活保留的混淆标志,参见 [DESIGN.md](DESIGN.md) 决策日志第 14 行)已记录在 [RESULTS.md](RESULTS.md) 中。
完整的测试日志、每次测试的定性分析以及迭代历史:参见 [RESULTS.md](RESULTS.md)。设计原理、决策日志和威胁模型:参见 [DESIGN.md](DESIGN.md)。
## 复现此提交的结果
本地验证和实现-评分标准检查是确定性的;针对此 repo 运行它们将产生上述记录的相同结果。真实模型测试是非确定性的(LLM 采样)—— 再次运行它们将产生具有相同分布行为的测试,但不一定是相同的个体 reward。
```
# 将此目录放置在 Terminal-Bench 3 checkout 的 tasks/ 下
ln -s "$(pwd)" /path/to/terminal-bench-3/tasks/wlog-reverse-engineer
# 本地验证
for c in /path/to/terminal-bench-3/ci_checks/check-*.sh; do
bash "$c" /path/to/terminal-bench-3/tasks/wlog-reverse-engineer
done
harbor run -p tasks/wlog-reverse-engineer --agent oracle
harbor run -p tasks/wlog-reverse-engineer --agent nop
# Implementation-rubric 检查(需要 ANTHROPIC_API_KEY)
harbor check tasks/wlog-reverse-engineer -m anthropic/claude-opus-4-8
# 从已记录的 seeds 重新生成 fixtures
python3 _build/generate_samples.py
```
## 致谢
基于 [Harbor](https://github.com/laude-institute/harbor)
框架和
[Terminal-Bench 3](https://github.com/harbor-framework/terminal-bench-3)
贡献规范构建。
标签:LLM基准测试, Python, SOC Prime, 二进制解析, 云资产清单, 安全规则引擎, 开发工具, 无后门, 自动化评测, 请求拦截, 逆向工具, 逆向工程