借鉴反作弊工具,我写了一个检测AI的AAE

86 阅读6分钟

家人们谁懂啊!被一款反作弊工具的架构惊艳(并非)到连夜“抄作业”,花了一天时间肝出个编程场景专属的AI检测工具——AAE-Anti AI Engine,主打一个“进程+代码”双重暴击,让藏在代码里的AI痕迹无所遁形~ 今天就来聊聊这个“技术借鉴”的工具是怎么诞生的!

一、突发奇想~

作为常年混迹编程圈的“搞事开发者”,最近被AI搞得有点崩溃:

  • 帮朋友改代码,越看越不对劲——注释工整到离谱,命名又怪又规范,追问之下才承认是Copilot写的,关键还藏了个隐形bug;
  • 公司招实习生,收到的代码作业堪称“完美”,结果面试时让他解释逻辑,支支吾吾说不出个所以然,后来才发现是Claude生成的;
  • 自己用AI辅助写代码,改着改着就忘了哪部分是AI写的,调试时对着陌生的代码结构怀疑人生。

本来想直接用现成的工具,结果翻了一圈发现:要么只能检测代码,没法判断是不是实时用AI工具写的;要么功能太复杂,普通开发者用着费劲。刚好之前研究过一款反作弊工具的架构,那套“进程扫描+特征匹配”的思路简直绝了,干脆照着这个框架,针对性做个编程场景的AI检测工具——AAE就这么提上了日程!

二、show me your code!

说干就干,翻出之前研究反作弊工具时记的笔记连夜琢磨,核心思路直接借鉴:进程扫描+特征检测,但细节上全是编程场景的定制化改造,毕竟反作弊和反AI编程,需求还是差挺大的~

先放张反作弊工具的通用架构图,方便大家理解我“抄作业”的核心(主打一个直观,看不懂也没关系,知道它牛就完事儿):

graph LR
    A[反作弊工具通用架构] --> B[进程监控模块]  
    A --> C[特征提取模块]  
    A --> D[风险研判模块]  
    A --> E[异常预警模块]  
    B --> B1[实时进程扫描]  
    B --> B2[隐藏进程检测]  
    B --> B3[进程指纹库]  
    C --> C1[违规特征库]  
    C --> C2[实时特征匹配]  
    C --> C3[异常行为捕捉]  
    D --> D1[多维度校验]  
    D --> D2[风险等级判定]  
    D --> D3[日志记录]  
    D --> E

简单唠两句:反作弊工具的核心就是“盯进程+抓特征”,先监控所有运行进程,再提取违规软件的特征比对,最后判定风险,这套逻辑被我直接拿过来,改成了AI编程检测版👇

这是我肝一天搞出来的AAE架构图,对比着看,是不是借鉴得很明显但又有点不一样?

graph LR
    F[AAE-Anti AI Engine架构] --> G[AI进程扫描模块]  
    F --> H[代码特征检测模块]  
    F --> I[综合研判模块]  
    F --> J[报告导出模块]  
    G --> G1[实时进程扫描]  
    G --> G2[隐藏进程检测]  
    G --> G3["AI编程工具指纹库(Cursor/Copilot等)"]  
    H --> H1["代码特征提取(注释/命名/结构)"]  
    H --> H2["多语言适配(Python/Java等)"]  
    H --> H3[AI代码特征库]  
    I --> I1["双重校验(进程+代码)"]  
    I --> I2["傻瓜式风险判定(高/疑似/低)"]  
    I --> I3[研判日志]  
    I --> J  
    J --> J1[JSON报告导出]  
    J --> J2[可视化展示]

重点差异:把反作弊工具的“违规软件”相关模块,全换成了AI编程工具和AI代码特征,还加了报告导出、多语言适配,毕竟咱是编程场景专属,得比反作弊工具更懂开发者~

1. 进程扫描:保守点,先扫进程吧

