网络游戏协议封包需注意点

对于强客户端的游戏,就有很大可能出现脱机挂,因为一切客户端的计算、处理逻辑都不需要进行,只需要将最理想的作弊数据包直接发给服务器,就能达到游戏收益最大化。

下面这几点是需要多加注意的点。

1.send函数

根据send调用的buffer,进行回溯,找到加密函数。对于send调用的buffer,最好是保持随机调用,如果固定的话会非常容易分析。

2.耦合、离散

软件工程中提倡低耦合,高内聚。但是就耦合这点在封包发送阶段,应该做到高耦合,这样可以让逆向分析陷入迷茫,找不到关键点。对于包结构或者组包过程要做到高离散,这样会让逆向分析无法理解其确实的意义。

3.加密函数

加密函数主要完成数据加密,变换。使用的指令也会跟正常函数有所不同,比如位操作,byte操作。对于加密函数,最好不要一步完成,不然很容易分析出加密参数,每次将构造的协议交由加密函数处理,做出封包外挂。


下面用三个游戏来说明

一、B游戏

1.首先对send函数下断点



2.可以看到发送的加密数据(必然加密)



3.向上回溯,寻找加密函数



4.逆向解密函数,或者黑盒调用

sub     esp, 8
mov     eax, dword ptr [esp+C]
push    ebx
push    ebp
mov     edx, ecx
mov     ecx, dword ptr [eax]
push    esi
mov     esi, dword ptr [edx+18]
mov     edx, dword ptr [edx+C]
add     eax, 4
mov     ebx, dword ptr [eax+4]
push    edi
mov     edi, dword ptr [esi]
mov     ebp, eax
add     edi, dword ptr [ebp]
mov     ebp, dword ptr [eax+8]
add     ebp, dword ptr [esi+4]
add     eax, 4
add     esi, 8
test    edx, edx
mov     dword ptr [esp+1C], ebx
jbe     short 06FE50A7
mov     dword ptr [esp+10], edx
lea     ebx, dword ptr [ebx]
lea     edx, dword ptr [edi+edi+1]      
imul    edx, edi
lea     eax, dword ptr [ebp+ebp+1]
imul    eax, ebp
rol     edx, 5
rol     eax, 5
mov     ebx, edx
xor     ebx, ecx
mov     cl, al
xor     eax, dword ptr [esp+1C]
rol     ebx, cl
mov     cl, dl
rol     eax, cl
mov     dword ptr [esp+1C], ebp
mov     ebp, dword ptr [esi]
mov     dword ptr [esp+14], edi
add     eax, dword ptr [esi+4]
mov     ecx, dword ptr [esp+14]
add   
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值