起因
最近植物大战僵尸杂交版玩的入迷,写了一个"神奇"小工具,来辅助游戏。用Git新建一个库,想把代码备份到GitHub,结果push错库了,无奈reset,结果把本地项目一起reset了,结果就是源代码丢失。。。
思路
1.重新循着当时的思路,重写代码。
2.逆向分析成品exe,找寻关键信息。
过程
反编译
幸而保留了编译后的exe成品,用ida打开。
![](https://img-blog.csdnimg.cn/direct/40cec3114997438e95cf8d74f3bf0226.png)
定位关键函数
先找到导入表的关键定位函数:WriteProcessMemory。
![](https://img-blog.csdnimg.cn/direct/d3da258489174da2996d1820acfd21c1.png)
再查找交叉引用,终于定位到关键函数。
![](https://img-blog.csdnimg.cn/direct/d1f86c2227eb40bdaed902bcb04496cc.png)
LPVOID类型的参数,和416C00的参数,就是关键值。
还原代码
![](https://img-blog.csdnimg.cn/direct/34b08c807ba346a2a192d8ca0085d5db.png)
程序是用freeBasic所写,观察现有源码,可以确定只需要从ida里吧关键参数抠出来,就大功告成。
![](https://img-blog.csdnimg.cn/direct/2c081fdf28b24580a9c2a174277d773c.png)