ACE的进程扫描是用来抓作弊软件的,我直接改成了“AI编程工具雷达”,把市面上主流的AI编程工具全收录进指纹库:

  • Cursor、Claude、Codex这些AI IDE搞里头;
  • GitHub Copilot、Tabnine这种IDE插件也搞里头;
  • 运行工具时自动扫描系统进程,一旦检测到这些工具在运行,直接标记“AI辅助风险”。

最有意思的是,为了抓那些“偷偷运行”的工具和插件,还特意做了进程隐藏检测——毕竟总有人以为关掉窗口就万事大吉,殊不知AI进程还在后台“打工”=)程序员的幽默—— 10 个最佳编译梗- Incredibuild转存失败,建议直接上传图片文件

2. 代码检测:对付粘贴的AI代码

这部分是重点改造的地方,反作弊工具的特征匹配太硬核,我简化成了编程小白也能看懂的逻辑,核心抓AI代码的三个“破绽”:

  • 注释率异常:AI写的代码注释往往又多又全,甚至有点“废话连篇”,注释率远超人工编写的正常范围;
  • 命名熵异常:AI喜欢用冗长但规范的变量名,比如“userInformationProcessingModule”,人类很少这么跟自己过不去;
  • 结构指纹:AI生成的代码结构有固定套路,比如try-catch的写法、函数嵌套的逻辑,提取这些特征就能快速匹配。

比如我们扫描下本项目,会发现本项目也AI含量挺大的哈哈~

4faaaca0-cdaa-444b-af6a-fe2cbe5b6fdf

3. 综合研判+报告导出:把复杂的结果变简单

反作弊工具的报告太专业,普通人看不太懂,AAE直接做了“傻瓜式判定”:

  • 进程扫描检测到AI工具+代码特征匹配→判定“高概率AI辅助编程”;
  • 仅进程扫描检测到AI工具→判定“疑似AI辅助编程”;
  • 仅代码特征匹配→判定“疑似AI生成代码”;
  • 两者都没检测到→判定“低概率AI参与”。

还支持JSON格式报告导出,不管是自己存档,还是公司HR、面试官用来核验,都方便得很。

三、使用教程

工具做出来后,特意简化了操作流程,不用复杂配置,下载就能用(windows也有傻瓜式的exe文件,可以在仓库打包中查看):

1. 安装依赖

cd aae
pip install -r requirements.txt

2. 运行工具

  • 直接运行Python脚本:

    • python main.py
  • 打包成Windows可执行文件(适合不懂代码的小白):

    • pip install pyinstaller pyinstaller build.spec
    • 打包完成后,直接双击dist/AAE-Anti-AI-Engine.exe就能用,图形界面一目了然,不用记任何命令。

3. 开始检测

  • 实时检测:打开工具后保持运行,自动扫描进程,写完代码后点击“检测当前项目”,秒出结果;
  • 离线检测:把要检测的代码文件拖进工具,不用运行AI工具也能判断是否为AI生成。

四、目前支持的功能&未来计划

已支持功能(主打一个实用)

  • 进程扫描:覆盖10+主流AI编程工具;
  • 代码检测:基于3类核心特征,支持Python、Java、JavaScript等主流语言;尝试接入hugging face的模型,但是效果不是很理想
  • 综合研判:直观输出风险等级,小白也能看懂;
  • 报告导出:JSON格式,方便二次处理。

未来要填的坑(欢迎大家提PR)

  • 增加更多编程语言支持,目前主要覆盖后端语言,前端和移动端还在适配;
  • 优化AI工具指纹库,争取做到实时更新,不让新出的AI工具“漏网”;
  • 增加代码相似度对比,判断是否来自同一AI模型生成;
  • 做个VS Code插件,直接在IDE里实时检测,不用来回切换工具。

五、最后

GitHub仓库地址github.com/shiker1996/…

最后来个灵魂拷问:你用AI写代码会主动说明吗?有没有被AI代码坑过的经历?评论区聊聊~ images-1770548251937-11