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, 二进制解析, 云资产清单, 安全规则引擎, 开发工具, 无后门, 自动化评测, 请求拦截, 逆向工具, 逆向工程