鑫郁飞

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 499|回复: 0

任鸟飞谈逆向----《天涯明月刀》漏洞之御风神行

[复制链接]

管理员

Rank: 9Rank: 9Rank: 9

阅读权限
200
积分
109433
精华
71
主题
150
帖子
167
分享
0
日志
0
在线时间
56 小时
最后登录
2018-6-17
注册时间
2016-11-22
听众
0
收听
0
发表于 2018-1-17 13:30:53 | 显示全部楼层 |阅读模式
御风神行是《天涯明月刀》里很常用的一个技能,可以用来在各大地图的传送点之间相互传送而不需要经过车夫,虽然冷却时间很长,但是非常实用。但是想去到某个传送点必须要先点亮这个传送点,也就是说要跑到传送点附近才可以。但是通过协议漏洞却可以达到无需点亮,传送到各个传送点。协议的明文很简单,只需要传递一个地图ID和一个传送点ID即可。那么我们就需要得到传送点的遍历,将名字于ID相互关联。
接下来我们分析下传送点遍历,这里有两种常见的突破口,第一种是通过传送CALL,分析参数来找到基地址,第二种是通过传送点名字来分析。
我们选择第二种,通过名字来分析,首先CE搜索UTF-8型的传送点名字,得到一个可以改变名字显示的地址(如图)


OD下访问断点,再次访问传送点游戏断下,通过几次返回,分析地址来源,我们发现这里有一些被VM的代码,所以要结合CE扫描去跳过VM代码(如图)


绕过VM之后就很容易找到基地址了(如图)


最终我们得到了公式如下
[[[[基地址]+244]+c]+2c*n]+0传送点ID2
[[[[[基地址]+244]+c]+2c*n]+4传送点地图ID
[[[[[基地址]+244]+c]+2c*n]+c传送点X坐标
[[[[[基地址]+244]+c]+2c*n]+10传送点Y坐标
[[[[[基地址]+244]+c]+2c*n]+1C]传送点名字
[[[[[基地址]+248]+c]+74*n]+0传送点ID1
[[[[[基地址]+248]+c]+74*n]+4传送点ID2
因为我们主要讨论的是漏洞部分,所以分析遍历的过程进行了一定的省略,了解方法即可。得到了传送点的名字,ID,所在的地图ID就可以通过御风神行来传送到任何一个想去的传送点。当然这里是否有检测,还需要经过大量的测试来得到结果。

关注公众号  任鸟飞逆向

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|鑫郁飞网络科技有限公司 ( 渝ICP备16011958号-1 )

GMT+8, 2018-6-24 07:03 , Processed in 0.059695 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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