首页
社区
课程
招聘
怎么修改WSASend的封包长度,而不让程序卡死?
发表于: 2016-12-28 12:23 4656

怎么修改WSASend的封包长度,而不让程序卡死?

2016-12-28 12:23
4656
HOOK WSASend, 怎么修改WSASend的封包长度,而不让程序卡死?

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 13
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
调用原始 WSASend传递的是你自己组装的包即可了嘛。
2016-12-28 16:27
0
雪    币: 291
活跃值: (18)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我修改了他的长度和内容,然后在WPE里面看了服务器返回的包,返回的包正常了,但是程序却卡死了.

直接修改他的长度和内容,与自己组装的包有区别吗?其他的参数需要动?
2016-12-28 17:10
0
雪    币: 9479
活跃值: (757)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
应该还有个心跳包的序号
2016-12-28 17:15
0
雪    币: 291
活跃值: (18)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
扯远了,不是游戏,没有心跳包,并且还是明文包, 我测试了下,改第一个包的长度没问题,改第二个包WSASend的长度,也没问题, 服务器也会返回,只是可能返回的数据不是程序想要的数据,或者WSARecv接受的长度不对,反正问题应该在WSARecv上,会调用WSAGetLastError,然后返回997错误,查了百度百科,
    997 - WSA_IO_PENDING
重叠操作将在以后完成。用Winsock函数发出一次重叠I/O操作时,若出现这样的Win32错误,便表明操作尚未完成,而且会在以后的某个时间完成。
如果是不修改长度的版本,就不会调用WSAGetLastError了, 哎,还是看不懂这个错误啥意思
2016-12-28 18:20
0
雪    币: 101
活跃值: (157)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
可能有判断发送了多少个字节。。。改一下返回值试下。。
2016-12-28 18:38
0
雪    币: 9479
活跃值: (757)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
既然明文包,看一下组包过程,可能存在发包序号或校验值的
2016-12-28 19:48
0
雪    币: 200
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
将发送包和接收包的字节都调到很大试试
2016-12-29 11:30
0
游客
登录 | 注册 方可回帖
返回