发布于:2018-6-14 10:26 | 104622次阅读 作者: 外部投稿 | 原作者: 通化程序员
我们CTRL+g 跳到recv 分析收包函数 发现函数会断并且收包函数返回值(收包包长)也会不断变化 那么证明recv是真正的收包函数,游戏没有重新实现该函数 我们只要分析该函数即可
在recv函数执行完毕以后下断 eax是包长,esi+28是包指针 我们上2个号,让另外的一个号喊话,这个号进行收包
由于收包比较频繁,基本下断就断,所以我们要下条件断 我们喊18个字节,例如“123456789123456789 ” 收包长度必然大于0x10,小于多少我们可以尝试,可以尝试0x30,0x50
然后下断,另外的号立刻喊话,看收到的封包长度,可以多次试验确认
发现是0x26 包内容是加密的 我们光收到加密封包是没有用的 需要对其进行解密才知道收包的具体信息 所以还要继续追封包的解密函数 那么想要解密,就需要对加密内容进行访问 我们只要对加密包下访问断,就可以找到解密的位置,当然可能不只一次解密或则拷贝,一追到底便是。 访问断断下以后发现了解密的位置
返回看整个函数 用这个解密函数就可以顺利解密了
图中可以清晰看到 解密后的明文喊话内容了
来源:通化程序员-公众号投稿 GSLAB网站投稿文章仅代表作者本人的观点,与本网站立场无关。 *转载请注明来自游戏安全实验室(GSLAB.QQ.COM) |
最新评论
发表评论