关于hook的有关问题
关于hook的问题
大家好,第一次发帖子,请大家多帮忙啊
我要做一个小程序,要监视所有进程的启动和关闭
开始想用api作polling,就是用enumprocess什么的判断
但是发现这个办法不太好,刷新时间太短就占用cpu,太长就有漏掉的
后来看见很多人说用hook可以做,找了一些资料,但是很是有几个问题
搞不太清楚。
1. 现在所谓的api hook 是否都是针对某一个进程的函数调用内存操作的阿
也就是说是不是都需要先用sethookex或者createremotethread把dll挂
到一个进程里面哪?有没有一种办法不用针对具体进程,直接监视比如
user32.dll,也就是说全部对这个dll的某个api的调用全都可以监视的办法哪
2. 试过一个修改入口函数的例子,在xp sp2下出现了错误提示,好像有什么dep保护
是不是api hook对这个东西没有办法绕过去那
3. 用sethookex的方法可以注入自己的dll到别的进程,但是好像对console窗口无效阿,这个有什么解决办法没有
4. 我说的这个需求用用户级的api hook到底能实现吗,我是说不同平台下,不论是哪个应用程序启动关闭都能监视的需求。还是说需要做驱动阿
谢谢
------解决方案--------------------
你的这个应该使用内核钩子实现,
用户级的api hook不能达到要求。
------解决方案--------------------
你可以HOOK 创建进程函数
大家好,第一次发帖子,请大家多帮忙啊
我要做一个小程序,要监视所有进程的启动和关闭
开始想用api作polling,就是用enumprocess什么的判断
但是发现这个办法不太好,刷新时间太短就占用cpu,太长就有漏掉的
后来看见很多人说用hook可以做,找了一些资料,但是很是有几个问题
搞不太清楚。
1. 现在所谓的api hook 是否都是针对某一个进程的函数调用内存操作的阿
也就是说是不是都需要先用sethookex或者createremotethread把dll挂
到一个进程里面哪?有没有一种办法不用针对具体进程,直接监视比如
user32.dll,也就是说全部对这个dll的某个api的调用全都可以监视的办法哪
2. 试过一个修改入口函数的例子,在xp sp2下出现了错误提示,好像有什么dep保护
是不是api hook对这个东西没有办法绕过去那
3. 用sethookex的方法可以注入自己的dll到别的进程,但是好像对console窗口无效阿,这个有什么解决办法没有
4. 我说的这个需求用用户级的api hook到底能实现吗,我是说不同平台下,不论是哪个应用程序启动关闭都能监视的需求。还是说需要做驱动阿
谢谢
------解决方案--------------------
你的这个应该使用内核钩子实现,
用户级的api hook不能达到要求。
------解决方案--------------------
你可以HOOK 创建进程函数