Grinder是一个负载测试框架,通过Jython来编写测试脚本,基于HTTP的测试可以由浏览器来记录整个要测试的过程。Grinder是一个将测试脚本运行在多个机器上的框架。Grinder框架由三个process(或program)组成: worker processes, agent processes, 和console
每种process的职责如下:
Worker processes
解释Jython测试脚本,并启动worker线程进行测试
Agent processes
管理 worker processes
The console
协调其他的 processes
数据的收集,处理及显示
测试脚本的编辑及分发
grinder是一个自动化浏览器fuzz框架,其日志记录通过向被测浏览器进程注入grinder_logger.dll ,进而hook javascript函数parseFloat在jscript9.dll、mozjs.dll等脚本引擎中的实现函数,这样需要记录日志时只需调用parseFloat函数,日志记录功能由grinder_logger.dll中相应的hook回调函数完成。需要注意的是下载相应dll符号文件后才能完成hook操作,且最近版本的Firefox已不包含mozjs.dll导致hook函数失败。此日志记录方法稳定性、通用性欠佳。
监控模块( dbghelp.dll 、 symsrv.dll )负责启动、监控被测浏览器,记录其异常信息,完成fuzz自动化 。
重现模块( testcase.rb )根据日志重现POC。
具体fuzz操作需要用户自行完善。
显示全部