功能实现:竖排种植
简单猜测
若 拖动卡片 且 点击种植
则 触发种植call
猜测来由:点击种植必定需要知道是什么类型的植物,以是可以由 放下时ID 可以逆推种植CALL(实际上由种植CALL调用ID-CALL)
主要思路
1. 找放下时ID
详细:拖动卡片,会初始化一个数据,暂命名为 拿起时ID;点击种植,也会初始化一个数据,暂命名为 放下时ID(提示:ID怎么来?看植物图鉴,从0开始自左至右,自上而下!提示2:一个ID临时数据只对应当前的第x棵植物)
2. 找放下时ID的初始化代码
详细:对 放下时ID 这个数据,查找什么访问了它,种下一颗植物,这个时间盯着看 增加的代码集,找出 mov [ebx+24],esi 等类似字样,可以很大概率断定为 初始化代码
3. 找外层CALL
详细:连续两次下断,依次跳到ID-CALL层、种植CALL层
4. 分析种植CALL参数
详细:依次为-1、植物ID(具体指针为6A9EC0+768+138+28)、Y坐标、X坐标、某个基址(可以是卡槽耐久二级指针,具体为6A9EC0+768+AC)
5. 添加脚本
详细:这里只需要设 植物ID 是动态的,Y坐标分别为0~4,X坐标和某个基址由代码确定,不消管
具体代码如下:这只是第一行,若要种植5行,需要修改 植物Y坐标 并重复添加这段代码到CEAA脚本
[Asm] 纯文本查看 复制代码push ebxmov ebx,[006A9EC0]mov ebx,[ebx+768]mov ebx,[ebx+138]mov ebx,[ebx+28]mov eax,ebxpop ebxpush 0xffffffffpush eax // 植物IDmov eax,0 // 植物Y坐标push edi // 植物X坐标push ebp // 某基址call PlantsVsZombies.exe+D120
分析过程
找放下的ID的访问代码集,如下图
找类似 [ebx+24],esi 的初始化代码,进入反汇编,如下图
找外层CALL,找种植CALL,如下图
实际效果,如下图
最后总结
反正一句话,只有想不到没有做不到,要敢于猜测简单逻辑或叫做步伐逻辑,然后找初始化大概叫做先遣值,从而从上往下找。下次为 找子弹跟踪
来源:http://www.12558.net
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |