C++程序反编译笔记(8) 扫雷 链接错误
以下是要解决的链接错误


一 静态链接库
前两个很好解决, 没有链接库函数的静态库而已, 只需要这样:


二 数组未定义

这里只是声明了一个字符数组, 并没有定义. 在IDA 中查看它:

既然它是数组, 那么它不可能只有一个元素, 并且紧接着的变量是unk_开头的, 表示类型不确定. 那么, byte_1005340肯定与下面的unk_变量是一体的.应该把byte_1005340的类型定义为char[32], 并把unk_1005341去掉, 使用unk_1005341的地方替换为byte_1005340:

还有两个也是同理:


将align 40h部分加入到数组中, 每个数组变成16个元素.

WinMain 丢失
前面已经分析过了, start函数中调用的sub_10021F0就是WinMain函数.因此, 我们只需要将它和它的参数重命名就行了. 最好是同时在Visual Studio和IDA中同步修改.



运行
解决了所有的编译错误和链接错误, 就能运行程序了, 试试看:

弹出了一个错误框, 很不错了. 接下来就需要解决逻辑错误了.

