• 115阅读
  • 0回复

《魔域》远程访问NPC漏洞分析 [复制链接]

上一主题 下一主题
离线任鸟飞
 

微信公众号:任鸟飞逆向
一般来说远程访问NPC或者对话等功能都是通过直接发送封包来实现的,以《魔域》这款游戏为例。

因为调用send的函数我们需要对数据进行加密分析,所以我们尝试调用明文包的位置来实现。通过在send函数的数据缓冲区上下写入,轻松的跳出了线程循环,继续返回可以得到明文包的位置(如图)
随便选择一个NPC断下后得到了一个很简单的封包,包的长度只有0x10,(如图)
通过改变不同的NPC可以得出这个封包中的参数如下
10 00       EF 07      AB 4C 00 00      00 00 00 00 00 00 00 00
包长协议IDNPCID  未知参数,默认0填充
在OD中随便找一片空的内存,使用代码注入器注入测试(如图)
注入成功了,我们移动到一个很远的地方,甚至移动到其他地图,发现依然可以注入成功,这说明我们可以通过调用明文封包就可以达到远程访问NPC的效果,前提是我们需要知道NPC的ID,而事实上大部分的游戏都不会对功能NPC的ID进行改动。(如图所示,我们调用成功的效果,这时我们并不在打开的NPC附近)
其实通过这个办法,我们还可以得到很多的其他功能,因为服务器验证比较弱,所以远程NPC对话等功能是都可以实现的,这里就不一一展示了。
快速回复
限100 字节
批量上传需要先选择文件,再选择上传
 
上一个 下一个