百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

通过调试游戏,了解64位汇编指令(二)

liuian 2025-03-12 16:46 24 浏览

之前我们在分析游戏的内息值时得到了一个CALL的返回值,那么接下来我们到CALL去寻找一下这个返回值的来源,并对遇到的汇编指令进行讲解(如图)(什么?你不知道是哪个CALL?请将上一篇文章看一遍~~~)

在CALL的位置下F2断点,我们发现这里不需要修改内息,游戏直接就会断下。于是我们在+178偏移和CALL的返回处分别下F2断点,看一下eax的值是否相同(如图)(如图)

通过两幅图对比,发现之前的r12和返回的eax是相同的。有人会说,这不是多此一举么,直接去CALL里分析好了。其实这么做是为了防止CALL内部出现遍历代码,而附近有有其他的对象被频繁访问,导致返回的eax并不是我们要分析的角色对象r12。

接下来我们在返回处重新下F2断点,并多次点击F9,我们发现大部分的情况下都是返回的角色对象,只有个别的情况会返回其他的数值,这也就说明了这里是有遍历的,但是角色本身会被大量访问(由于周围的对象过少,想断到非角色对象很难,所以就不截图了)

接下来我们在CALL下F2断点,并点击F7进入CALL的内部继续分析来源(如图)

这里是CALL内部的头部,我们继续点击F8,走到CALL的retn处(如图)

我们需要从这里继续向上分析rax的来源。点击减号来逐步后退,这样可以原路返回去分析来源,防止跳转过多影响我们的分析过程。

首先可以得到mov rax, qword ptr [rcx + 8]

这里传递的是qword,得到一个+8偏移,继续点减号来分析rcx的来源。可以得到mov rcx, qword ptr [rcx]。而在上面又可以得到lea rcx, [rsp]。lea相当于传递地址而不是读指针,所以这两条的结果就变成了mov rcx,[rsp]。[rsp]是要作为一个整体去分析的,而[rsp]是在lea rcx, [rsp]的下一条被rax进行赋值的(如图)

这里的分析可能有一些绕,有32位基础的能够看得懂,如果看不懂的在后面的堆栈文章中我们会重新的进行讲解。

继续向上分析rax可以得到mov rax, qword ptr [r10 + rdx*8],这是一个标准的64位数组的代码,r10是数组的起始地址,而每一个数组元素都占用8字节(如图)

这说明我们来到了一个遍历代码中,这里不只有数组,如果仔细观察还能够发现在下面还存在一个链表(如图)

由于遇到了遍历代码,所以我们就不继续讲解这个分析过程了,在后面的文章中会重点讲解64位下的数据结构。

那么我们的分析结束了么?当然没有。由于角色是在游戏中是一个特殊的存在,他被访问的也是最频繁的,所以大部分游戏的角色对象都会单独存放在一个基地址中。所以我们尝试用CE去对之前的r12进行扫描(如图)

得到了一个绿色的地址,为了验证它是否是一个可用的基地址,我们在OD中查找常量(如图)

还没有搜索完就得到了很多的结果,说明这是一个可用的基地址(如图)

这样我们就得到了角色内息的公式[[0x496c540]+0x178] xor 0xa59cf5b6

通过这两篇文章,我们发现在整数范围内的64位汇编指令和32位大致是相同的,分析方法也是相同的,只是寄存器看起来要麻烦一些,其实也只是不习惯罢了。我们会在后面的数据分析中对这些知识进行更加深入的学习和理解。

相关推荐

搭建一个20人的办公网络(适用于20多人的小型办公网络环境)

楼主有5台机上网,则需要一个8口路由器,组网方法如下:设备:1、8口路由器一台,其中8口为LAN(局域网)端口,一个WAN(广域网)端口,价格100--400元2、网线N米,这个你自己会看了:)...

笔记本电脑各种参数介绍(笔记本电脑各项参数新手普及知识)

1、CPU:这个主要取决于频率和二级缓存,频率越高、二级缓存越大,速度越快,现在的CPU有三级缓存、四级缓存等,都影响相应速度。2、内存:内存的存取速度取决于接口、颗粒数量多少与储存大小,一般来说,内...

