gpt4 book ai didi

c++ - 从 EXCEPTION_RECORD 获取信息

转载 作者:行者123 更新时间:2023-11-30 02:07:18 31 4
gpt4 key购买 nike

如果我发现了 SEH 的访问冲突,我该如何获取冲突地址? GetExceptionInformation给我LPEXCEPTION_POINTERS包含

  • ExceptionRecord - 指向 EXCEPTION_RECORD 结构的指针包含与机器无关的异常描述。
  • ContextRecord - 指向 CONTEXT 结构的指针,该结构包含异常发生时处理器状态的特定于处理器的描述。

如何在不编写转储的情况下获取此信息?

最佳答案

内存地址以及操作类型包含在 ExceptionRecord 结构中的 ExceptionInformation 字段中。来自 MSDN :

异常信息
描述异常的附加参数数组。 RaiseException 函数可以指定这个参数数组。对于大多数异常代码,数组元素是未定义的。下表描述了定义了数组元素的异常代码。

异常代码含义
EXCEPTION_ACCESS_VIOLATION
数组的第一个元素 包含一个读写标志,指示导致访问冲突的操作类型。如果此值为零,则线程试图读取不可访问的数据。如果此值为 1,则线程试图写入不可访问的地址。如果此值为 8,则线程会导致用户模式数据执行保护 (DEP) 冲突。

第二个数组元素指定不可访问数据的虚拟地址。

关于c++ - 从 EXCEPTION_RECORD 获取信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8012598/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com