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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33958297/article/details/82746258

一.效果

二.思路

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

三.实现

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

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

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

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

断在了函数首部

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

主要注意test 和cmp

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

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

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

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

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

有几个测试的办法

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

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

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

四.总结

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

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

 

猜你喜欢

转载自blog.csdn.net/qq_33958297/article/details/82746258