swift
驱动中牛
驱动中牛
  • 注册日期2001-07-26
  • 最后登录2007-05-09
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望7点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
阅读:1816回复:14

怎么判断系统已经被ndis hook过一次了?(50分)

楼主#
更多 发布于:2002-07-05 15:09
我用注册假协议的ndis hook方法处理数据包,可是在有些机器上安装后,启动会死机?我怀疑是其他软件已经hook过一次了,如果其他软件已经hook过一次了,我再hook会造成死机吗?

如果其他软件已经hook过了,我们再hook时应该怎样处理?
我还能拦截到数据包吗?

最新喜欢:

hljwbhljwb
hover_
驱动牛犊
驱动牛犊
  • 注册日期2002-05-30
  • 最后登录2002-07-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-07-05 15:14
能不能简单介绍一下ndis hook是指什么?
我再ddk文档里面怎么没看到ndis有hook一说?
swift
驱动中牛
驱动中牛
  • 注册日期2001-07-26
  • 最后登录2007-05-09
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望7点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-07-05 15:20
ndis hook?
呵呵,其实我也不知道是不是这样叫,
就是注册一个dummy protocol,然后得到协议链的头,
然后找到各个protocol,然后找到receive and send ...

然后你进行hook,就可以了,就能得到数据包了!
swift
驱动中牛
驱动中牛
  • 注册日期2001-07-26
  • 最后登录2007-05-09
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望7点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-07-05 15:34
如果使用修改PE表的方法进行hook,是不是也存在这样的问题,
如果安装了两种使用这种技术的软件会不会有问题?

能否请大家讨论一下!

FW到底用哪种技术好!

1,IMD安装有问题,不能支持PPPoE
2,注册假协议有“第二次hook”的问题
3,PE表呢?它又有什么问题?

还有其他什么技术可以用吗?

唉,当初没有考虑好呀!
magicx
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2014-08-18
  • 粉丝1
  • 关注0
  • 积分-14分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-07-05 16:23
如果使用修改PE表的方法进行hook,是不是也存在这样的问题,
如果安装了两种使用这种技术的软件会不会有问题?

能否请大家讨论一下!

FW到底用哪种技术好!

1,IMD安装有问题,不能支持PPPoE
2,注册假协议有“第二次hook”的问题
3,PE表呢?它又有什么问题?

还有其他什么技术可以用吗?

唉,当初没有考虑好呀!


1,IMD安装有问题,不能支持PPPoE  

-- 为何,兄台可否,详细点?

2,注册假协议有“第二次hook”的问题

“我用注册假协议的ndis hook方法处理数据包,可是在有些机器上安装后,启动会死机?我怀疑是其他软件已经hook过一次了,如果其他软件已经hook过一次了,我再hook会造成死机吗?

如果其他软件已经hook过了,我们再hook时应该怎样处理?
我还能拦截到数据包吗?

以下为偶乱曰

“如果其他软件已经hook过一次了,我再hook会造成死机吗?”

我个人认为是你HOOK 的处理方式问提。

有没有考虑过---“串接”的方式。

偶乱曰的

见笑。。。。。。。。

:P

[编辑 -  7/5/02 by  magicx]
[color=red]大头鬼! :P[/color]
swift
驱动中牛
驱动中牛
  • 注册日期2001-07-26
  • 最后登录2007-05-09
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望7点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-07-05 16:32
什么叫串接的方式?

1,IMD安装要有ms的数据签名才行,不然很麻烦,
2,PPPoE driver也是用的IMD技术
3,可能我hook的方法有问题,不过确实是有第二次hook的问题,曾经有一位高人好象给我讲过!
gjpland
驱动小牛
驱动小牛
  • 注册日期2001-09-13
  • 最后登录2011-03-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-07-05 19:34
我用注册假协议的ndis hook方法处理数据包,可是在有些机器上安装后,启动会死机?我怀疑是其他软件已经hook过一次了,如果其他软件已经hook过一次了,我再hook会造成死机吗?

