SuperAPI AI 工具集

yak

通用与其它

查看项目

更新于 10-16 01:48

技能介绍

用途:这是 yak-skills 知识库的总路由页。Yaklang 是面向安全研究与渗透测试的 DSL(文件后缀 .yak),其核心且易错机制是热加载(Hot Patch)。遇到 Yaklang、Yak 热加载或 Yakit 相关任务,先读本页选定专题,再下钻到对应 skill。

主要能力:提供路由表,按任务信号指向 yakit-basic、yakit-ui-binding、mitm-hotpatch、webfuzzer-hotpatch、global-hotpatch、yaklang-syntax、yaklang-database、yakit-native-plugin、yakit-rightclick-plugin、yaklang-toolchain、yakit-data-extract-plugin 等专题。

三层热加载体系:全局热加载作用于全系统所有 MITM/Fuzzer 流量且先执行,同时只启用 1 个;模块热加载分 MITM(当前 MITM 任务)与 Web Fuzzer(当前 Fuzzer Tab)。MITM 劫持类用 forward(pkt)/drop() 提交,Fuzzer 的 beforeRequest/afterRequest 用返回值提交;两者 mirrorHTTPFlow 签名不同。

使用方式:热加载脚本统一把 hook 注册为函数变量,并用 if YAK_MAIN { runSelfTest() } 守卫本地自测。yak 不会自动调用 func main(),入口应写 if YAK_MAIN { main() }。命令行运行(yak xxx.yak 或 go run common/yak/cmd/yak.go xxx.yak)时 YAK_MAIN=true,会跑自测;yakit 加载时 YAK_MAIN=false,只注册 hook,因此含自测块的脚本可安全粘回 yakit。测试推荐用源码引擎 go run common/yak/cmd/yak.go <path-to>.yak,或用已安装引擎 yak <path-to>.yak;合格标准为 10 秒内完成、assert 全通过、log 全英文、末尾出现 ... self test passed。

限制与约定:注释可用中文,但 log、字符串、payload 用英文;错误处理优先用 ~,关键结果用 assert;不使用 emoji;热加载 hook 会被并发调用,顶层只放只读常量,避免共享可变全局,需聚合用 sync.Map/sync.NewMutex() 或 db./risk.。具体各专题细节需进入对应 skill 查看。