gjpland
驱动小牛
驱动小牛
  • 注册日期2001-09-13
  • 最后登录2011-03-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:18559回复:59

网络数据包通用拦截技术范例(Protocol Wrapper)

楼主#
更多 发布于:2002-10-11 10:16
决定公开源代码.配合《网络数据包通用拦截技术》这篇文章。
http://www.tarcysu.net/gjp/ndishook1.c

此部分为NT部分。要使用在9X下需要修改
因为没有整体分开,一些函数和头文件未给出,但不影响框架
请阅读者自己修改。

实现的防火墙
http://www.tarcysu.net/gjp/hdfwinst.exe




[编辑 -  12/16/02 by  gjpland]

最新喜欢:

WY.lslrtWY.lsl... ljmmaryljmmar... threebagsthreeb...
我思故我在,脑袋不会坏.
tooflat
论坛版主
论坛版主
  • 注册日期2002-07-08
  • 最后登录2014-03-11
  • 粉丝2
  • 关注0
  • 积分1007分
  • 威望551点
  • 贡献值3点
  • 好评度476点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-10-11 10:47
女孩子嘛,多哄哄就好了!
fracker
驱动太牛
驱动太牛
  • 注册日期2001-06-28
  • 最后登录2021-03-30
  • 粉丝0
  • 关注0
  • 积分219分
  • 威望81点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分1分
  • 社区居民
板凳#
发布于:2002-10-11 11:19
谢谢你的大补丸。
fracker
驱动太牛
驱动太牛
  • 注册日期2001-06-28
  • 最后登录2021-03-30
  • 粉丝0
  • 关注0
  • 积分219分
  • 威望81点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分1分
  • 社区居民
地板#
发布于:2002-10-11 12:21
女孩子嘛,多哄哄就好了!

很有经验的样子,不过为什么凭什么哄?
winnix
驱动牛犊
驱动牛犊
  • 注册日期2002-05-14
  • 最后登录2002-11-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-10-13 21:00
[quote]女孩子嘛,多哄哄就好了!

很有经验的样子,不过为什么凭什么哄? [/quote]

为了不被女流氓猥亵、凭你的三寸不烂之舌!

^_^
right_wind
驱动中牛
驱动中牛
  • 注册日期2001-10-12
  • 最后登录2018-05-29
  • 粉丝1
  • 关注0
  • 积分60分
  • 威望66点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2002-10-14 08:59
谢谢gjpland的源码,学习学习。
希望gjpland和GF早点冷战结束。 :)
good good study, day day up。
swift
驱动中牛
驱动中牛
  • 注册日期2001-07-26
  • 最后登录2007-05-09
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望7点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-10-16 17:45
哪个敢对我们老大这么无礼,老大不用怕,老大这么优秀,一定有一大大堆的girls的!

哪天等我找到LP后再给你介绍几个 :)

开玩笑的,老大不要生气啊!
还靠你罩着呢!

相爱容易相处难啊,不过呢,风浪只是检验你们的感情是否够深,如果你们走不过,那么就是感情未够,如果感情够呢,就不用怕的!
祝好!
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-10-17 08:49
 

很有经验的样子,不过为什么凭什么哄?
 


唉,你就当她是小孩,哄着就得了,

不然还能怎么办??、只有分手了
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
lifeship
驱动小牛
驱动小牛
  • 注册日期2002-10-18
  • 最后登录2005-07-19
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-10-26 21:00
大补, :P
杯汝前来,  老子今朝,  放荡形骸!  甚长年抱渴,  咽如焦釜,  于今喜醉,  气似奔雷!  慢说刘伶,  古今达者,  醉后何妨死便埋! 
edust
驱动中牛
驱动中牛
  • 注册日期2002-04-02
  • 最后登录2003-06-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-10-27 10:53
多谢 gjpland!
我要好好研究一下!

另外,老大,两个人在一起很多时候都是你认为她不对,她认为你不对,一直耗着很累人啊,其实多数时候也不是什么大事情,想想你们多年的感情,犯得着吗?想开一点,哄哄就好了!
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-10-28 09:19
 

 另外,老大,两个人在一起很多时候都是你认为她不对,她认为你不对,一直耗着很累人啊,其实多数时候也不是什么大事情,想想你们多年的感情,犯得着吗?想开一点,哄哄就好了!

 

说来容易吖,俺最近也和MM关系紧张,唉,郁闷吖
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
gjpland
驱动小牛
驱动小牛
  • 注册日期2001-09-13
  • 最后登录2011-03-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-10-28 15:04
谢谢,各位的关心,
我和GF已经和好了.
其实双方都包容点就没事了。
我思故我在,脑袋不会坏.
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2002-10-28 16:00
俺还在努力中。。。。。。。。。。。。。。。。

极度郁闷ing
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
trent
驱动老牛
驱动老牛
  • 注册日期2002-03-01
  • 最后登录2014-09-18
  • 粉丝0
  • 关注0
  • 积分61分
  • 威望185点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2002-10-31 10:14
我来写一下对贴主的大补丸的理解把,欢迎大家指正 :D
这里有一个很重要的结构
typedef struct _HOOK_CONTEXT_STRUCT
{
//runtime code
ubyte    code1_0x58; //0x58 | pop  eax      | pop caller IP from stack to eax
ubyte    code2_0x68; //0x68 | push IMM      | push our hook context address
struct _HOOK_CONTEXT_STRUCT *m_pHookContext;//point this
ubyte    code3_0x50; //0x50 | push eax | push caller IP from eax to stack
ubyte    code4_0xE9; //0xE9 | jmp HookProc  | jump our hook proc
udword   m_pHookProcOffset;

//our context data

PVOID    m_pOriginalProc;
PVOID    m_pHookProc;
PVOID    m_pBindAdaptHandle;
PVOID    m_pProtocolContent;
PVOID   *m_ppOriginPtr;

struct _HOOK_CONTEXT_STRUCT *m_pHookNext;

}HOOK_CONTEXT_STRUCT;

