Skip to content

Latest commit

 

History

History
26 lines (20 loc) · 1.05 KB

README.md

File metadata and controls

26 lines (20 loc) · 1.05 KB

Bug Needle: 半自动化Bug注射器

可用于“一生一芯”在线调试考核的离线练习.

注意: 使用前尽可能保证ysyx-workbench中代码已经通过git commit提交, 否则你可能难以发现注入的bug.

使用流程:

  1. 执行以下命令注入bug
    YSYX_HOME=ysyx-workbench的路径 python needle.py
  2. 编译你的项目, 若编译报错, 跳转到最后一步
  3. 运行你的项目, 若运行成功, 跳转到最后一步
  4. 开始调试练习, 若调试成功, 本次练习通过, 结束本流程
  5. 在ysyx-workbench目录下执行git diff观察并手动移除注入的bug, 可跳转到第一步重新练习

可通过定义环境变量DEBUG来输出sed命令和注入的bug, 供调试本工具使用. 如

DEBUG=1 YSYX_HOME=ysyx-workbench的路径 python needle.py

半自动化的原因: 目前尚无法保证注入的bug可以通过编译, 也无法保证注入的bug可以使得程序运行出错, 故需要手动介入.

TODO:

  • 添加更多bug规则(欢迎大家贡献!)
  • 支持NPC和环境bug的注入