如何设置所有异常行为以传递给应用程序并且不出现在调试器中?
我正在使用IDA Pro 6.6和WinDbg。
最佳答案
一次对所有异常类型执行此操作有点尴尬
.foreach(exc {sx}) {.catch{sxd ${exc}}}
它能做什么:
{sx}
:列出所有异常类型(以及您实际上不想要的当前设置)exc
:分配变量.foreach(...) {...}
:将其切成单个单词并执行命令sxd ${exc}
:禁用变量exc .catch{...}
:忽略来自设置信息上述方法的优点是它与WinDbg版本无关。如果引入了新的异常代码,它将仍然有效。
可以使用PyKd避免处理不需要的文本。将以下脚本保存到文件
sdx.py
中,然后运行!py sxd.py
:from pykd import *
sx = dbgCommand("sx")
for s in sx.splitlines():
ex = s[:4]
if not ex=="" or ex.isspace():
print("sxd "+ex)
dbgCommand("sxd "+ex)
另一种选择是手动处理所有异常:
.foreach(exc {.echo "ct et cpr epr ld ud ser ibp iml out av asrt aph bpe bpec eh clr clrn cce cc dm dbce gp ii ip dz iov ch hc lsq isc 3c svh sse ssec sbo sov vs vcpp wkd rto rtt wob wos *"}) {.catch{sxd ${exc}}}
但是,如果WinDbg中有新的异常代码,则必须将它们添加到
.echo
命令中。
关于WinDBG-如何设置所有要传递到应用程序的异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28306310/