汉字上面带拼音输入法下载(字上面带拼音的输入法是哪个)

使用手机上的拼音输入法打成汉字的方法如下:1.打开手机上的拼音输入法,在输入框中输入汉字的拼音,例如“nihao”。2.根据输入法提示的候选词,选择正确的汉字。例如,如果输入“nihao”,输...

xpsp3安装版系统下载(windowsxpsp3安装教程)

xpsp3纯净版在采用微软封装部署技术的基础上,结合作者的实际工作经验,融合了许多实用的功能。它通过一键分区、一键装系统、自动装驱动、一键设定分辨率,一键填IP,一键Ghost备份(恢复)等一系列...

没有备份的手机数据怎么恢复

手机没有备份恢复数据方法如下1、使用数据线将手机与电脑连接好,在“我的电脑”中可以看到手机的盘符。  2、将手机开启USB调试模式。在手机设置中找到开发者选项,然后点击“开启USB调试模式”。  3、...

电脑怎么激活windows11专业版

win11专业版激活方法有多种,以下提供两种常用的激活方式:方法一:使用激活密钥激活。在win11桌面上右键点击“此电脑”,选择“属性”选项。进入属性页面后,点击“更改产品密钥或升级windows”。...

华为手机助手下载官网(华为手机助手app下载专区)

华为手机助手策略调整,已不支持从应用市场下载手机助手,目前华为手机助手是需要在电脑上下载或更新手机助手到最新版本,https://consumer.huawei.com/cn/support/his...

光纤线断了怎么接(宽带光纤线断了怎么接)

宽带光纤线断了可以重接,具体操作方法如下:1、光纤连接的时候要根据束管内,同色相连,同芯相连,按顺序进行连接,由大到小。一般有三种连接方法,分别是熔接、活动连接和机械连接。2、连接的时候要开剥光缆,抛...

深度操作系统安装教程(深度操作系统安装教程图解)
  • 深度操作系统安装教程(深度操作系统安装教程图解)
  • 深度操作系统安装教程(深度操作系统安装教程图解)
  • 深度操作系统安装教程(深度操作系统安装教程图解)
  • 深度操作系统安装教程(深度操作系统安装教程图解)
win7旗舰版和专业版区别(win7旗舰版跟专业版)

1、功能区别:Win7旗舰版比专业版多了三个功能,分别是Bitlocker、BitlockerToGo和多语言界面; 2、用途区别:旗舰版的功能是所有版本中最全最强大的,占用的系统资源,...

万能连接钥匙(万能wifi连接钥匙下载)

1、首先打开wifi万能钥匙软件,若手机没有开启WLAN,就根据软件提示打开WLAN开关;2、打开WLAN开关后,会显示附近的WiFi,如果知道密码,可点击相应WiFi后点击‘输入密码’连接;3、若不...

雨林木风音乐叫什么(雨林木风是啥)

雨林木风的创始人是陈年鑫先生。陈年鑫先生于1999年创立了雨林木风公司,其初衷是为满足中国市场对高品质、高性能电脑的需求。在陈年鑫先生的领导下,雨林木风以技术创新、产品质量和客户服务为核心价值,不断推...

aics6序列号永久序列号(aics6破解序列号)

关于AICS6这个版本,虽然是比较久远的版本,但是在功能上也是十分全面和强大的,作为一名平面设计师的话,AICS6的现有的功能已经能够应付几乎所有的设计工作了……到底AICC2019的功能是不是...

win7正在启动windows 卡住(win7正在启动windows卡住了 进入安全模式)
  • win7正在启动windows 卡住(win7正在启动windows卡住了 进入安全模式)
  • win7正在启动windows 卡住(win7正在启动windows卡住了 进入安全模式)
  • win7正在启动windows 卡住(win7正在启动windows卡住了 进入安全模式)
  • win7正在启动windows 卡住(win7正在启动windows卡住了 进入安全模式)
手机可以装电脑系统吗(手机可以装电脑系统吗怎么装)

答题公式1:手机可以通过数据线或无线连接的方式给电脑装系统。手机安装系统需要一定的技巧和软件支持,一般需要通过数据线或无线连接的方式与电脑连接,并下载相应的软件和系统文件进行安装。对于大部分手机用户来...