首页
社区
课程
招聘
[求助]自写函数 HOOK NtOpenProcess 和 NtOpenTread 蓝屏的几个问题
发表于: 2011-2-16 18:31 5495

[求助]自写函数 HOOK NtOpenProcess 和 NtOpenTread 蓝屏的几个问题

2011-2-16 18:31
5495
在TP的HOOK NtOpenProcess前  直接跳到自己写的函数判断  这样写加载了以后  用OD附加的时候 什么进程都看不到了

VOID _declspec(naked) MyNtOpenProcess()
{
	
	processEPROCESS=IoGetCurrentProcess();//获得调用者的EPROCESS
	RtlInitAnsiString(&p_str1,(PCSZ)processEPROCESS+0x174);//将调用者的进程名保存到str1里
	RtlInitAnsiString(&p_str2,DNF_EXE);//将DNF进程名保存到str2里
	if(RtlCompareString(&p_str1,&p_str2,true)==0)
	{
		__asm
		{
			pushad
			pushfd
			push dword ptr [ebp-38h]
			push dword ptr [ebp-24h]
			push p_ReturnAddress
			mov  eax,p_ReturnAddress
			jmp  eax
			popad
			popfd
		}
	}
 	else
 	{
 		__asm
 		{
			pushad
			pushfd
 			push dword ptr [ebp-38h]
 			push dword ptr [ebp-24h]
 			push p_ReturnAddress
 			mov  eax,ObOpenObjectByPointerAddress
 			jmp  eax
			popad
			popfd
 
 		}
 	}

}


这个加载了以后 打开OD就蓝屏
VOID _declspec(naked) MyNtOpenThread()
{

	pEPROCESS=IoGetCurrentProcess();//获得调用者的EPROCESS
	RtlInitAnsiString(&str1,(PCSZ)pEPROCESS+0x174);//将调用者的进程名保存到str1里
	RtlInitAnsiString(&str2,DNF_EXE);//将DNF进程名保存到str2里
	if(RtlCompareString(&str1,&str2,true)==0)
	{
		__asm
		{
				pushad
				pushfd
				push dword ptr [ebp-38h]
				push dword ptr [ebp-24h]
				push p_ReturnAddress_Thread
				mov  eax,p_ReturnAddress_Thread
				jmp  eax
				popad
				popfd
		}
	}
	else
	{
		__asm
		{
				pushad
				pushfd
				push dword ptr [ebp-38h]
				push dword ptr [ebp-24h]
				push p_ReturnAddress_Thread
				mov  eax,ObOpenObjectByPointerAddress_Thread
				jmp  eax
				popad
				popfd

		}
	}

}


这个两个只要是加载以后再卸载 一定蓝屏   卸载蓝屏是不是因为卸载的时候没有还原之前修改的代码

但是为什么跳到自己的函数里之后,OD什么进程都看不到了那? 而且HOOK NtOpenThread之后,开OD就蓝屏

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

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 193
活跃值: (64)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
在卸载之前你可以把你自己修改的代码还原过来的,还原成系统默认的,不过这时候估计你的把DF关闭吧,不然它有可能检测到的!
2011-2-16 19:00
0
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
那位什么打开OD以后 一个进程都看不到  这个是为什么
2011-2-16 19:06
0
雪    币: 193
活跃值: (64)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
4
没有开游戏

开了有了

恢复HOOK
上传的附件:
  • 1.jpg (116.41kb,203次下载)
  • 2.jpg (100.96kb,200次下载)
  • 3.jpg (130.54kb,202次下载)
2011-2-16 19:19
0
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
能否加下QQ 89499534
2011-2-16 19:22
0
雪    币: 193
活跃值: (64)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
6
如果找不到任何进程的话,估计你的 mov  eax,ObOpenObjectByPointerAddress 没有写好
2011-2-16 19:23
0
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
谢谢了   感谢 我找下
2011-2-16 21:20
0
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
是地址ObOpenObjectByPointer 没找对?
2011-2-17 18:22
0
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
还是没解决...
2011-2-18 13:53
0
游客
登录 | 注册 方可回帖
返回
//