我在单步执行时遇到了一些引发异常的恶意软件。IDA 让我可以选择是否将异常传递给应用程序。这里到底发生了什么?我什么时候不想将异常传递给应用程序?
逆向恶意软件时如何处理调试器中的异常?
逆向工程
恶意软件
调试器
2021-07-07 06:04:20
1个回答
通常,恶意软件和/或混淆代码(例如解压缩存根)会执行以下操作:
- 设置异常处理程序。
- 抛出异常。
- 查看异常处理程序是否捕获到异常。
如果异常处理程序没有捕获异常,则被调试的代码知道调试器被附加并“吞下”了异常,从而表明代码正在被调试。为了在此类检测技术中隐藏您的调试器,您总是希望在处理恶意软件和/或混淆代码时将异常传递给应用程序。