继续通关,这一关其实说难不难,说容易不容易,指针套指针,一套又一套。
先上题目
步骤 8: 多级指针: (密码=525927)

在这一步将解释如何使用多级指针。
在第 6 步,你已经清楚 1 级指针的概念和用途,并可以利用数值的首个地址找到存放数据真正的基址。

在本关中,你将看到 4 级指针,它由第一个指针指向第二个指针,再由第二个指针指向第三个指针,由第三个指针指向第四个指针,最终指向健康值的真正地址。
开始的几步与在第 6 步中的操作基本相同。找出是什么访问了这个地址,然后分析汇编指令,查找指针地址中的数值,以及它的偏移量,将它们记下来。但这次你按数值找出的仍然是一个指针,你得依据这些数值,使用同样的操作方法找出指向这个指针的指针。看看是什么访问了你发现的那个指针地址,分析汇编指令,留意可能的代码和偏移量,并加以利用。

持续这种过程,直到不能更进一步查找为止(通常基址为静态时,地址将以绿色标示)。

点击'改变数值'改变健康值,如果你发现列表中那些指针地址所指向的值发生同样的变化时,那表示你可以试着将基址中的值更改为 5000,并锁定它,以便完成本关的任务了。

备注1: 本步骤也可以使用自动汇编程序脚本或者使用指针扫描器加以解决。
备注2: 在某些情况下,可以改变 CE 软件"代码查找"的相关设置。

当你遇到类似于 mov eax,[eax] 的指令时,调试程序将显示改变之后的寄存器中的值,也许利用它更容易找出指针的位置。

备注3: 你还在读?!当你查看汇编指令时你可能已经注意到,这些指针是在相同的代码块(相同的程序,如果你懂汇编,可以查看程序的起始代码)位置被读写。这种情况并不总会发生,但是当你在查找某个指针遇到问题的时候,没准能起到很大的用处。

这道题为4级指针,其实跟我们前面的6指针类似,只是需要继续操作几步即可完成。

步骤:首先先进行扫描值,之后选择什么改写了这个地址,再然后改变一下数值,选择详细信息。多级指针
记录下来偏移量为18,,然后进行搜索(搜索值为0x0156E558(这个值为你搜索的地址)-0x18)多级指针,搜索出来一个值选择查看什么访问了这个量然后改变数值,发现出来两个量,但是我们要的为第一个,然后它的偏移量为0,记录下来,继续搜索,搜索这个值(0x014D1790-0x0)就是地址加上偏移量。我得到了3个量,但是应该是一个的,不过索性问题不大,挨个选择查看什么访问了这个地址后不断改变数值,发现只有第三个有数值显示,记录下来偏移量为18,然后继续搜索(0x0153DB28-0x18)发现指出来一个值,同上一步,得到偏移量为10,在进行搜索,得到了一个绿色地址 多级指针
我们把它的地址复制下来,("Tutorial-x86_64.exe"+306B00)点击手动添加指针,然后多级指针
然后确认得到所需地址p->xxxxxxx,激活他并修改数值即可通关。
其实这一关还是有一些难度的,并且过关方法不定,我这个肯定还是麻烦一些的,但是我当时还学会了一个简单的,到时候会增加一篇补充说明的

最后修改:2021 年 04 月 20 日 04 : 11 PM
如果觉得我的文章对你有用,请随意赞赏