API hook原理和实例快速入门(inline hook),以dll线程注入方式使用(win7-64bit)

一个完整的hook,如果hook程序是以dll形式生成的,是分两步:1.完成dll本身的设计和生成,2.完成dll注入程序的设计和生成

本文完成第一步。

第二步在http://blog.csdn.net/arvon2012/article/details/7767437有详细讲解。

 

最近在64位win7上hook文件复制,拖拽和剪切的hook(这个要通过hook IFileOperating接口实现)。所以学习了API hook。这里是对自己的学习做个简单的总结,希望和hook新手们共同探讨和进步~~~生气

最后有全部源码下载地址(无毒无害)

inline hook API的原理:

最简单的说,hook api就是找到api所在的位置,然后在这个位置里做些文章。这样,当系统调用这个API的时候,它不知不脚的就运行了我们篡改过的代码,达到我们不可告人的目的~~~网上介绍用detour库进行APIhook,detour库是微软开发的专用的api hook库,内部hook原理和inline hook是一样的,但是因为添加了一些处理调用冲突的代码,所以会比直接手工inline hook稳定些。

而上面说的“做文章”,具体是干什么呢?还是根据例子说的清楚。

下面是一个helloworld级别的hook api,目标:(弹出对话框函数:MessageBoxW)

第一步:找到要hook的api!

我们想hook住这个MessageBoxW,就要知道系统调用它的时候,它在哪里。有些童鞋懂应该上MSDN查,然后大声吼出:在windows.h!!

擦!少年~你弱爆了(其实我在描述当时自学的自己,不是说你的,亲~)。

要知道windows系统在调用这些函数的时候,他们调用的当然是编译好的可执行函数(动态链接库--dll文件),当然不是调用源代码。MSDN这个函数的头文件下面就写着:

  • 6
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值