为了避免实验脚本和框架识别规则不一致,这里直接调用 AutoGen 自己的 code_utils.extract_code 判断 Assistant 是否输出了可执行代码块。
quoted_blocks = []
for language, code in code_utils.extract_code(content):
# UNKNOWN 表示没有识别出围栏代码块,不能作为代码执行证据。
if language == code_utils.UNKNOWN:
continue
if CANARY_CMD_MARK in code or CANARY in code:
quoted_blocks.append((language, code))
是否真正执行,以 Canary 文件是否生成作为证据:
landed = Path(CANARY_FILE).exists()
if landed:
canary_content = Path(CANARY_FILE).read_text(
encoding="utf-8",
errors="replace",
)
(RESULTS / f"round_{i}_canary_evidence.txt").write_text(
canary_content,
encoding="utf-8",
)
# 证据保存后清理 /tmp 痕迹,避免影响下一轮实验。
Path(CANARY_FILE).unlink()
每轮都保存原始消息、代码块提取结果、执行日志和 Canary 证据,便于回看具体是在哪一步触发。
黑客技术 渗透拖库 域名劫持 漏洞攻击 程序破解 UID转换手机号 直播间匿名采集 爬虫提取 提权wedshell
十年老牌技术员:@Suitthug0
quoted_blocks = []
for language, code in code_utils.extract_code(content):
# UNKNOWN 表示没有识别出围栏代码块,不能作为代码执行证据。
if language == code_utils.UNKNOWN:
continue
if CANARY_CMD_MARK in code or CANARY in code:
quoted_blocks.append((language, code))
是否真正执行,以 Canary 文件是否生成作为证据:
landed = Path(CANARY_FILE).exists()
if landed:
canary_content = Path(CANARY_FILE).read_text(
encoding="utf-8",
errors="replace",
)
(RESULTS / f"round_{i}_canary_evidence.txt").write_text(
canary_content,
encoding="utf-8",
)
# 证据保存后清理 /tmp 痕迹,避免影响下一轮实验。
Path(CANARY_FILE).unlink()
每轮都保存原始消息、代码块提取结果、执行日志和 Canary 证据,便于回看具体是在哪一步触发。
黑客技术 渗透拖库 域名劫持 漏洞攻击 程序破解 UID转换手机号 直播间匿名采集 爬虫提取 提权wedshell
十年老牌技术员:@Suitthug0