用途:写完热加载或 codec 插件后,验证其改写逻辑是否正确。提供两种路径:YAK_MAIN 自测块与四个 yak 验证命令(走与 Yakit 同款 gRPC 执行路径)。
主要能力:用源码引擎跑脚本;用 hotpatch-mitm 验证 MITM 热加载(打印原始/改写请求、drop 状态、入库 tag),hotpatch-global 额外驱动 beforeRequest/afterRequest,hotpatch-webfuzzer 验证 Web Fuzzer 的 beforeRequest/afterRequest/retryHandler/customFailureChecker 与 {{yak(...)}} fuzztag,codec-plugin 执行 handle(input);可反查 Hook 签名与调试 MITM。
用法:go run common/yak/cmd/yak.go path/to/script.yak 或 go build -o /tmp/yak ./common/yak/cmd/yak.go 后运行;验证命令示例:yak hotpatch-mitm --script x.yak --request /tmp/req.txt [--response /tmp/rsp.txt] [--https] [--url URL];yak hotpatch-webfuzzer --script x.yak --request /tmp/req.txt --fuzztag '{{yak(hash|md5,hello)}}';yak codec-plugin --script x.yak --input "Hello, Yak!" 或 --input-file。合格标准为 10 秒内完成、assert 通过、日志全英文、出现 self test passed。
适用场景:MITM/全局/Web Fuzzer 热加载与右键 codec 插件编写后的自测;复现问题时保存请求到文件单步调试。
限制:命令需用 yaklang 仓库构建的引擎;响应验证需提供响应文件;Hook 语义以源码为准。