..
IDA Pro 9.0 Beta2 Local Windows Debugger Crash
问题描述
在使用 Local Windows Debugger 时,通过终止程序的方式结束调试会导致 IDA 发生 Crash.
问题分析
通过查看 dmp 文件,可以找到 Crash 发生的地方为 0x10B953
对 IDA Pro Crash 处进行调试发现,原因为 *(dbg + 0x38) 处的堆块已经被释放,*(*(dbg + 0x38) + rax)又被别的地方申请后设置成了 0,导致 rdx 取到的值为 0,进而导致 rdx - rbx + rbx 为 0,出现空指针异常,显然这是一个典型的 UAF 漏洞。
临时修复
在 free 函数下条件断点,发现 *(dbg + 0x38) 是在下图所示位置 free 的,在 win32_user64.dll
RVA: 0x3A1C,把此处 free 调用 NOP 掉即可修复。