阅读:1232回复:6
一个菜鸟问题
NDIS-Hook 可以挂多个Hook,我的愚愚的问题是:
挂了第一个Hook的时候,第二个想挂上去的,得到的对应函数地址是原来系统函数的地址,还是第一次Hook上去的函数的地址呢? 我的想法是第二次Hook时得到对应的地址应该是第一次Hook上去的函数,因为其指针的值已经在第一次时被改变了,但是这又与“NDIS-Hook 可以挂多个Hook”想违,所以,还请大家帮小鸟解解惑! |
|
|
沙发#
发布于:2005-06-24 13:02
喔,对,后加载的先执行,偶开始没有认真想,谢谢你啦,真是个好同志!!!
|
|
|
板凳#
发布于:2005-06-24 11:47
后加载的先执行
|
|
|
地板#
发布于:2005-06-24 11:32
谢谢!那换成实例是不是可以说成:
如果我系统上装了三个用NDIS-Hook做的防火墙,最后一个被系统加载的防火墙过滤的包,是不是要等到前两个防火墙过滤完了再轮到它?????? 我搞清楚这个问题是因为做两个Hook,一个用作包过滤,一个用作VPN(因为某些原因,没有办法做到一个里边),那我加载的顺序就得先加载包过滤的,再加载VPN的?否则若反之,则包过滤的拿到的都是经过加密的数据,无法过滤了? |
|
|
地下室#
发布于:2005-06-24 10:44
如果没有其他处理,你现在hook的方法就是一条链,你的理解没有错误.
如果想达到并行的方式,也可以做到,可能只是需要硬编码了. |
|
|
5楼#
发布于:2005-06-24 09:36
谢谢,不过你的回答对于偶这只菜鸟来讲太抽像了……
我的意思是说: 如果N个自定义函数Hook在了Ndis.sys的某个系统函数之上。那么它们的结构是这个N个函数以平行的形式同时和这个系统函数Hook,还是以加载的先后顺序,成为一个链? 以小生的程序实现来看,是后者,也就是一个链。这样一来,第二次Hook上去的函数就要依赖于第一次Hook上去的函数,而不是原生的系统函数。我想,既然“Ndis-hook可以同时挂多个”,那么第二次Hook上去的函数就不应该再依赖于第一次Hook上去的函数,于是我就怀疑自己的程序写错了,还是“那么第二次Hook上去的函数就不应该再依赖于第一次Hook上去的函数”这种想法错了,所以有此一问! |
|
|
6楼#
发布于:2005-06-23 17:27
怎么相违背? 是一个hook链啊!
|
|
|