前言

本文中博主使用IDA Pro简单分析并反编译了 Windows 扫雷 (winmine.exe),请注意:反编译不可能获取源代码!

Windows 扫雷是一款内置于 Windows XP 操作系统里的小游戏,博主小学的时候曾经玩过,不过就连初级都没有通关过(现在也一样 T_T)
扫雷

正文

话不多说开始操作。首先打开 IDA 进入主界面并分析 winmine.exe。ida

修正数据

跳到data段,将有很长的空白数据的位置合并为数组 (快捷键:小键盘*号)(字符串合并为字符串数组 Alt+A)
合并数组
同时,需要对一些变量类型进行修复。比如说明明占用四个字节但是却显示为byte的变量,就要修改为int

分析代码

处理完数据后,去start函数找到main函数并将声明写出来,别忘了去函数中修改声明。WinMain

接下来定位到WinMain函数,分析主窗口的消息处理。跟进去将数值替换为WM_xxxx的宏。然后分析代码,将能理解的代码改写为自然语言。分析代码
感觉分析的差不多之后,就可以按Ctrl+F5导出C代码了。同时使用Resource Hacker导出一下数据文件。

处理后续

进入VS开一个新项目,将资源文件复制进去编译,根据输出的错误处理资源文件。

将代码复制进去并把ida自带的defs.h加入到项目中。
然后开始修代码

成果(

最后修改:2023 年 11 月 10 日
如果觉得我的文章对你有用,请随意赞赏