我爱辅助论坛

 找回密码
 【点我注册】

QQ登录

只需一步,快速开始

查看: 3156|回复: 3

[视频教程] 任鸟飞谈逆向----《魔兽世界》封包协议加密分析

[复制链接]

该用户从未签到

发表于 2017-12-7 14:27:12 | 显示全部楼层 |阅读模式
魔兽世界作为暴雪的经典大作,被称作游戏历史上的一个里程碑,今天我们就以喊话封包为例,来分析一下这个游戏的封包内容。
首先来到send函数的头部,下断喊话,得到一个包长为0x15的包(如图)
这个包里很明显发现+0E的位置是喊话的内容123123,而通过改变喊话的方式发现+0A的位置是喊话的方式。而头部6个字节的变化并没有什么规律,很有可能是协议加密,我们返回外层来分析这个包头的来源。
返回到外一层,我们发现包地址的来源是005B5899 处的esi+8,而esi+8的喊话内容在005B5842处就已经被写入,只有前6个字节没有写入,在005B5842到005B5894这段代码是一个循环,每一次循环都会向包头写入一个字节(如图)
接下来分析下这个循环中用到的寄存器和局部变量,因为这里只是一段简单的汇编代码,并没有调用到其他函数,所以也无需考虑参数的问题。首先头部的esi+8自然是包的地址,我们可以直接申请缓冲区来代替,而ebx的地址也可以很轻易的追到来源,公式为[[0C28128]+1A58],ecx是一个计数器,传0即可,而后面的寄存器都会在代码执行过程中获得,005B5885处的[ebp+C]作为局部变量只需要申请一个DWORD变量。这样所有需要传入的数据都已经获得,直接内联汇编,调用这段循环代码,就可以取到下一个包的包头。
这是一个对封包的简单加密过程,而事实上很多的游戏并不会把加密的代码放到同一个函数体内,更不放到一个简单的循环里,所以对于更加复杂的游戏,我们还需要下更多功夫去分析。

温馨提示:为了保护系统安全,使用辅助前,请务必使用影子系统。

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【好评】【金币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

签到天数: 26 天

[LV.4]偶尔看看III

发表于 2018-1-3 15:20:19 | 显示全部楼层
大佬啊 可惜没图

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【好评】【金币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

签到天数: 4 天

[LV.2]偶尔看看I

发表于 2018-1-14 07:59:37 | 显示全部楼层
66666666666666

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【好评】【金币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2020-1-18 03:32:11 | 显示全部楼层
正需要,支持楼主大人了!

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【好评】【金币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 【点我注册】

本版积分规则

QQ|小黑屋|我爱辅助 ( 辽ICP备19006053号-1 )

GMT+8, 2025-5-1 16:08 , Processed in 0.065382 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表