软件破解逆向安全(四)call应用

我们在定位关键call的时候,我们可以根据相关数据来定位我们想要找到的call。今天我们来看看与植物种植有关的call。但我们想要找到与种植植物数据那是很难的,所以我们通过定位相关数据来寻找种植call。

什么与种植植物数据相关呢个是种植的数量会增多,还有一个是阳光的数量会减少。观察一下这两个,很明显是种植数量增加更好跟一些。我们用ce附加植物大战僵尸进程,然后我们种几个植物后找一下植物数量的动态地址。

软件破解逆向安全(四)call应用

这里我们跟进第一个,因为后两个看数据访问的时候是空的。我们也可以去找静态地址来确定这个就是植物数量的动态地址。这个方法和找阳光的静态方法一样的,重温一遍。

软件破解逆向安全(四)call应用

去定位esi

软件破解逆向安全(四)call应用

找到第一个偏移868,然后跟下edi

软件破解逆向安全(四)call应用

发现绿色的静态地址。我们还知道两个偏移,所以我们可以得到种植数量的地址。

软件破解逆向安全(四)call应用

这样就可以确定此时的28a75248是种植数量动态地址。接下来我们用od附加植物大战僵尸,查看一下内存

软件破解逆向安全(四)call应用

我们在这里下一个内存写入断点,当我们种植物的时候程序发生了中断,我们点击右上的K,显示调用堆栈,发现很多,但重要的是前三个写入了这,相当于调用了这里,我们跟进前三个并且去下个断点

软件破解逆向安全(四)call应用

软件破解逆向安全(四)call应用

软件破解逆向安全(四)call应用

然后我们取消刚下的内存访问断点,运行程序,并种植一个植物,发现三个地方都断了,我们要排除一下,首先要知道,拉下植物右键时候是把植物放回卡槽,不是种植植物,但我们右键的时候有一个地方被断了,很明显不是种植的call了,所以我们把这个断点取消了。接着分析其他两个。然后我们种植一个去看看断哪了。

软件破解逆向安全(四)call应用

上面有挺多push的,应该是挺重要的,我们在上面的jnz下面下个断点,去分析各个传参是什么,我们再重新种一个(下面还有一个断点,但我们如果分析明白这个了,就不用管这个了)。

软件破解逆向安全(四)call应用

edx是ffffffff,eax是1,ecx是0,edi是28a75180,执行完mov后eax变成了0,一次看不出什么,我们在别的地方再种一个,看看有什么变化。

软件破解逆向安全(四)call应用

edx是ffffffff,eax是0,ecx是1,edi是28a75180,执行完mov后eax变成了2,这次我们比对一下。我第一次种植的向日葵,第二次种的豌豆,所以eax应该是植物的ID,根据种植的位置,我们可以看出来,ecx是横坐标,mov给eax的是纵坐标。

edx是个不变的ffffffff,edi是个变值,我们要怎么确定呢/p>

软件破解逆向安全(四)call应用

(重启后edi变成2B20FCB0了)

先在od里运行植物大战僵尸然后detach,我们要去ce里找2B20FCB0,发现很多,同找阳光一样,慢慢去找

软件破解逆向安全(四)call应用

软件破解逆向安全(四)call应用

 

发现这个,去跟踪一下edi

软件破解逆向安全(四)call应用

发现静态地址,我们就可以得到我们edi的地址。

edi = 读内存整数型(基质+768)

软件破解逆向安全(四)call应用

后面的数转为16进制就是edi的地址了。

至此,我们差不多找到并分析完毕了种植这个call了,我们还是要灵活运用,想想如何分析别的模块或者别的游戏,这样我们才能学有所成。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

来源:孤客浪子

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年10月14日
下一篇 2020年10月14日

相关推荐