首页
社区
课程
招聘
[求助]请教ssdt还原问题 。
发表于: 2009-11-4 15:20 4132

[求助]请教ssdt还原问题 。

2009-11-4 15:20
4132
如何从ntoskrnl.exe或ntkrnlpa.exe中提取ssdt,看到网上一些代码直接从pe中获取,那么我可以直接用ue之类文件打开查看到ssdt吗?
我还试了一下手工加载,再取值,也没有取到。

HINSTANCE  h = LoadLibrary("ntoskrnl.exe");
printf("address = 0x%x\n",h);

void* p = (void *)GetProcAddress(h,"KeServiceDescriptorTable");
printf("0x%x\n",p);
printf("0x%x\n",*(DWORD *)p);

此处p有值,*p确为0。

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 170
活跃值: (90)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
2
先取得SSDT的 RVA,然后再定位到PE区块表,搜索找到SSDT RVA所在的区块的RVA和Raw
sssdt RVA- (区块RVA-Raw)就得到了ssdt 文件偏移,然后用ReadFile读取就得到了SSDT函数的文件偏移,在重定位后就得到了原始地址
函数的文件偏移+内核文件基址-0x00400000就是SSDT函数的原始地址了
2009-11-4 16:56
0
游客
登录 | 注册 方可回帖
返回
//