我们CTRL+g 跳到recv 分析收包函数
发现函数会断并且收包函数返回值(收包包长)也会不断变化
那么证明recv是真正的收包函数,游戏没有重新实现该函数
我们只要分析该函数即可
在recv函数执行完毕以后下断
eax是包长,esi+28是包指针
我们上2个号,让另外的一个号喊话,这个号进行收包
由于收包比较频繁,基本下断就断,所以我们要下条件断
我们喊18个字节,例如“123456789123456789 ” 收包长度必然大于0x10,小于多少我们可以尝试,可以尝试0x30,0x50
然后下断,另外的号立刻喊话,看收到的封包长度,可以多次试验确认
发现是0x26
包内容是加密的
我们光收到加密封包是没有用的
需要对其进行解密才知道收包的具体信息
所以还要继续追封包的解密函数
那么想要解密,就需要对加密内容进行访问
我们只要对加密包下访问断,就可以找到解密的位置,当然可能不只一次解密或则拷贝,一追到底便是。
访问断断下以后发现了解密的位置
返回看整个函数
用这个解密函数就可以顺利解密了
图中可以清晰看到
解密后的明文喊话内容了