12558网页游戏私服论坛

 找回密码
 立即注册
游戏开服表 申请开服
游戏名称 游戏描述 开服状态 游戏福利 运营商 游戏链接
攻城掠地-仿官 全新玩法,觉醒武将,觉醒技能 每周新区 经典复古版本,长久稳定 进入游戏
巅峰新版攻 攻城掠地公益服 攻城掠地SF 新兵种、新武将(兵种) 进入游戏
攻城掠地公 散人玩家的天堂 新开 进入游戏
改版攻城掠 上线即可国战PK 稳定新区 全新改版,功能强大 进入游戏
少年江山 高福利高爆率 刚开一秒 江湖水落潜蛟龙 进入游戏
太古封魔录 开服送10亿钻石 福利多多 不用充钱也可升级 进入游戏
神魔之道 签到送元宝 稳定开新区 送豪华签到奖励 进入游戏
神奇三国 统帅三军,招揽名将 免费玩新区 激情国战,征战四方 进入游戏
龙符 三日豪礼领到爽 天天开新区 助你征战无双 进入游戏
王者之师 免费领豪华奖励 免费玩新区 6元送6888元宝 进入游戏
查看: 485|回复: 0

植物大战僵尸之无限种植

[复制链接]

60

主题

60

帖子

130

积分

实习版主

Rank: 7Rank: 7Rank: 7

积分
130
发表于 2019-8-19 11:01:13 | 显示全部楼层 |阅读模式
植物大战僵尸分析练习,第三篇。
本次想要实现的功能是无限种植,即一块方格上可以无限种植植物。
准备


  • 系统:Windows 10 x64 专业版
  • 软件:植物大战僵尸中文版
  • 工具:CheatEngine v6.8.2、吾爱破解专用版OllyDbg
  • 目标:无限种植
分析

整理思路,想要实现目标,需要寻找的有:

  • 植物种下代码。
  • 该方块是否可以种植。
以阳光值为切入点,定位当前阳光值地址。

找出修改该处阳光值的指令。

我选择第一条mov指令进行分析。
记录该指令地址,使用OD附加游戏进程(此时需要退出CE)。
跳转到该地址,该指令所在函数功能很简单,就是修改阳光值。
0041BA60    56              push esi0041BA61    8BB7 60550000   mov esi,dword ptr ds:[edi+0x5560]0041BA67    8BD7            mov edx,edi0041BA69    E8 12FFFFFF     call Plants_v.0041B9800041BA6E    03C6            add eax,esi0041BA70    3BD8            cmp ebx,eax0041BA72    7F 0C           jg short Plants_v.0041BA800041BA74    2BF3            sub esi,ebx                              ; 减去所需的阳光值0041BA76    89B7 60550000   mov dword ptr ds:[edi+0x5560],esi        ; 减少当前阳光值指令0041BA7C    B0 01           mov al,0x10041BA7E    5E              pop esi0041BA7F    C3              retn下断,运行到上一层函数,对周围进行简单分析,可以猜测这里是植物种下代码逻辑。
0041083C    8B85 8C000000   mov eax,dword ptr ss:[ebp+0x8C]00410842    80B8 14080000 0>cmp byte ptr ds:[eax+0x814],0x000410849    75 33           jnz short Plants_v.0041087E0041084B    8BB5 38010000   mov esi,dword ptr ss:[ebp+0x138]         ; 猜测-esi的值为植物栏对象的地址00410851    837E 30 01      cmp dword ptr ds:[esi+0x30],0x100410855    75 27           jnz short Plants_v.0041087E00410857    8BC5            mov eax,ebp00410859    E8 F2B50000     call Plants_v.0041BE500041085E    84C0            test al,al00410860    75 1C           jnz short Plants_v.0041087E00410862    8B56 2C         mov edx,dword ptr ds:[esi+0x2C]00410865    8B46 28         mov eax,dword ptr ds:[esi+0x28]          ; 取得植物位置指令00410868    8BFD            mov edi,ebp0041086A    E8 71D20000     call Plants_v.0041DAE0                   ; 0x0041DAE0-获取当前需要减少的阳光值0041086F    8BD8            mov ebx,eax00410871    E8 EAB10000     call Plants_v.0041BA60                   ; 0x0041BA60-减少当前阳光值00410876    84C0            test al,al00410878    0F84 D4060000   je Plants_v.00410F52找到的第一个小目标,现在确定种植判断。
运行到函数返回,可以找到函数调用位置。
004121FE    8B4D 0C         mov ecx,dword ptr ss:[ebp+0xC]00412201    8B55 08         mov edx,dword ptr ss:[ebp+0x8]00412204    51              push ecx00412205    52              push edx00412206    57              push edi00412207    8BCB            mov ecx,ebx00412209    E8 22DBFFFF     call Plants_v.0040FD30                   ; 0x0040FD30-种植植物函数0041220E    E8 0DC3FFFF     call Plants_v.0040E520从种植函数入口进行分析,寻找关键跳转。
0040FE25    57              push edi0040FE26    53              push ebx0040FE27    55              push ebp0040FE28    E8 F3E1FFFF     call Plants_v.0040E020                   ; 判断该方块是否可以种植植物0040FE2D    85C0            test eax,eax0040FE2F    0F84 1F090000   je Plants_v.00410754                     ; 跳转为可种植这里就是游戏对方块是否可以种植进行判断的代码。
两个所需的位置已经确定,想要实现无限种植,只需要对跳转代码进行修改,或者进一步分析判断函数。
最后实现效果。


来源:http://www.12558.net
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
楼主热帖
回复

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|12558网页游戏私服论坛 |网站地图

GMT+8, 2024-4-29 16:09 , Processed in 0.140625 second(s), 31 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表