目录
1.针对“阳光值”
1.1扫描“阳光值”的内存地址,并能修改
1.2找阳光值的内存基址
1.3 画出逆向分析的思维导图,并将以说明其逆向原理
1.4实现自动收集阳光,并详细说明原理
2.针对“植物”
2.1扫描“植物”的内存地址
2.2找该植物的内存基址
2.3画出该植物的内存访问示意图或工作原理
3. 针对“金币”
3.1扫描金币的内存地址
3.2找该金币的内存基址
4.针对关(级别)
4.1扫描第1-3关或其它不同关的数据内存地址
4.2找全部关数的内存基址
第一种:精确修改阳光值
第二种:根据增加的数值或减少的数值改变阳光数
第三种:根据数值增加了或数值减少了改变阳光数
首先找到某一关的阳光的地址,然后右键选择 什么访问了这个地址,然后随便双击一个指令,出现详细信息后,图片中的5560是其偏移量,复制指针数值,(本张图片中的数值为:14E8DCC8),将其复制到CE中进行扫描,本次需勾选数值框前面的Hex框。
此次扫描完成后发现有很多结果,我们需要进行分析,寻找特殊的,分析完之后,我们发现00B4A948,以及两个0D开头的比较特殊,所以我们接下来对他们进行分析。
由于此时并没有出现绿色的静态基地址,所以我们继续搜索,方法同上。
本次搜索的偏移量为图中的768,再将其指针数值复制到CE中,进行搜索。
本次扫描结束后,我们搜索到了绿色的静态基址,但此处有四个,当我们访问某个时,其地址会随着收集阳光而发生变化,所以这个基地址就是阳光的基地址。接下来,我们双击 地址 一栏,根据上面的记录,输入偏移量,确定具体数值。
最后,重新开始游戏确认阳光值是否实现了永久锁定。
首先,我们先找到阳光的地址,右键是什么改写了这个地址,收集一个阳光,查看指令,然后显示反汇编程序,点击设置断点,后返回继续收集阳光,然后取消断点,然后调试中,点击运行,再点击执行到返回,然后向下找call 指令,然后 调试 执行到返回 ,然后向上找到如图下的位置,将jne改为jmp,这样就可以实现自动收集阳光了。
假设植物拿起时为0,放下时为1,通过不断拿起放下进行01扫描,找到植物的伪地址
打开游戏(此时游戏内有三个或三个以上的植物),在CE中选择“未知的初始值”,点击“首次扫描”。
然后在游戏中点击某一植物,但不种下;随后在CE中选择“变动的数值”,点击“再次扫描”。
不对植物进行操作,选择“未变动的数值”,点击“再次扫描”,反复进行该项操作直到发现点击“豌豆射手”后,有的值变为0,点击“向日葵”,值变为1,点击“樱桃炸弹”,值变为2。将找到的两个地址其中之一添加到下方。点击地址,右键选择“找出是什么访问了这个地址”,随机点击某一植物
在CE中勾选16进制,输入167410A0新扫描。然后把新地址16709430添加到地址栏,在地址上右键选择“找出是什么访问了这个地址”。
再搜索167092F8得到026BA368,在地址026BA368上右键选择“查看是什么访问了这个地址”
最后添加指针,点击“手动添加地址”点击指针,点击三次“添加偏移”,输入基址和偏移后点击“确定”。
将自己的金币数(除以10)输入到CE中的“数值”,并点击“首次扫描”
在商店中随便买个东西,将剩余的金币数除以10 再次输入CE中的“数值”,并点击“再次扫描”,这样我们就可以找到其地址,并可以修改它
选择 未知初始值 进行首次扫描,后改变金币数值,选择增加的数值/减少的数值 进行再次扫描。 扫描完之后,右键 选择 找出是什么访问了这个地址,然后随便点击一个,复制其地址,记住其偏移量,对其地址再次扫描,本次需勾选数值框前面的Hex框,同上 进行多次扫描,直到出现绿色静态基地址。然后点击更改地址,进行修改指针,保存后即可进行修改。
首次扫描当前关数(关卡数=1-3去掉-后减十,这里3-9对应29)
等此关过关时,开下一关时,扫描30,多次像这样重复,直到找出结果为止。
在上一步找完内存地址后,右键 选择 找出是什么访问了这个地址,然后随便点击一个,复制其地址,记住其偏移量,对其地址再次扫描,本次需勾选数值框前面的Hex框,同上 进行多次扫描,直到出现绿色静态基地址。然后点击更改地址,进行修改指针,保存后即可进行修改。