..

IDA Pro 9.0 Beta2 Local Windows Debugger Crash

问题描述

在使用 Local Windows Debugger 时,通过终止程序的方式结束调试会导致 IDA 发生 Crash.

问题分析

通过查看 dmp 文件,可以找到 Crash 发生的地方为 0x10B953

image-20240815203808698

对 IDA Pro Crash 处进行调试发现,原因为 *(dbg + 0x38) 处的堆块已经被释放,*(*(dbg + 0x38) + rax)又被别的地方申请后设置成了 0,导致 rdx 取到的值为 0,进而导致 rdx - rbx + rbx 为 0,出现空指针异常,显然这是一个典型的 UAF 漏洞。

image-20240815204349563

临时修复

在 free 函数下条件断点,发现 *(dbg + 0x38) 是在下图所示位置 free 的,在 win32_user64.dll RVA: 0x3A1C,把此处 free 调用 NOP 掉即可修复。

image-20240815210322725