您的位置:首页 > 其它

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

2013-09-27 21:05 288 查看
转自:http://blog.163.com/wang_ly2442/blog/static/94943407201382784112698/

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

用VC从一个exe文件中拿到资源文件方法如下:

1. 用VC打开文件



2.找到C:\WINDOWS\system32\winmine.exe,注意,这里点击“打开”右边的向下箭头,用“Open with”打开winmine.exe



3.用Resource Editor打开



4. 看到资源列表



5. 打开一幅位图可以看到



而从 https://github.com/luoshupeng/MineSweeper 下载的工程,用VC打开后,看到的资源布局和每个资源的内容,竟然和winmine.exe里面的资源惊人的一致!于是推测,前者是直接使用了后者的资源,然后自己写的程序逻辑。MineSweep的Release版exe大小为161K,winmine.exe大小为117K,二者大小相差也不是很大!

事实上,用上述方式打开winmine.exe后,如果没有选“只读”方式打开的话,是可以在VC中直接修改二进制资源的,比如将版本号换掉,将作者名字换掉等,然后保存即可。下次人家再运行winmine.exe的时候,看到的作者就是修改过后的作者名了,而你却一行代码也无需修改!

【yasi】

当然,既然已经知道了这个修改资源的“漏洞”,那么我们是可以预防资源被别人恶意修改的,比如给exe“加壳”,这是后话了。感兴趣的同学可以查看
加壳与脱壳的原理
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: