利用 TDI HOOK 实现任意端口复用

原创 2006年05月30日 17:43:00

所谓tdi hook,我这里利用的是hook tcpip dispatch table的方法,实际上复用的原理很简单,关键是hook掉tdi_event_connect,之后从*AcceptIrp中取出conn obj,将其传递到自己定义的tdisend中就可以了
这里唯一蹩脚的地方是在处理TDI EVENT的时候,当进程启动后,它首先系统注册这些event handler,在有相应的网络事件发生的时候才进行调用,这点利用TDI MON可以看出来。因此,要在驱动启动的时候要分配一个信息结构(struct conn_ot)的HASH表,表里记录的信息可以在IRP_MJ_CLEANUP的时候进行释放。
这里我只对网络中最后一个连接做了复用,如果想复用全部的连接,需要修改一下ot_add_fileobj(),并且在连接断开的时候,处理IRP_MJ_CLEANUP就可以了。

测试方法:
首先在远程的机器上安装tdihook.sys,之后运行DMCanon.exe 2(这个数字随意指定)。运行一个网络服务,我一般用nc和apache。在本地机器运行nc连接,以ok作为magic word发送,可以得到Complete!

代码大部分取自tdi_fw。
感谢sinister大哥的指教。

代码下载请见下面的地址:
http://club.safechina.net/viewthread.php?tid=2160
http://www.whitecell.org/forums/viewthread.php?tid=253

by CDrea
http://www.safechina.net
CDrea@safechina.net

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

网安实验4-2. 端口复用测试实验

实验内容】     1.阅读p143-144,理解端口复用技术。 实验环境: 主机A为客户端,操作系统为win7,IP地址为172.16.15.1 主机B为服务端,操作系统为win7,IP...

实现NT端口复用的后门连接(讨论)

baiyuanfan   发表于:2005-03-04 10:44     发帖: 317积分: 0注册: 2004-01-22   TK曾说过,HXDEF用hook recv和WSARecv的方法来...
  • sding
  • sding
  • 2009-03-04 15:18
  • 2063

端口复用突破防火墙(图)

端口复用突破防火墙(图) 时间:2009-08-03 10:50 来源:bitsCN.com 字体:[大 中 小] 评论:0  如何在溢出后得到安全的、隐蔽的Shell是大家一直都在讨论的问题,因为现...

关于linux socket 编程 端口复用的理解

端口复用的理解在linux socket网络编程中,大规模并发TCP或UDP连接时,经常会用到端口复用: int opt = 1; if(setsockopt(sockfd, SOL_SOCKET,...

c和python利用setsockopt获得端口重用

假如端口被socket使用过,并且利用socket.close()来关闭连接,但此时端口还没有释放,要经过一个TIME_WAIT的过程之后才能使用。为了实现端口的马上复用,可以选择setsockopt...

端口复用:隐藏 嗅探与攻击

前言 在WINDOWS的SOCKET服务器应用的编程中,如下的语句或许比比都是: s=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); saddr.sin_family...

TDI HOOK监控tcp连接源码+文档

作 者: boywhp 时 间: 2011-08-11,17:59:22 链 接: http://bbs.pediy.com/showthread.php?t=138620 直接改的tdif...

iOS动态性(二)可复用而且高度解耦的用户统计埋点实现(Method Swizzling(Hook))

用户统计.jpeg 用户行为统计(User Behavior Statistics, UBS)一直是移动互联网产品中必不可少的环节,也俗称埋点。在保证移动端流量不会受较大影响的前提下,PM们...

TDI过滤获取IP及端口

TDI过滤驱动获取IP地址及连接端口要涉及关于TDI的一些结构体,当接收到含有TDI的TDI_CONNECT连接IRP请求时,IRP请求栈顶的的参数parameters就是指向TDI_REQUEST_...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)