首页
社区
课程
招聘
[求助][求助]win7的 SSDT HOOK引擎怎么制作[大牛来帮帮我吧]
发表于: 2012-5-23 13:01 6286

[求助][求助]win7的 SSDT HOOK引擎怎么制作[大牛来帮帮我吧]

2012-5-23 13:01
6286
void MemoryWritable()
{
	__asm 
	{
		cli
		mov eax,cr0
		and eax,not 10000h 
		mov cr0,eax	
	}
}

void MemoryNotWritable()
{
	__asm 
	{  
		mov     eax, cr0 
		or     eax, 10000h 
		mov     cr0, eax 
		sti 
	} 
}
int SSDTHookEngine(int nSSDTIndex,int nFunctionAddr)
{
	MemoryWritable();
	
	int nOldAddr;
	
	__asm
	{
		mov ebx,nSSDTIndex
		shl ebx,2
		mov eax,KeServiceDescriptorTable
		mov eax,[eax]
		add eax,ebx
		mov ecx,[eax]
		mov nOldAddr,ecx
		mov ecx,nFunctionAddr
		mov [eax],ecx
	}
	
	MemoryNotWritable();
	
	return nOldAddr;
}


这个是xp的SSDT的hook引擎
我想做个win7的
大牛来帮帮我吧

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 12
活跃值: (767)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
名字带个Engine的就是引擎级了。。。
2012-5-23 13:12
0
雪    币: 349
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
这顶多算个Demo吧。要算引擎,还不累死人。
2012-5-23 13:23
0
雪    币: 579
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
这个引擎很精减。看样子不错。学习了。
2012-5-23 13:50
0
雪    币: 73
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
nSSDTIndex的值还要自己计算的呀?
2012-5-25 08:25
0
雪    币: 949
活跃值: (18)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
6
写个宏获取Zw系列函数的Index
#define SSDT_FUNCINDEX(Function) (*(PDWORD)((PCHAR)Function+ 1)) //加一后是Index

比如ZwQuerySystemInformation
775361F8 ZwQ>/$  B8 05010000       MOV     EAX, 105
775361FD     |.  BA 0003FE7F       MOV     EDX, 7FFE0300
77536202     |.  FF12              CALL    DWORD PTR DS:[EDX]
77536204     \.  C2 1000           RETN    10

替换前先备份下SSDT。
2012-5-29 10:11
0
游客
登录 | 注册 方可回帖
返回
//