论坛内里有许多分析教程写的相称好,这个帖子仅仅作为我个人的学习记录,有写错的地方希望各人指正,谢谢!
图文关系:图片在上,文字在下,先图后文字!

我们正常打开游戏,到主界面或者进入游戏中都可以,我是在游戏选择模式界面。

我们回到游戏,我选择“冒险模式”,关卡2-7,各人自由选择。

我们回到CE,扫描类型:准确数值,数值类型:4字节,输入阳光50,点击“首次扫描”。

我们回到CE,输入游戏内里剩下的阳光 25,点击 再次扫描

我们将搜刮的数据拉到地下的列表中。

点击刚才拉到 列表中的数据,对着数据进行右键,找到右键的 “找出是什么改写了这个地点”,也可以用快捷键F6

选择 “找出是什么改写了这个地点” 会弹出提示框,选择 YES ,就会出现一个空白的弹框。
我们使用 “找出是什么改写了这个地点” 目的是看看谁在游戏内里改了 258D3A70 地点的数据,
也就是说我们现在要回到游戏内里,增加或者减少阳光,看看到底是谁改变了 258D3A70 地点的数据。
由于之前我们调试的时候,游戏是暂停的,以是我们现在继承游戏,让阳光发生变化。

按图中所示,选中CE补货的记录,点击 体现反汇编程序。

我们按图中所示,打开当前这个指令的具体信息,我们这个时候关注两个蓝色的方框中的内容。
- 第一个方框就是我们上面说的 mov指令 mov [edi+00005578],esi
- 我们可以知道,EDI = 258CE4F8,ESI = 00000019由于我们说 EDI + 5578 是地点,以是我们要回到游戏中,看看 258CE4F8 + 5578 到底能不能得到 25

已知 ESI = 00000019 ,我们打开计算器输入十六进制的19,刚好得到十进制的25,看来ESI也就是我们剩余阳光
回到最初的问题,我们想要阳光越勇越多,现在我们已经知道了edi + 5578 是阳光的地点,esi是剩余阳光,
那么问题来了,esi是怎么计算出来的呢?
现在回到反汇编程序窗口,鼠标滚轮向上滚动,我们看看在这之前 esi 发生了什么变化?

于是我们再次百度,汇编加法指令,百度说 add是加法指令,用法是 add A,B
换成实际操作是 A = A +B
我们百度知道的 sub 是减法指令,用法师 sub A,B
换成实际操作是 A = A - B
也就是说,我们只要把 PlantsVsZombies.exe.text+32F84 - 2B F3 - sub esi,ebx 位置的 sub 换成 add 好像就可以实现 阳光越用越多了。

说干就干,搞起来!! sub 改成 add ,点击确定。
  |