能力值:
( LV2,RANK:10 )
|
-
-
2 楼
是不是这个问题? 你发送的字节改变了,然后应用层send的时候 返回的值不一样 导致上层认为发送失败?
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
内容改变.只要长度不变的话,那是没问题的,,但如果长度变更长了,那就不行了
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
你修改的是TCP包不?TCP包头里有windows块设置,不是想发啥就发啥的。每一包都有CheckSum的,如果中间一个bit变化了都会使得三次握手,得到的信道,瞬间Reset,另外你对付的服务器,肯定莫防火墙,没强制检查滑动块。你试试Bing的或Google的服务,错一个bit都叫你reset
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
那我该如何做呢?? 是TCP 而且还是Get的...比如拿百度来说.
拦截下来的地址是
GET / HTTP/1.1
Host: www.baidu.com
下面的略了..
然后我修改成
GET /s?wd=aa HTTP/1.1
Host: www.baidu.com
再发出去.那浏览器返回错误的提示
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
去看TCP1-6卷,不用我说,你自然明白,另外跟Http关系不大,要看TCP连接状态。就这块代码,我记得连学再做整半年才懂,挺不好理解的。还是看书来的快。
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
呵呵,干啥呢你
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
发送的时候 在TCP/IP层才有效验的 这个基本属于AFD层吧 好像没有效验和
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
这个情况就跟HOOK SEND函数修改了BUF一样 返回值要改为新的BUF的大小 你去试试
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
TCP1-6卷在哪看的??
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
http://www.baidu.com/s?wd=tcp%20ip%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3&rsv_bp=1&tn=baidu&rsv_spt=3&ie=utf-8&rsv_sug3=5&rsv_sug4=101&rsv_sug1=5&oq=tcp%20ip%E5%8D%8F%E8%AE%AE%20%E5%8D%B7&rsv_sug2=0&f=8&inputT=6848&bs=tcp%20ip%E5%8D%8F%E8%AE%AE%E5%8D%B7%E4%B8%80
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
重新说明一下吧,他Connet后,协议栈形成Tcp连接,如果他发送一次后,后面再修改发送,必定要招至checksum和目标checksum不一至的情况,第一次发送莫问题,但第二次发送如果改的话,ack风暴就刮起来了。然后就是对方或自己reset
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
这个倒是有可能,他得自己定义一个新的缓冲区。
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
可是ZwDeviceIoControlFile返回的不是buf的大小啊
是不是call 原ZwDeviceIoControlFile后.修改IoStatusBlock->Information为新的buff大小?
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
没错没错没错没错
|
能力值:
( LV2,RANK:10 )
|
-
-
16 楼
刚才我去试了,call 原ZwDeviceIoControlFile后.IoStatusBlock->Information 等于我修改后的大小啊..都不用我去修改就是一样的大小..
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
必须是新buff的大小噢。这个tdi层改数据的方案不好,回到ws2_32.dll去hook,TDI内要形发送序列的。搞不好checksum就出错了
|
能力值:
( LV2,RANK:10 )
|
-
-
18 楼
先感谢您一直关注...我改的是新buff的大小..依然不行...如果是hook ws2_32.dll层的API..那得Hook 四到六个API..觉得有点太麻烦..ws2_32.dll层的api估计改数据也差不多的吧
|
能力值:
( LV2,RANK:10 )
|
-
-
19 楼
表客气,我也在找我问题的答案。另外一般情况下都是ws2_32.dll去拦,如果想把所有数据都收进去拦,要处理的问题太多,远不像网上说的随便改TDI数据,但可以拦,拦劫无非返回一个无效就完 了,但修改需要处理的问题非常多的。如果你想更底层去修改数据,建议走NDIS。
|
能力值:
( LV2,RANK:10 )
|
-
-
20 楼
拦截数据已经实现了..现在困在修改数据了...都找了几天百度了,,依然没找到解决问题的方法..都有点想放弃了..哎..如果能找资料解决的话,也不想去麻烦别人,浪费别人的时间
|
能力值:
( LV2,RANK:10 )
|
-
-
21 楼
WPE都是走ws2_32.dll的,TDI层修改数据,天生不足,倒不是说就绝对不可以改,反正我感觉问题太多,从这一层走。如果一定要在底层改数据,NDIS或直接做自己的万能网卡驱动,比较实际。不管是哪一种方案,TDI,NDIS,DDM驱动都需要过硬的TCP/IP知识,这是基础噢,所以我建议你去看1-6卷的那些基础资料,看完以后,你自然会明白这些原理。原比我在这跟你凭空讲要来的快,毕竟那些东西都是成体系的。
|
能力值:
( LV2,RANK:10 )
|
-
-
22 楼
好的,谢谢您...
|
能力值:
( LV2,RANK:10 )
|
-
-
23 楼
感谢您的提醒,虽然你的提醒不对,但还是感谢您...
要修改的不是新的大小,而是旧的大小才能欺骗得了上层的检测...
IoStatusBlock->Information 把这个值修改成原数据大小就OK了!!
哈哈终于解决了!
|
能力值:
( LV2,RANK:10 )
|
-
-
24 楼
对的 我都搞乱了 是旧的大小。。
以后我HOOK SEND的时候就这样 是我调过来说了
|
能力值:
( LV2,RANK:10 )
|
-
-
25 楼
哥,那Hook recv 又是怎么填写呢?
|
|
|