type
status
date
slug
summary
tags
category
icon
password

问题描述

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

问题分析

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

临时修复

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