首页
社区
课程
招聘
[求助]关于HOOK API的问题
发表于: 2008-8-24 10:10 4657

[求助]关于HOOK API的问题

2008-8-24 10:10
4657
CAPIHook g_OpenProcessA;	
	
typedef int (WINAPI *PFNOpenProcess)(HWND hWnd , LPCSTR lpText, LPCSTR lpCaption, UINT uType);	

int WINAPI MyOpenProcessA(HWND hWnd , LPCSTR lpText, LPCSTR lpCaption, UINT uType)
{
	int nResult=0;
 	nResult=((PFNOpenProcess)(PROC)g_OpenProcessA)(hWnd,"Stop!",lpCaption,uType);
 	return nResult;
}

BOOL APIENTRY DllMain( HANDLE hModule, 
                       DWORD  ul_reason_for_call, 
                       LPVOID lpReserved
					 )
{
    switch (ul_reason_for_call)
	{
		case DLL_PROCESS_ATTACH:				OutputDebugString("Hook DLL Load! Live In module:");

penProcessA.HookFunc("user32.dll","OpenProcess",(PROC)OpenProcessA,TRUE);
			break;
		case DLL_THREAD_ATTACH:
			break;
		case DLL_THREAD_DETACH:
			break;
		case DLL_PROCESS_DETACH:
			OutputDebugString("Hook DLL Exit! Leave module:");
			g_OpenProcessA.UnHookFunc();
LRESULT WINAPI MsgProc(int code, WPARAM wParam, LPARAM lParam)
{
	//注意 :on windows 2k ,CallNextHookEx 的第一个参数可以为空
	//On win 98 ,必须有钩子句柄
	return(CallNextHookEx(NULL,code,wParam,lParam));
}


代码老出错!我想做个在任务管理器不能关闭自己的程序,请高手帮忙!
不帮忙的笑话新手的走开!

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (11)
雪    币: 145
活跃值: (85)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
2
现在编译没错。这是DLL文件。就是运行程序时候出错。
当关闭记事本的时候会出现"彭“的一声。
然后记事本就关闭了,有个错误提示,说0x00b61a36内存不能为read!
2008-8-24 10:14
0
雪    币: 145
活跃值: (85)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
3
然后关闭自己的时候也会出现这个提示!
2008-8-24 10:14
0
雪    币: 145
活跃值: (85)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
4
我这个就是根据那个拦截记事本的对话框的那个改的!
2008-8-24 10:16
0
雪    币: 240
活跃值: (190)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
5
给你发一个inline api hook的例子吧,我写的,
上传的附件:
2008-8-24 10:19
0
雪    币: 145
活跃值: (85)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
6
你帮我看看哪出了错好吗?
2008-8-24 10:27
0
雪    币: 145
活跃值: (85)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
7
我想直接指点处错误我改正效果会更好点!
2008-8-24 10:27
0
雪    币: 145
活跃值: (85)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
8
现在那个内存错误不出现了。点关闭记事本还能关闭!
2008-8-24 10:29
0
雪    币: 202
活跃值: (558)
能力值: ( LV11,RANK:188 )
在线值:
发帖
回帖
粉丝
9
????????????

  {
    case DLL_PROCESS_ATTACH:        OutputDebugString("Hook DLL Load! Live In module:");

penProcessA.HookFunc("user32.dll","OpenProcess",(PROC)OpenProcessA,TRUE);
      break;
    case DLL_THREAD_ATTACH:
      break;
    case DLL_THREAD_DETACH:
      break;
    case DLL_PROCESS_DETACH:
      OutputDebugString("Hook DLL Exit! Leave module:");
      g_OpenProcessA.UnHookFunc();
}

哈,LZ勿见怪,当初想再考虑考虑再解释,到现在却忘了这帖子
似乎是hook错误了,请查点相关资料,有结果了也不要因为前面的无礼而不分享啊!
2008-8-24 10:57
0
雪    币: 145
活跃值: (85)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
10
LS啥意思。灌水找错地方了!?
2008-8-24 11:03
0
雪    币: 145
活跃值: (85)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
11
郁闷。整个论坛有没有热心人了????????
世态炎凉!郁闷。
2008-8-24 11:05
0
雪    币: 145
活跃值: (85)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
12
郁闷。奥运加油!
2008-8-24 11:08
0
游客
登录 | 注册 方可回帖
返回