如果其他软件已经hook过了,我们再hook时应该怎样处理?
我还能拦截到数据包吗?

估计多半是你的程序编码有问题,
一般来说如果有别人HOOK过也没有关系。
但是就像DOS时代挂接中断一样。在UNLOAD时要有先后顺序,
如果这个顺序被搞乱的话那就会发生死机。
又如栈,先HOOK,必须先UNHOOKING,
我思故我在,脑袋不会坏.
magicx
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2014-08-18
  • 粉丝1
  • 关注0
  • 积分-14分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-07-05 20:22
什么叫串接的方式?

1,IMD安装要有ms的数据签名才行,不然很麻烦,
2,PPPoE driver也是用的IMD技术
3,可能我hook的方法有问题,不过确实是有第二次hook的问题,曾经有一位高人好象给我讲过!


我说的“串接”的方式就如:gjpland
斑竹说的\"就像DOS时代挂接中断一样。在UNLOAD时要有先后顺序,
如果这个顺序被搞乱的话那就会发生死机。
\"

[color=red]大头鬼! :P[/color]
swift
驱动中牛
驱动中牛
  • 注册日期2001-07-26
  • 最后登录2007-05-09
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望7点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-07-05 20:36
我在多台机器上试过,有的没问题,有的有问题,有一台机器一启动就会死机,我看了那台机器,只安装了一个Iris抓包软件!

我在我的机器上也装了一个,第一次的时候,先启动Iris,后启动我的东西,再退出我的东西,会造成死机!

刚才我又试了,Iris和我的东西一起跑,哪个先退出都没什么问题,我就呐闷儿了,怎么一台机器上的两个东东,不同时间跑的差别怎么就这么大捏 :)

???
magicx
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2014-08-18
  • 粉丝1
  • 关注0
  • 积分-14分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-07-05 20:40

文档已经发给你......

 :o
[color=red]大头鬼! :P[/color]
swift
驱动中牛
驱动中牛
  • 注册日期2001-07-26
  • 最后登录2007-05-09
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望7点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-07-05 20:42
收到,谢谢 :)
swift
驱动中牛
驱动中牛
  • 注册日期2001-07-26
  • 最后登录2007-05-09
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望7点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-07-05 21:37
哪位知道什么产品用的也是这种注册假协议的技术开发的,我想测测!
guardee
驱动巨牛
驱动巨牛
  • 注册日期2002-11-08
  • 最后登录2010-05-29
  • 粉丝2
  • 关注1
  • 积分2分
  • 威望34点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2002-07-05 21:56
呵呵!估计是因为你处理上面的问题了!因为这个跟DOS里面的拦截INT不一样,你的这个应该尽量允许重入才好
swift
驱动中牛
驱动中牛
  • 注册日期2001-07-26
  • 最后登录2007-05-09
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望7点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2002-07-06 09:42
那我如何将如何做可重入呢?
如果我进行了第一次hook,另一软件进行第二次hook,
当我退出的时候,是不是要检查当前系统的各handler是不是我自己的handler,如果不是,那就是又被hook了,那我将做何处理,是不是要功能先退出,然后做等待,做一个定时器,进行扫描,如果系统的handler变回了我自己的handler,再全部退出?

是这样吗?

如果其他软件先进行了hook,我再hook呢?
退出时还用做处理吗?

是不是只要退出的时候检测系统的handler是不是自己的就行了,如果是,那就全部退出,是吗?
guardee
驱动巨牛
驱动巨牛
  • 注册日期2002-11-08
  • 最后登录2010-05-29
  • 粉丝2
  • 关注1
  • 积分2分
  • 威望34点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2002-07-08 09:16
其实如果是你的先HOOK,那么你就不用怕了,因为肯定是你的驱动程序确定该数据包的处理方式的,如果是后来HOOK,那么你就需要把被替换的HANDLE都要恢复为自己的HANDLE,并且原来的值不能调用,因为很有可能是原来的会调用你的HANDLE
游客

返回顶部