发布于:2018-9-13 14:41 | 121676次阅读 作者: 外部投稿 | 原作者: 通化程序员
邮件常常用来远程交易,这样可以节省交易时间,并且降低数据的需求。邮件遍历的分析,一般是以邮件名字,邮件数量等为突破口。不过有些游戏的邮件名字并不存放在邮件对象中,或者在对象中也不会改变邮件的本地显示,而且也没有邮件具体数量的存放地址,比如《天涯明月刀》,所以我们可以通过当前选中的邮件为突破口,来查看周围是否有邮件相关的遍历信息。 首先我们通过CE扫描出当前选中邮件相关的信息,比如邮件对象,邮件ID等等。如果用未知初始值无从下手,可以考虑通过明文发包出观察邮件的ID。扫描后得到两个结果(如图)
在OD中观察第一个地址周围的内存,发现在-24偏移处有三个地址很像数组,通过重复打开邮件可以确定这里就是邮件数组(如图) 在选中邮件ID处下访问断点,发现这里只能断到VM代码段(如图) 所以我们在上面的数组处下访问断点,游戏断下后,我们发现这里并没有VM,可以得到+30偏移(如图) 执行到返回后可以得到基地址(如图) 接下来对邮件数组中的属性进行观察分析,得到如下公式 [429D3B4]+30 数组起始地址 [429D3B4]+34 数组结束地址 [[[429D3B4]+30]+n*4]+0 邮件ID1 [[[429D3B4]+30]+n*4]+4 邮件ID2 [[[429D3B4]+30]+n*4]+18 邮件名字UTF-8
来源:通化程序员—投稿 GSLAB网站投稿文章仅代表作者本人的观点,与本网站立场无关。 *转载请注明来自游戏安全实验室(GSLAB.QQ.COM) |
最新评论
发表评论