【游戏逆向】《天堂2》send及喊话函数分析

我们想通过发包函数,来找到明文包,一般都是通过走路函数进行下断的,因为下F2断点之后直接点击游戏窗口可以让操作延时降到最低,但是有些游戏通过走路下断是无法得到与其他函数公用的带有明文的函数的。以《天堂2》为例我们来对send及喊话函数进行分析。

首先在send函数上下F2断点并进行走路,游戏断下,这时我们观察send函数的返回地址(如图)
在这里插入图片描述
执行到返回后可以得到调用send函数的代码,而在这里下断之后,做其他的动作游戏是不会断下的(如图)
在这里插入图片描述
接下来我们通过喊话功能在send头部下断,游戏断下后,我们发现send函数的返回地址发生了变化(如图)
在这里插入图片描述
执行到返回后我们来到了一个被VM的函数中,这里想直接通过快捷键执行到返回是很难的(如图)
在这里插入图片描述
于是我们通过堆栈窗口中跟随EBP,直接返回到栈底处,这样就可以看到返回地址所在的位置(如图)
在这里插入图片描述
直接回车来到返回函数中,这里进行下断之后喊话功能会断下(如图)
在这里插入图片描述
进入函数内部后发现这里的函数头部是被VM的,不过我们在这里下断是可以断到游戏中大部分函数的(如图)
在这里插入图片描述
下面回到喊话函数处,对函数进行分析,发现这里的参数非常简单,其中的第一个参数来源于[engine.dll+BD6694]+48,第四个参数是存放喊话内容的结构体,编码方式是UNICODE型,第五个参数是喊话类型,其余两个函数是常量。(如图)
在这里插入图片描述
这样我们就讲游戏的喊话函数分析完了,而在这里进行调用显然要比send处调用容易的多。这里关键就在于当无法通过走路功能进行分析的时候,能否想到通过其他的功能进行尝试。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

douluo998

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值