吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 20006|回复: 54
上一主题 下一主题
收起左侧

[游戏安全] 植物大战僵尸基本修改器的制作思路

  [复制链接]
跳转到指定楼层
楼主
sky27076 发表于 2019-8-6 21:21 回帖奖励
本帖最后由 sky27076 于 2019-8-6 22:02 编辑

          直接先放出游戏的版本和修改器吧。
          链接: https://pan.baidu.com/s/1gDMGOncNva-38emRHw5n8Q 提取码: mdnw
          游戏的版本和相关环境介绍在我前帖子里有介绍。https://www.52pojie.cn/thread-1003887-1-1.html


     今天主要说说思路的问题!
     1.修改阳光
  可以直接上CE,找到阳光的地址,然后找到基址。至于说怎么找基址,我就不多说了,毕竟这又要说上很久。
  要是实在不会,就去练习下如何使用CE,这是基本功。
  我找到的基址是0x779618,当然一共有四个,我只是选取了这一个而已。再就是两级偏移,分别是0x868,0x5578.
  所以修改阳光就简单了。
     先打开进程,然后读取两级偏移,这个可以写个封装的读取函数,最后就是写到内存了。
     修改金钱和这个是差不多的,基址还是这个,偏移分别是0x950,0x50
   

     2.解除冷却
    冷却时间的查找,种下一棵植物,CE找未知的初始值或者两者间的int值,0到10000就够了,然后回到游戏,
再切回CE找增加的值,如果冷却了就找0,最后会找到几个地址。来回切换观察一下,就会找出你想要的结果
这个值好像在800以内,0表示冷却了。
     然后找出是什么改写这 个地址的值。查看汇编代码,可以看我到我NOP掉的原来那几行指令,就是载入
冷却时间,然后作出比较,再判断是否冷却。这里有多种改代码的方法,我是直接把mov计时的值给NOP了。
自己可以尝试下怎么修改可以达到效果而不出BUG。写程序的时候,直接按自己的想法去修改就 可以了。禁用冷却
清零就把代码改回原始代码就行了。



    3.秒杀
   秒杀就是找怪物的血量值,分为普通的僵尸和带装备的僵尸两种,分别用置零指令替换掉,
就可以达到秒杀和秒掉装备的效果。比如带装备僵尸的扣血指令是sub ecx,eax
就可以用sub ecx,ecx或者xor ecx,ecx替换掉就 可以了。


    4. 阳光出产的速率
   种下一棵向日葵,找出存放是否可生产出阳光的计时值的地址。其实和找冷却一样的原理。
找到以后找出改写的指令。如修改秒杀一样成xor eax,eax就OK了。


    5.自动拾取
    阳光的出产速率为0以后,会出现大量的未拾取阳光,所以修改了出产的速率一会后,一定
记得要把出产速率还原。要不程序会有太多未拾取的阳光最后程序应该会崩了。我是这样觉得,
没有尝试,有兴趣的可以去试下,哈哈。
     这个可以先CE找到阳光值的地址,再找是什么改写了,找到正确的代码后,关掉CE,用OD附加。
可以找到是否拾取阳光的判断,未拾取就不停的播放阳光动画,拾取就是另外一低点call。这个直接
改为条件跳转就可以了。
     我没有用OD截图,其实反汇编OD和CE的是差不多的,可以找到在OD中如多截图的那一行指令,
无条件跳转就可以自动拾取了。我这是修改后的截图。

  
      6.后台运行
     
     游戏只要一切换到其它的悬浮窗口或者窗口,游戏就会自动暂停。思考一下,游戏正在运行,可以给定
值为0或者1,切换出游戏,则会变成1或者0,这样就 可以用CE来搜索。通过搜索最后发现0为正在游戏中,
1为处 在非游戏窗口。对存放这个值的地址找什么改写了这个值。找到相对应的代码后,用OD附加。在OD中
跳转到该地址。



   显然这个call就是判断游戏是否为活动窗口的,所以找到开始的地方。
注意下面 的提示:



直接跳到提示的地方,观察上面的代码

看到了没有?有一个JCC指令作判断用的,直接无条件跳转即可。我是修改后的截图。
是灰色显示的。
      

    我最后测试了一下,后台运行,好像不可以最小化,这个说明还不完善。只能是打开游戏窗口后,

直接点击别的窗口为活动窗口来切换,这样后台是有效的。有兴趣的自己去完善吧。

     至此,这些功能就可以基本实现了。但是这些功能,应该用DLL会简单的多了,我能力有限,
怕做不出来那个效果,只有先加强学习了。
     路漫漫其修远兮。与君共勉!



免费评分

参与人数 8吾爱币 +12 热心值 +7 收起 理由
duan15 + 1 + 1 用心讨论,共获提升!
liuwuxin6 + 1 我很赞同!
Hmily + 6 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
陌上人 + 1 + 1 谢谢@Thanks!
花花冷月葬花人 + 1 用心讨论,共获提升!
18205102200 + 1 + 1 热心回复!
lin_xop + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
motocn + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
 楼主| sky27076 发表于 2019-9-10 00:07 |楼主

hhttps://pan.baidu.com/s/1pmawOn-2zm8zwCUhh_tnZw
推荐
 楼主| sky27076 发表于 2020-11-27 23:11 |楼主
gxz888 发表于 2020-11-27 11:58
链接: https://pan.baidu.com/s/1RoObAqXA-Vn1aiGnxZjv4A 提取码: 52np 复制这段内容后打开百度网盘手机App ...

我没有深入的修改,下载了之后,用CE随便找了下,就能直接找到阳光地址,这个用我说的这个思路,应该是可以直接做出来的。即使做不了,你只要CE用的还行,也不影响你修改的啊。写一个修改的程序,不过是节省是每次开游戏找地址的时间而已,这个用CE也可以保存地址表的,不过要用基址+偏移去保存
沙发
computersaysno 发表于 2019-8-6 21:32
3#
王以师 发表于 2019-8-6 21:41
666  童年回忆啊  这都有 收了
4#
 楼主| sky27076 发表于 2019-8-6 21:43 |楼主
liphily 发表于 2019-8-6 21:41
我喜欢你的头像,妹子嫁我可好?
我想问问取消暂停的修改。
当我去点CE的时候,游戏立即就自动暂停了。怎 ...

在CE里面进行热键设置,处在游戏中的时候
可以用热键进行搜索而无须切回CE窗口。
5#
lsy832 发表于 2019-8-6 22:06
记得第一次写单机就是大战僵尸,那会用易确实简单
6#
 楼主| sky27076 发表于 2019-8-6 22:14 |楼主
易要忘记的差不多了,主要是不记得那些模块中的命令怎么调用了
7#
閒雲野鶴 发表于 2019-8-6 23:01
路漫漫其修远兮。与君共勉!
8#
churen52 发表于 2019-8-6 23:22
楼主一看也是浸淫PVZ多年的大佬了,莫不成你就是植吧头号程序员?
9#
 楼主| sky27076 发表于 2019-8-6 23:29 |楼主
我还真不是,这个游戏才下载了两三天时间
10#
zkxxx 发表于 2019-8-6 23:57
认真学习了。。。。。。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-21 22:40

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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