首页
社区
课程
招聘
[原创]植物大战僵尸阳光收集分析
2022-9-27 11:36 5416

[原创]植物大战僵尸阳光收集分析

2022-9-27 11:36
5416

1.第一次分析

在植物大战僵尸里可拾取的物品有除了阳光外还有金币,银币等等,那么如果想要实现自动拾取物品,就要了解游戏是怎样判断拾取的逻辑的。逆向分析发现,无论是阳光,金币,还是银币都有一个相同结构,我称其为item。一旦有item生成,比如掉落了一个阳光。我们点击它就会被拾取,点击它旁边的区域它不会被拾取。
ebx就是item的结构体,一旦你点击了游戏中的某个区域,游戏首先会判断ebx+0x50的位置的值,如果是0就表明你点击的区域不是item的区域就会往下执行通过下方的jmp跳过拾取的逻辑,反之就执行拾取逻辑。事实上只要把jnz改为jmp就能完美实现自动拾取。

2.继续分析pick_item

我们继续分析pick_item 具体如何实现,由于里面都是浮点数操作直接f5偷个懒吧。
结合我们的小学数学知识可以推测出,item都是被看成是一个圆形,大的item圆形半径是12,小的item是8。游戏会利用两点间距离公式计算你点击的位置到item的距离。如果item的半径大于distance就说明你点击的item就会执行additem操作就是增加item的数值(如增加阳光等)反之就跳过它。

3.总结

1 游戏利用点和圆的位置关系来判断是否真正拾取物品。


[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

收藏
点赞0
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回