将敏感 API 调用从 shellcode 代理到 artifact,以生成兼容 CET 的干净调用栈。
配套博客文章的 PoC:Stop Being Weird — Life After Call Stack Spoofing Under CET。
MinGW 无法设置 CET 兼容标志,因此你需要使用 llvm-mingw 来构建支持 CET 的版本。
默认使用 ./payload/testDll.c 作为载荷进行构建,该载荷会调用 LoadLibraryA 和 Sleep,方便你检查调用栈。
./tcg/dist/ 目录放入 ./tcg/distmake pocrawDll.cna,并通过 Payloads->Stageless Payload Generator 生成载荷./bin/payload.dllmake cs