用VC查看exe文件中的二进制资源

从上下载了一个仿Windows的扫雷程序,界面和 Windows 中的扫雷一模一样,所以推测它所用的资源文件应该是从 Windows 版扫雷程序中拿出来的。

        用VC从一个exe文件中拿到资源文件方法如下: 用VC从一个exe文件中拿到资源文件方法如下:
1. 用VC打开文件 1. 用VC打开文件
2.找到C:WINDOWSsystem32winmine.exe,注意,这里 点击“打开”右边的向下箭头,用“Open with”打开winmine.exe 2.找到C:WINDOWSsystem32winmine.exe,注意,这里 点击“打开”右边的向下箭头,用“Open with”打开winmine.exe
  3.用Resource Editor打开
 
 4. 看到资源列表 4. 看到资源列表
5. 打开一幅位图可以看到 5. 打开一幅位图可以看到
 而从   下载的工程,用VC打开后,看到的资源布局和每个资源的内容,竟然和winmine.exe里面的资源惊人的一致!于是推测,前者是直接使用了后者的资源,然后自己写的程序逻辑。MineSweep的Release版exe大小为161K,winmine.exe大小为117K,二者大小相差也不是很大! 5. 打开一幅位图可以看到 而从 下载的工程,用VC打开后,看到的资源布局和每个资源的内容,竟然和winmine.exe里面的资源惊人的一致!于是推测,前者是直接使用了后者的资源,然后自己写的程序逻辑。MineSweep的Release版exe大小为161K,winmine.exe大小为117K,二者大小相差也不是很大!
事实上,用上述方式打开winmine.exe后, 如果没有选“只读”方式打开的话,是可以在VC中直接修改二进制资源的,比如将版本号换掉,将作者名字换掉等,然后保存即可。下次人家再运行winmine.exe的时候,看到的作者就是修改过后的作者名了,而你却一行代码也无需修改! 事实上,用上述方式打开winmine.exe后, 如果没有选“只读”方式打开的话,是可以在VC中直接修改二进制资源的,比如将版本号换掉,将作者名字换掉等,然后保存即可。下次人家再运行winmine.exe的时候,看到的作者就是修改过后的作者名了,而你却一行代码也无需修改!

【yasi】

当然,既然已经知道了这个修改资源的“漏洞”,那么我们是可以预防资源被别人恶意修改的,比如给exe“加壳”,这是后话了。感兴趣的同学可以查看

经验分享 程序员 微信小程序 职场和发展