首页
社区
课程
招聘
[求助]ring0下如何修改ssdt中的代码遇到的内存保护问题
发表于: 2008-1-27 22:59 6603

[求助]ring0下如何修改ssdt中的代码遇到的内存保护问题

2008-1-27 22:59
6603
最近刚开始学习ring 0,在众多前辈的范例的帮助下,终于看到了仰慕以求得SSDT和Shadow SSDT了。
不过马上遇到了新问题,就是我想对一个系统服务函数做HOOK.一种方法是修改SSDT表中的入口地址。不过我想用传统的替换前面5个字节代码的jmp的方式。但就遇到问题了,一对内存作修改马上就是蓝屏。后来我有测试了一下通过keattach到另外一个进程,修改这个进程的OEP处的代码,也会有同样的问题。

看了半天的Widows Drivers Develepment Kit的帮助,也没有发现ring0下类似virtualprotectex的api函数(呵呵,惭愧,在ring0下总念念不忘ring3下的函数),后来通过goolge查了说有什么undocumented 的 Navti api函数ZwProtectVirtualMemory,系统服务函数NtProtectVirtualMemory,MiProtectVirtualMemory,但声明后都无法无法链接,说这个函数是找不到的。各位前辈,是否有类似的例子程序可以给我一个?

多谢了。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
2
cli
mov eax, cr0
and eax, not 10000h
mov cr0, eax
2008-1-27 23:48
0
雪    币: 66
活跃值: (16)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
3
同#2  用完之后记得改回去
2008-1-28 00:43
0
雪    币: 709
活跃值: (2420)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
4

// 写保护的开&关
void WPOFF()
{
__asm { //去掉内存保护
cli
mov eax,cr0
and eax,not 10000h
mov cr0,eax
}
}

void WPON()
{
__asm { //恢复内存保护
mov eax,cr0
or eax,10000h
mov cr0,eax
sti
}
}


不让回复啊...
2008-1-28 04:20
0
雪    币: 400
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
多谢多谢....马上去试试.
2008-1-28 08:13
0
游客
登录 | 注册 方可回帖
返回
//