VC中如何HOOK OpenProcess()?
我最近学习钩子,哪位大虾能指点一下,如何钩住API函数啊?最好给个实例。如果谁能告诉我如何让vc开发的exe程序在任务管理器的“应用程序”栏里面不可见也行(在xp\NT环...
我最近学习钩子,哪位大虾能指点一下,如何钩住API函数啊?最好给个实例。
如果谁能告诉我如何让vc开发的exe程序在任务管理器的“应用程序”栏里面不可见也行(在xp\NT环境下)!不胜感激!也可以QQ告诉我:403100987 展开
如果谁能告诉我如何让vc开发的exe程序在任务管理器的“应用程序”栏里面不可见也行(在xp\NT环境下)!不胜感激!也可以QQ告诉我:403100987 展开
1个回答
展开全部
有两种钩子:导入表HOOK,Inline Hook,其代码网上都有。如果要稳定的话可以选择导入表HOOK。
Jeffrey Richer 写过一个CAPIHook类,可以直接实现导入表HOOK。代码网上一搜就有。
在Hook OpenProcess的时候,你要准备一个如下原型的函数:
HANDLE _stdcall Hook_OpenProcess(DWORD, BOOL, DWORD dwId);
然后用CAPIHook a("kernel32.dll", "OpenProcess", (PROC)Hook_OpenProcess);安装它。
其中dwId就是要被打开进程的ID,你可以查询你感兴趣的信息。
不过HOOK其他进程中的API调用需要将HOOK代码写入DLL入再注入到那个进程,否则HOOK自己进程中的API调用是没用的~~
Jeffrey Richer 写过一个CAPIHook类,可以直接实现导入表HOOK。代码网上一搜就有。
在Hook OpenProcess的时候,你要准备一个如下原型的函数:
HANDLE _stdcall Hook_OpenProcess(DWORD, BOOL, DWORD dwId);
然后用CAPIHook a("kernel32.dll", "OpenProcess", (PROC)Hook_OpenProcess);安装它。
其中dwId就是要被打开进程的ID,你可以查询你感兴趣的信息。
不过HOOK其他进程中的API调用需要将HOOK代码写入DLL入再注入到那个进程,否则HOOK自己进程中的API调用是没用的~~
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询