type
Post
status
Published
date
Aug 15, 2024
summary
slug
tags
逆向工程
IDA Pro
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