如何克服 ollyDebugger 中的 setunhandledexceptionfilter?

逆向工程 ollydbg 二元分析 恶意软件 反调试 例外
2021-06-16 18:01:16

我正在调试一个setunhandledexceptionfilter()用于反调试的恶意软件样本我不知道如何处理这个。你们能解释一下setunhandledexceptionfilter()反调试技巧以及如何在olly调试器中克服它吗?

提前致谢。

1个回答

TL;DR:您应该在作为单个参数传递的地址处放置一个断点setunhandledexceptionfilter并忽略异常/将异常传递给程序。

更详细的解释

在这里你可以看到 的文档setunhandledexceptionfilter,如果你还没有阅读它可能会让你更清楚。

为了确保调用用户提供的函数(请参阅背景了解原因),您应该使用 olly 将异常传递给程序。但是,当您这样做时,恶意软件的其余代码将从未处理的异常函数中执行,您将失去对调试程序的控制。为确保您仍在控制执行流程,您应该在作为参数传递给 的函数处放置一个断点setunhandledexceptionfilter

一些背景和背景

setunhandledexceptionfilter用于将用户提供的函数设置为当异常未被任何异常处理程序处理时调用的函数,就在进程终止之前。在未处理的异常情况下,该函数应该负责对象清理和清理终止。

有几种方法可以setunhandledexceptionfilter用作反调试技巧,但大多数方法都涉及在新的未处理异常处理程序中实现程序的关键部分,然后从异常处理程序中恢复其余的代码执行。