gpt4 book ai didi

visual-studio - 如何从 windbg/dbgeng api 获取部分信息/偏移权限?

转载 作者:行者123 更新时间:2023-12-04 06:15:19 25 4
gpt4 key购买 nike

我正在为 Windbg 编写一个扩展,在某个特定点我需要获得内存偏移的权限,这很像 !address addr 在 Windbg 中提供的方式。我在此处查看了调试器引擎 API 的可用功能:

http://msdn.microsoft.com/en-us/library/windows/hardware/ff551059%28v=vs.85%29.aspx

但是我没能找到这样一个函数,它会根据内存偏移量返回部分/权限信息。基本上我想知道地址位于哪个部分,数据部分,文本部分等,它有什么权限等等。

我发现最接近的函数是 IDebugDataSpaces4 接口(interface)中的 GetOffsetInformation。但是根据文档,它没有提供我正在寻找的任何内容:

http://msdn.microsoft.com/en-us/library/windows/hardware/ff548055(v=vs.85).aspx

我总是可以运行 !address 命令并解析其输出,但我一直在寻找一种更简洁的方法,通过使用 API 可以直接获取此信息。

我错过了什么吗?是否有记录/未记录的方法可以实现这一目标?

最佳答案

QueryVirtual 不起作用吗?

#include <engextcpp.hpp>

class EXT_CLASS : public ExtExtension
{
public:
EXT_COMMAND_METHOD(getoffinfo);
};

EXT_DECLARE_GLOBALS();


EXT_COMMAND( getoffinfo, "", "{;e,d=0;getoffinfo;simulates !address <address>}" )

{
ULONG64 Offset = GetUnnamedArgU64(0);
if (Offset == 0)
{
Out( "usage !getoffinfo <address>\n");
}
else
{
MEMORY_BASIC_INFORMATION64 meminfo;
memset(&meminfo,0,sizeof(MEMORY_BASIC_INFORMATION64 ));
m_Data2->QueryVirtual(Offset,&meminfo);
Out("Allocation Base : %x\n",meminfo.AllocationBase);
Out("Base Address : %x\n",meminfo.BaseAddress);
Out("End Address : %x\n",meminfo.AllocationBase + meminfo.RegionSize);
Out("RegionSize : %x\n",meminfo.RegionSize);
Out("Type : %x\n",meminfo.Type);
Out("State : %x\n",meminfo.State);
}

}

结果如下

0:000> !address windbg
Usage: Image
Allocation Base: 01000000
Base Address: 01000000
End Address: 01001000
Region Size: 00001000
Type: 01000000 MEM_IMAGE
State: 00001000 MEM_COMMIT
Protect: 00000002 PAGE_READONLY
More info: lmv m windbg
More info: !lmi windbg
More info: ln 0x1000000

0:000> .load getoffinfo
0:000> !getoffinfo
usage !getoffinfo <address>
0:000> !getoffinfo windbg
Allocation Base : 1000000
Base Address : 1000000
End Address : 1001000
RegionSize : 1000
Type : 1000000
State : 1000

关于visual-studio - 如何从 windbg/dbgeng api 获取部分信息/偏移权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27416437/

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