PoC确实有效吗? (例如,没有在函数A中检查参数...等等);我需要知道这一点,因为我必须联系供应商以修复漏洞。我该怎么做(我在XP中进行分析)。
运行PoC
在出现异常时查看调用堆栈->遵循它们
检查是否SEH已损坏->在损坏的SEH上设置断点以查找溢出堆栈的指令
通过玩耍,我可以找到触发漏洞的汇编指令。但是,很难一直追溯到根本原因。溢出的汇编指令通常在库中,但vuln不是库,而是恶意地将用户程序称为库的用户程序吗?
我不知道我的意思是否清楚,但是需要一些技巧来进行这种逆向工程。
#1 楼
首先,您的平台非常重要(我的操作系统是Windows)在Windows中WinDbg +
!exploitable
是快速分析选项之一。它在这里WinDbg +
!analyze
确定错误的标准名称... 这是默认的WinDbg扩展名。找出根本原因。
评论
我将使用内存/硬件断点,或在缓冲区值中寻找重复模式,以追溯到根本问题。顺便说一下,您在POC代码中看到了如何输入值,因此您应该能够确定从中查找的位置。谢谢回复。我应该澄清一件事,POC是一个文档文件(例如.doc文件),因此没有输入值的代码:(我只是在查看器中打开它
不要以为有效的漏洞利用总是会引发异常:)