我正在运行 Sulley 模糊测试工具,它使用 pydbg 来调试目标进程。pydbg 线程在 Sulley 环境的 process_monitor.py 模块中生成。我的问题是,当一个测试用例(畸形数据包)导致进程崩溃时,调试器线程继续运行,下面的测试用例触发访问冲突。,然后发送到会话模块说错误的数据包,第二个测试用例导致访问冲突。我正在尝试从 pydbg 打印日志信息以准确调试正在发生的事情,但我所做的一切似乎都不起作用。显然,由于这是一个没有控制台可打印的线程,所以我尝试了许多不同的写入文件的方法。即使是非常直接的 logFile = open('C:\sulley_build\sulley\logFile.txt', 'w') logFile.write("test" ) 不会在该位置创建文件。我知道 pydbg 线程已生成,但即使将该代码放入 _init__ 函数中也无济于事。帮助?
问问题
138 次
1 回答
1
自从我使用过程监视器已经有一段时间了,但这是我的建议:
Sulley 在我使用它时有几个 procmon 错误。我在这里提交了两个补丁:
这些错误修复可能与您的问题有关(很难用 Sulley 的架构来判断)。我会试一试。修复程序已经应用在我的 fork上,或者您可以在自己的 fork 中手动应用它们。
听起来 procmon 没有正确报告崩溃。我清楚地记得这个问题,但不记得上面提到的修复是否解决了它。如果您确实尝试使其正常工作,则关键方法是
ProcessMonitorPedrpcServer.post_send
.如果您想报告更多崩溃详细信息,请尝试将它们写入
self.last_synopsis
. 见ProcessMonitorPedrpcServer.get_crash_synopsis
。
快乐的模糊!
于 2016-03-08T01:21:47.997 回答