cheat engine 查找血量地址规律
最近在做软件安全与漏洞分析的一个小作业的时候,用到了这个软件,觉得有必要记录下来。
老师给了一个攻击小老鼠的游戏,点击attack,小老鼠的血量会减少。让我们开发一个小工具来锁定小老鼠的血量。
我们知道对于单机游戏而言,游戏中的参数基本存在计算机的堆栈里。这个题目中的小老鼠的血量也应该存在进程中的某个地址里。
首先打开小老鼠的游戏,接着打开cheat engine,选择小老鼠的进程打开。
可以看到小老鼠的血量是90.
所以我们在cheat engine输入90,来扫描一下,看看哪些地址的变量值为90,可以看到右边有这几个地址值为90。
我们现在再点击attack,得到如下结果。可以确定这个红色的地址是保存着小老鼠的血量,我们双击这个地址,会看到下方框中有了这个地址。
右键点击这个地址,选择箭头标的这个。看看是什么地址写了这个地址。
然后会弹出一个框,选yes,接着还有一个空空的大窗口。这时我们再点击attack,会发现窗口中多了一个地址。
双击上面那个地址,会弹出一个信息框。我们就知道这个地址的偏移地址是esi+0000000BC,然后我们记录下这个ESI的值,为0012FD60。
接着我们回到原来的窗口,在搜索栏输入esi的地址,0012FD60,并选中前面的hex。点击newscan没有什么东西,再点击first scan,可以看到右边多出了好多地址。然后我们注意看,其中有个绿色的,说明这个地址是基址,同样双击这个基址加入下面的方框中。
在下面的方框中,我们再双击这个地址。有如下界面
再点击pointer。这里是添加指针。指针的基地址为下面方框显示的00571128,偏移量是刚刚得到的BC。点击ok。这里的00571128实际上也可以表示为程序基址+171128,就像上面的绿色字写的那样。这两个表示的东西是一样的。
接下来我们再点击attack,会发现这两个地址的值都变化了。而且我们也可以看到我们的指针指向的地址和上面的那个是一样的。所以我们找到了血量地址的规律。
因此我们得到了小老鼠血量可以表示为=[ [程序基址+0x171128] + 0xBC ]