1

我正在运行 Sulley 模糊测试工具,它使用 pydbg 来调试目标进程。pydbg 线程在 Sulley 环境的 process_monitor.py 模块中生成。我的问题是,当一个测试用例(畸形数据包)导致进程崩溃时,调试器线程继续运行,下面的测试用例触发访问冲突。,然后发送到会话模块说错误的数据包,第二个测试用例导致访问冲突。我正在尝试从 pydbg 打印日志信息以准确调试正在发生的事情,但我所做的一切似乎都不起作用。显然,由于这是一个没有控制台可打印的线程,所以我尝试了许多不同的写入文件的方法。即使是非常直接的 logFile = open('C:\sulley_build\sulley\logFile.txt', 'w') logFile.write("test" ) 不会在该位置创建文件。我知道 pydbg 线程已生成,但即使将该代码放入 _init__ 函数中也无济于事。帮助?

4

1 回答 1

1

自从我使用过程监视器已经有一段时间了,但这是我的建议:

  1. Sulley 在我使用它时有几个 procmon 错误。我在这里提交了两个补丁:

    这些错误修复可能与您的问题有关(很难用 Sulley 的架构来判断)。我会试一试。修复程序已经应用在我的 fork上,或者您可以在自己的 fork 中手动应用它们。

  2. 听起来 procmon 没有正确报告崩溃。我清楚地记得这个问题,但不记得上面提到的修复是否解决了它。如果您确实尝试使其正常工作,则关键方法是ProcessMonitorPedrpcServer.post_send.

  3. 如果您想报告更多崩溃详细信息,请尝试将它们写入self.last_synopsis. 见ProcessMonitorPedrpcServer.get_crash_synopsis

快乐的模糊!

于 2016-03-08T01:21:47.997 回答