利用 TDI HOOK 实现任意端口复用
来源:互联网 发布:alexnet tensorflow 编辑:程序博客网 时间:2024/05/21 09:06
所谓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
- 利用 TDI HOOK 实现任意端口复用
- 利用 TDI HOOK 实现任意端口复用
- 简单的tdi hook
- TDI HOOK监控tcp连接源码+文档
- Windows防火墙之NDIS HOOK和TDI HOOK
- TDI过滤获取IP及端口
- 利用Hook技术实现键盘监控
- 利用Hook技术实现键盘监控
- Android利用ptrace实现Hook API
- 利用驱动程序隐藏任意进程,目录/文件,注册表,端口
- 实现端口复用
- 利用Java实现端口扫描器
- 实现端口复用与端口劫持
- PHP端口复用的利用
- 伪任意地址HOOK类
- 用HOOK实现倒计时对话框
- 简析利用调试寄存器实现内核函数的HOOK
- 简析利用调试寄存器实现内核函数的HOOK
- Linux的shell编程(上)
- 【原创】我的音乐随想
- JavaScript 手册,CSS,PHP等手册
- DVD-Video 解谜 - IFO文件 - IFO 头文件解析
- jdbc中如何处理Oracle BLOB字段
- 利用 TDI HOOK 实现任意端口复用
- 掀起权证的红盖头
- 把Excel表中的数据导入数据库
- 回调函数的概念及其使用
- Linux的shell编程(下)
- 一个分组查询的SQL 常用算法(附源码可直接执行)
- 4.25雨
- DVD-Video 解谜 - IFO文件 - VMG specific tables
- Vi编辑器的使用