开局搜索当前阳光的数量
1.jpg
种植以后再次搜索
2.jpg
现在我们右键访问是谁访问了这个地址
[Asm] 纯文本查看 复制代码
0041BAB5 - 03 82 60550000 - add eax,[edx+00005560]00489825 - 8B 86 60550000 - mov eax,[esi+00005560]
我们看到有两个地址一直在访问,就拿这两个地址操作
随便选哪一个都可以,我们选择第二个
[Asm] 纯文本查看 复制代码
00489825 - 8B 86 60550000 - mov eax,[esi+00005560] //也就是这一条
我们反汇编查看代码
[Asm] 纯文本查看 复制代码
PlantsVsZombies.exe+89825 - 8B 86 60550000 - mov eax,[esi+00005560]PlantsVsZombies.exe+8982B - 33 C9 - xor ecx,ecxPlantsVsZombies.exe+8982D - 85 C0 - test eax,eaxPlantsVsZombies.exe+8982F - 0F9E C1 - setle clPlantsVsZombies.exe+89832 - 8D 74 24 4C - lea esi,[esp+4C]PlantsVsZombies.exe+89836 - 83 E9 01 - sub ecx,01 { 1 }PlantsVsZombies.exe+89839 - 23 C1 - and eax,ecx
通过下断 我们已知 [esi+5560]=当前的阳光数 然后在传递给eax
3.jpg
那就好办多了 我们直接开写代码
我们直接用CE申请一个内存
4.jpg
跳到申请到的内存
[Asm] 纯文本查看 复制代码
PlantsVsZombies.exe+89825 - E9 D6676A00 - jmp 00B30000PlantsVsZombies.exe+8982A - 90 - nop PlantsVsZombies.exe+8982B - 33 C9 - xor ecx,ecxPlantsVsZombies.exe+8982D - 85 C0 - test eax,eaxPlantsVsZombies.exe+8982F - 0F9E C1 - setle cl
我们写入以下汇编
5.jpg
6.jpg
[Asm] 纯文本查看 复制代码
mov eax, dword [esi+0x00005560] mov ebx, dword [0x006A9EC0]mov ebx, dword [ebx+0x000007FC] 物品们把 [6a9ec0+7fc] 传递给 ebx [6a9ec0+7fc]是界面判断 2=选卡界面 3=游戏界面 cmp ebx, 0x03 判断是都是3 jne label2 否则跳到label2cmp eax, 0x000000C8 判断是的是200jc label1 小于200则跳到label1jne label2 否则跳到label2 不跳则执行下面代码label1:mov dword [esi+0x00005560], 0x00002706 把2706十进制=9990 传递给 【esi+5560】cmp eax, 0x00002706 判断是都是2706jne label2 否则跳回 label2 不跳则执行下面代码mov dword [esi+0x00005560], 0x00002706 把2706十进制=9990 传递给 【esi+5560】jmp label2 label2:mov edx, 0x0048982B 跳回源地址jmp edx
可以看到 我们一开局进入游戏里面 阳关直接变成9990
7.jpg
整个教程就结束了,没解释清楚 给大家说声对不起。
看到有兄弟需要成品,我索性把以前写的源码也一直上传了。
界面大概如下:
a.jpg
b.jpg
c.jpg
d.jpg
e.jpg
f.jpg
加点分吧 几年了还没升级
zhiwu.7z2022-8-5 11:30 上传点击文件名下载附件
下载积分: 吾爱币 -1 CB