type
status
date
slug
summary
tags
category
icon
password
问题描述
在使用 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 掉即可修复。