在HookFuncBlock()函数中,调用了HookNdisFunc()函数将接收packet的函数一一替换,而在HookNdisFunc()函数中,我们看是怎样把一个Hook函数题换成自己的函数,而且注意替换的函数比原来函数多了一个参数
 :D
我不仅要金子,我还要点石成金的手指!
trent
驱动老牛
驱动老牛
  • 注册日期2002-03-01
  • 最后登录2014-09-18
  • 粉丝0
  • 关注0
  • 积分61分
  • 威望185点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2002-10-31 10:41
再HookNdisFunc中,
ppOrigProc[0] = pHookContext;
这里替换的,是拿_HOOK_CONTEXT_STRUCT结构体的地址去替换HOOK函数,当一个包到来触发―&pProChar->ReceiveHandler时(见HookFuncBlock中的 HookNdisFunc(HookProtocolReceive,(PVOID *)&,NULL,ProtocolContent);
以HookProtocolReceive为例,其他的一样)。指令指针将转到_HOOK_CONTEXT_STRUCT结构,而从该结构读出来的数据将作为指令来执行。这里真他妈好的是在该结构头有
ubyte    code1_0x58; //0x58 | pop  eax      | pop caller IP from stack to eax
ubyte    code2_0x68; //0x68 | push IMM      | push our hook context address
struct _HOOK_CONTEXT_STRUCT *m_pHookContext;//point this
ubyte    code3_0x50; //0x50 | push eax | push caller IP from eax to stack
ubyte    code4_0xE9; //0xE9 | jmp HookProc  | jump our hook proc
udword   m_pHookProcOffset;
执行了ret指针出栈,把_HOOK_CONTEXT_STRUCT指针入栈(这时栈中多了一个实参数),ret入栈,再用指针跳转跳到 HookProtocolReceive函数。可以看到HookProtocolReceive函数的第一个参数就是_HOOK_CONTEXT_STRUCT !!!!
而在_HOOK_CONTEXT_STRUCT 结构中,保存了原来的函数,在进行了packet的检查之后,就可以调用原来的函数转发数据了
 :D :D :D

[编辑 -  11/1/02 by  trent]
我不仅要金子,我还要点石成金的手指!
seven
驱动小牛
驱动小牛
  • 注册日期2001-04-03
  • 最后登录2007-03-28
  • 粉丝0
  • 关注0
  • 积分80分
  • 威望8点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2002-11-03 16:40
雨过天晴,什么都好办了。
谢谢诸位的源码和文章。
我爱中医:http://www.ngotcm.com/forum/index.php
debug
驱动大牛
驱动大牛
  • 注册日期2002-06-06
  • 最后登录2012-10-15
  • 粉丝0
  • 关注0
  • 积分105分
  • 威望12点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2002-11-04 12:42
精神可嘉,再次制鞋(致谢)!! :D :D
偶爱c/c++,正如世人爱上帝一样。。。。 唐僧正在火焰山下分配工作:“悟空去借芭蕉扇,悟净去找水--八戒,你怎么还有空看偶的个人资料??
softjah
驱动牛犊
驱动牛犊
  • 注册日期2002-05-17
  • 最后登录2008-04-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2002-11-04 15:02
sssssssssss
daisyboy
驱动小牛
驱动小牛
  • 注册日期2002-10-24
  • 最后登录2012-05-21
  • 粉丝3
  • 关注0
  • 积分599分
  • 威望140点
  • 贡献值1点
  • 好评度56点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2002-11-05 14:04
决定公开源代码.配合《网络数据包通用拦截技术》这篇文章。
http://www.tarcysu.net/gjp/ndishook1.c

此部分为NT部分。要使用在9X下需要修改
因为没有整体分开,一些函数和头文件未给出,但不影响框架
请阅读者自己修改。

btw:最近和GF冷战心情不好,不要问我太多问题。  


啊?那几天我老在QQ骚扰你,还想着这老兄怎么这么臭拽,QQ都不回,哼哼!原来是这个原因啊。。。不知者不为怪哦!!

不过,听到说你们和好了就放心了。说不定未来的大嫂是看见我对你如此的崇拜如滔滔降水。。。。。呵呵。

[编辑 -  12/16/02 by  gjpland]
合作c/c++/ndis/pppoe/802.1x!
gjpland
驱动小牛
驱动小牛
  • 注册日期2001-09-13
  • 最后登录2011-03-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2002-11-05 14:10
[quote]决定公开源代码.配合《网络数据包通用拦截技术》这篇文章。
http://www.tarcysu.net/gjp/ndishook1.c

此部分为NT部分。要使用在9X下需要修改
因为没有整体分开,一些函数和头文件未给出,但不影响框架
请阅读者自己修改。

btw:最近和GF冷战心情不好,不要问我太多问题。  


啊?那几天我老在QQ骚扰你,还想着这老兄怎么这么臭拽,QQ都不回,哼哼!原来是这个原因啊。。。不知者不为怪哦!!

不过,听到说你们和好了就放心了。说不定未来的大嫂是看见我对你如此的崇拜如滔滔降水。。。。。呵呵。 [/quote]

HEHE,不好意思,也不是全这个原因,有时候是我正好在下四国或打升级,没时间去回QQ了。不过以后最好有问题的都请通过EMAIL或直接在论坛上问,我想有些问题这里有很多人都能帮你解决的。


[编辑 -  11/5/02 by  gjpland]

[编辑 -  12/16/02 by  gjpland]
我思故我在,脑袋不会坏.
上一页
游客

返回顶部