c++ HOOK API 拦截系统API函数

这个老问题一直没有真正的解决过,在网上找了上百个网站,浏览数百个文章,理论完全了解了,又代码的全部都测试了下,只有一篇文章的HOOK能用,但是是局部HOOK的,就是说完全... 这个老问题一直没有真正的解决过,在网上找了上百个网站,浏览数百个文章,理论完全了解了,又代码的全部都测试了下,只有一篇文章的HOOK能用,但是是局部HOOK的,就是说完全没用的垃圾
求全局HOOK函数,能HOOK住任意的函数,让执行这个函数的进程跳转为执行自己的函数,并且能控制进程正常执行原来的函数
int WINAPI 自己的MessageBoxA HWND hWnd, LPCSTR lpText, LPCSTR lpCaption, UINT uType )
{
if (true){
return 正常执行MessageBoxA函数
}
执行自己的代码
}
//
HHOOK g_hHook = NULL;
static LRESULT WINAPI GetMsgProc(int code, WPARAM wParam, LPARAM lParam)
{
return ::CallNextHookEx(g_hHook, code, wParam, lParam);
}
int main(int argc, char* argv[])
{
g_hHook = SetWindowsHookEx WH_GETMESSAGE, GetMsgProc, ModuleFromAddress(GetMsgProc), GetCurrentThreadId());
}
能成功执行并全局HOOK住绝对给100分
不先上分是为了不浪费分,不然问题没解决分还是被扣了就不值了
或者发附件到我的邮箱,1277260932@qq.com,并且在邮件正文写上你的百度ID,在回答中写上“已发+你的百度ID”,能用绝对给100分
我自己查资料解决了
展开
 我来答
zngsai
2013-01-17
知道答主
回答量:61
采纳率:0%
帮助的人:22.4万
展开全部
楼主号称理论完全了解了,我看,其实不然吧。

HOOK有N多种。

按照使用级别来说,可大致分为应用层钩子和内核钩子;

按照钩子实现的方式来说,又可以分为消息钩子、进程钩子、SSDT、ShadowSSDT、ITA、Object钩子、系统中断等。

从你上面代码看,你似乎要挂钩进程中的Windows API函数 MessageBoxA,还要挂钩一个WH_GETMESSAGE消息钩子,并且在控制台程序用执行,太杂乱了,这让人无法明白你到底要做出什么样的效果。

在这种情况下,直接让人给你代码,恐怕给你了也不晓得该怎么用。对了,忘记说了,按照有效范围来说,可分为局部钩子、全局钩子,其中全局钩子必须要放到独立的DLL中的。

纯手打,祝楼主天天向上。
追问
全局钩子,能拦截其他进程对Windows API的调用,dll,WH_GETMESSAGE消息钩子勾住之后我就不会了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
广东轻亿云软件
2024-05-14 广告
广东轻亿云软件科技有限公司在软件开发领域深耕多年,积累了丰富的经验和技术实力。我们深知API接口在现代软件开发中的重要性,因此,我们与多家业界领先的API接口提供商保持着紧密的合作关系,确保我们的产品和服务能够充分利用这些接口,为用户提供更... 点击进入详情页
本回答由广东轻亿云软件提供
淡的快商了0g
2014-03-27 · 超过38用户采纳过TA的回答
知道答主
回答量:65
采纳率:0%
帮助的人:72.1万
展开全部
分消息钩子、进程钩子
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式