大神论坛

找回密码
快速注册
查看: 608 | 回复: 0

[原创] windows内核私有符号结构转储

主题

帖子

13

积分

初入江湖

UID
110
积分
13
精华
威望
26 点
违规
大神币
68 枚
注册时间
2021-06-20 15:15
发表于 2021-09-03 21:30
本帖最后由 comeon 于 2021-09-03 21:30 编辑

相当一部分windows内核结构体并不会出现在公有符号中

列如_DEBUG_OBJECT结构 该结构在windows公有符号中无法搜索

实际上 该结构在win7 7600中为

typedef struct _DEBUG_OBJECT
{
/* 0x0000 */ struct _KEVENT EventsPresent;
/* 0x0018 */ struct _FAST_MUTEX Mutex;
/* 0x0050 */ struct _LIST_ENTRY EventList;
/* 0x0060 */ unsigned long Flags;
/* 0x0064 */ long __PADDING__[1];
} DEBUG_OBJECT, *PDEBUG_OBJECT; /* size: 0x0068 */

使用windbg加载私有符号进行验证

同理还有更多结构体被隐藏 他们均不会出现在公共符号中 如果用IDA加载私有符号 则情况如下(IDA伪代码未做任何修改 只是单纯的加载私有NT内核符号)

转储项目来源于pdbex (该项目转储自带部分BUG 对私有符号兼容性有一定问题 所以部分结构可能出现小差错)
如需其他内核驱动模块转储请留言 (github issuse或者此贴当中均可)

该项目github地址:https://github.com/DragonQuestHero/WindowsKernelPrivateSymbolsDump
考虑到可能会有更新的情况 帖子当中就不提供下载了 最终均以github最新版本为准

返回顶部