我想截获21端口的FTP数据包 然后将其IP报头的一部分无用位修改并发送
不知道这样用Winsock2 SPI可行不可行? 这几天在网上搜来搜去 已经安装上了一个LSP分层服务提供者
然后运行FTP软件
利用DbgView.exe查看调试信息发现可以Hook到WSPSend函数
但是完全Hook不到WSPSendTo函数 也不知道是为什么 是不是与FTP的工作机理有关? 还有,是不是即便用SPI Hook到了也无法修改IP(或者TCP)报头呀?
请哪位大牛来解答一下..100分跪谢~
不知道这样用Winsock2 SPI可行不可行? 这几天在网上搜来搜去 已经安装上了一个LSP分层服务提供者
然后运行FTP软件
利用DbgView.exe查看调试信息发现可以Hook到WSPSend函数
但是完全Hook不到WSPSendTo函数 也不知道是为什么 是不是与FTP的工作机理有关? 还有,是不是即便用SPI Hook到了也无法修改IP(或者TCP)报头呀?
请哪位大牛来解答一下..100分跪谢~
解决方案 »
- 急!用CHttpConnection等MFC封装的WinINet类,下载网站文件时无法正确识别URL所包含的文件名及类型.
- gina在2K下和xp下有不同么??
- “撤销”“恢复”功能实现!各位高手请指点小弟!!!
- 控件安全性方面的问题?DllRegisterServer调用时,"CLSID_SafeItem"是什么,又在哪里定义的呢?
- 又是菜鸟问题!
- 关于c++类的编译??
- 有谁知道那本Charles Petzold写的《Programming Windows 95》那里有的卖?原著或译著都行
- 求救!CButton 的SetIcon 设置图标后 图标被拉伸 很模糊
- 怎样编程实现封锁系统键和隐藏任务栏?高手请...
- Direct UI中Edit控件 的一点问题,求解答
- format
- MFC单文档菜单变灰
可以告诉一下你打算实现什么功能吗? 真想这么做。可以写网络驱动。或者用现有的驱动开发包。不过都比较麻烦。
你可以用winpcap提供的接口在网口抓包,再分析报文是否是FTP报文,是的话按照你的想法去修改IP头,再发送出去,呵呵。
呵呵 想实现的功能是修改欲发送的特定数据包的报头然后将其发送 报头中隐藏一些信息 接收端可以对其进行还原
大体思路是接收端使用winpcap
发送端暂定使用winsock SPI 但是这样看来似乎有些不可行了
即便是可以截获特定的数据包 但是也无法修改
截获数据包之后自己使用RAW SOCKET进行构造似乎也不大可行
winpcap应该是在SPI的下层吧? 这样看来截获数据包之后用winpcap构造数据包再发送似乎也不可行了无奈 看来只能采用TDI或者NDIS底层驱动了……
恩 winpcap是不能实现数据包拦截的 呵呵
谢谢您对该问题的关心
下面是简介:
winpcap(windows packet capture)是windows平台下一个免费,公共的网络访问系统。开发winpcap这个项目的目的在于为win32应用程序提供访问网络底层的能力。它提供了以下的各项功能:
1> 捕获原始数据包,包括在共享网络上各主机发送/接收的以及相互之间交换的数据包;
2> 在数据包发往应用程序之前,按照自定义的规则将某些特殊的数据包过滤掉;
3> 在网络上发送原始的数据包;
4> 收集网络通信过程中的统计信息。第二条就是截掉了对方的包。 很多软件强制断对方断网功能也是通过这个做到的。不过可能有些其他操作。
比如先用arp协议告诉对方你是网关。让他把数据先经过你。而不是直接发给路由。你可以选择某些包不转发。然后自己组包发,这样就可以阻止COPY的问题。很多防BT软件都是用winpcap做的。不能拦截包还混个毛啊。
第三条就是自己组包。
人家问的是SPI,winpcap是用SPI吗?
SPI主要是重定向数据发送的方向(例如本来要连接到XX.XX.XX.XX,通过SPI,可以修改成连接成yy.yy.yy.yy,数据发送也一样)
ndis中间层才行
很多很多人对我说过winpcap只是获取流经网卡的数据包的一个拷贝 并不能拦截应用程序发到下层的数据包啊
那个防BT软件的功能好像是靠它发送RST使TCP连接不能建立来实现的,并没有拦截
已经有了初步的计划
直接改包要用NDIS中间层 这个有点麻烦
所以换一种方式
用SPI实现拦截,用winpcap构造数据包发送
也算是变相地修改数据包了
感谢楼上回答的各位~ 散分~
Whatever,谢谢你的关注。