游戏辅助制作核心--植物大战僵尸逆向之植物叠加种植(八)

一.效果

游戏辅助制作核心--植物大战僵尸逆向之植物叠加种植(八)_第1张图片

二.思路

方法其实很简单的 上一篇文章中已经找到了种植植物的call 那么叠加种植 应该也在附近 他肯定是一个判断 只要修改了这个判断 让他直接执行下来就可以实现叠加种植了,其实上一篇文章中使用种植call也可以实现叠加种植。

三.实现

我们来到上一篇文章中种植call的地方,到函数头的位置下断,看一下他的执行流程.

种植之前肯定要先有一个植物,不然肯定就没有办法实现叠加种植了

我这里实现是先种植了一个豌豆

第二次种植的时候 肯定要种植在刚刚种植豌豆的地方

游戏辅助制作核心--植物大战僵尸逆向之植物叠加种植(八)_第2张图片

断在了函数首部

只要不是大跳就不用管他,让他过去

主要注意test 和cmp

游戏辅助制作核心--植物大战僵尸逆向之植物叠加种植(八)_第3张图片

当我们走到这里的时候 发现一个超大的跳 应该是跳到结尾了

游戏辅助制作核心--植物大战僵尸逆向之植物叠加种植(八)_第4张图片

正好我们的跳过我们的种植函数 修改的方法有很多了 从各种跳的位置让他不跳 能正常执行进来就行

但是如果每个跳都修改的话 会很麻烦 那我们找一个只要修改一个地方就可以实现的

游戏辅助制作核心--植物大战僵尸逆向之植物叠加种植(八)_第5张图片

我们发现这个跳好像非常有价值

游戏辅助制作核心--植物大战僵尸逆向之植物叠加种植(八)_第6张图片

他正好跳过上面的位置 其实这个值想知道也很容易

有几个测试的办法

一个一个改还是比较麻烦的

因为都是种植吗 所以如果在一块空地上种植的话 那么程序肯定是会执行到种植那个函数上的

所以只要需要跟着正常种植的代码走一遍 就可以看到 他在那个je的地方进行了跳转,而其他地方都是一样的 所以我们最暴力的修改方式就是吧那个je换成jmp 这样只修改了一个字节 就实现了想要的功能

游戏辅助制作核心--植物大战僵尸逆向之植物叠加种植(八)_第7张图片

四.总结

其实做这些逆向啥的 最主要的还是耐心 如果静的下心 你会发现 很多东西 你都可以找到 也可以改 但是如果急躁 会恶性循环

本身这种逆向的工作就是反复测试 所以没有足够的耐心 确实不太容易做好

 

你可能感兴趣的:(游戏逆向)