首页
社区
课程
招聘
[原创]TDI防火墙框架
发表于: 2012-11-11 16:50 20402

[原创]TDI防火墙框架

2012-11-11 16:50
20402

出于个人爱好想写一个防火墙,利用业余时间来完善这份代码,当实现了TDI防火墙的整体框架的时候发现TDI驱动居然无法捕获到ICMP封包(如果想捕获ICMP封包还必须用别的办法,比如HOOK某个NDIS的发包接口),发现这种情况觉得没有再继续写下去的必要了。。现在将该驱动源码放出来供大家参考学习,希望对一部分人有帮助

话说回来:拦截TCP、UDP、RawIp还是很好用的。
参考了部分科莫多防火墙的代码:)

这个驱动参考了tdi_fw源码和ReactOS。代码在WDK 7600.16385.1成功编译,并能够在XP SP3下运行正常。

备注:附件中有一份科莫多防火墙TDI驱动的逆向IDB文件哦:)

TDI的资料请看:http://bbs.pediy.com/showthread.php?t=146050


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 6
支持
分享
最新回复 (24)
雪    币: 1262
活跃值: (1048)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
先收藏了,学习
2012-11-11 16:54
0
雪    币: 235
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
顶下
2012-11-11 17:16
0
雪    币: 14
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
自己做了个Afd Filter . 业余时间不容易啊, 为了ICMP还要动NDIS划不来.我也是这么想的.
LZ可以联系我. 我给你发份LICOM的内核库.来试试所有功能由上层处理.哈哈
2012-11-11 17:41
0
雪    币: 190
活跃值: (40)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
看起来不错,mark.......以后看
2012-11-11 19:00
0
雪    币: 55
活跃值: (519)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
6
反过来就叫IDT
2012-11-11 20:48
0
雪    币: 88
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
光棍节礼物么?
2012-11-11 23:44
0
雪    币: 219
活跃值: (783)
能力值: (RANK:290 )
在线值:
发帖
回帖
粉丝
8
mark~~
2012-11-12 08:27
0
雪    币: 130
活跃值: (66)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
nice,多谢楼主了
2012-11-12 15:41
0
雪    币: 34
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
nice 学习一下牛X的东西
2012-11-12 22:09
0
雪    币: 1919
活跃值: (901)
能力值: ( LV9,RANK:490 )
在线值:
发帖
回帖
粉丝
11
收藏备用
2012-11-12 23:24
0
雪    币: 159
活跃值: (40)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
12
先down下来收起来~
2012-11-13 09:22
0
雪    币: 14
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
13
最近折腾AFD的动态卸载..
翻了下LZ的UNLOAD部分.  没有做IRP的完成调用计数之类的.
2012-11-13 09:41
0
雪    币: 80
活跃值: (72)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
收藏。
2012-11-13 10:02
0
雪    币: 870
活跃值: (1426)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
ida是哪个版本的,为嘛已打不开,ida6.1和5.5的都试过了,打不开....
2012-11-13 10:17
0
雪    币: 248
活跃值: (188)
能力值: ( LV12,RANK:300 )
在线值:
发帖
回帖
粉丝
16
用的是IDA 6.1
贴一张刚刚的截图
上传的附件:
2012-11-13 11:28
0
雪    币: 248
活跃值: (188)
能力值: ( LV12,RANK:300 )
在线值:
发帖
回帖
粉丝
17
兄台请看代码
#ifndef DBG
    DriverObject->DriverUnload = NULL;
#else
    DriverObject->DriverUnload = DriverUnload;
#endif

当要发布驱动的时候是木有Unload的,也不需要Unload,Unload这是用来自己卸载方便、调试方便用的,时下流行的防火墙运行的生命周期是在系统启动到结束,不用去考虑完成例程的计数问题,这样做能够减少很多不必要的代码和耦合关联

你会看到时下很多防火墙都木有Unload,很多防火墙卸载的时候都询问你是否重启计算机,你懂的
2012-11-13 12:38
0
雪    币: 506
活跃值: (318)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
18
支持,,,楼主好人
2012-11-14 10:45
0
雪    币: 22
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
mark
2012-11-14 21:56
0
雪    币: 1254
活跃值: (735)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
20
收藏,谢谢分享
2012-11-14 22:08
0
雪    币: 97697
活跃值: (200799)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
21
Thanks for share.
上传的附件:
2012-11-15 16:59
0
雪    币: 123
活跃值: (50)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
先收藏了,学习
2012-11-20 09:14
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
// 备注: 拦截就返回 STATUS_FILE_CLOSED

NTSTATUS TdiDispSend( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp )

返回 STATUS_FILE_CLOSED 就蓝屏? 是什么原因呀?
2013-8-15 17:04
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
ConnectEventHandler  ,  连入的Event一直没有响应?
2013-8-15 18:19
0
雪    币: 81
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
收藏了,学习
2013-8-16 00:08
0
游客
登录 | 注册 方可回帖
返回
//