首页
社区
课程
招聘
求教高手一个同步的问题,先谢谢了
发表于: 2012-2-10 14:00 4402

求教高手一个同步的问题,先谢谢了

2012-2-10 14:00
4402
游戏的封包中一位包含了一个递加封包序号,为了能正确处理序号,我hook了send,在send中处理序号,可以运行正常。果我把hook的send恢复成原来的send,就要把我自己的封包序号写入到游戏内存中存放封包序号的地方去,这个地方也找到了。我碰到的问题是我恢复send,然后写回封包序号后总是会出现因序号不对掉线的情况,我猜测是在我写入序号之前就已经有取得了序号,但是还没有到达send函数的封包,这样我恢复原来的send后,他们还是用之前的序号,而不是接着我的序号来的,请问这种情况该怎么解决啊。hook我用的detours,先恢复hook还是先写回序号都会出现掉线!!!
希望大牛指点指点,谢谢了

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 403
活跃值: (541)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
不知道说清楚了没有,希望指点一二,谢谢
2012-2-10 15:41
0
雪    币: 24
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
感觉就是你自己分析的情况
需要跟踪这个序号的取用的情况
有个问题既然已经接管了为啥还要恢复?
2012-2-10 16:24
0
雪    币: 705
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
TLBB?  要么不恢复,要么把原来程序用的那个序号修正。还是不恢复方便
2012-2-10 16:50
0
雪    币: 403
活跃值: (541)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
恢复是因为软件要退出,而游戏无需退出啊
2012-2-10 18:53
0
雪    币: 403
活跃值: (541)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
修正原序号有什么方法吗?我直接把我的序号写入到游戏内的位置,很多情况下恢复hook都会序号错误啊
2012-2-10 18:54
0
雪    币: 705
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
修复的话很麻烦,需要找到它发送数据的缓冲区,把未发送的包全部修改正确。当然还有修改序号,而且修改的时候要保证不能再让它生成新的包
要不修改的时候把它的所有线程suspend,不过这样也不能保证在suspend的时候不会遇到它刚好产生了一个新的序号,而包含新的序号的包还没有放到缓冲区,则这个id还是错的。
你可以只把窗口关掉,保留hook,只要看不到窗口不就好了。
2012-2-10 19:20
0
雪    币: 30
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
2012-2-10 23:31
0
游客
登录 | 注册 方可回帖
返回
//