2010-05-03 142 views
1

我有很多可执行文件,我已经编译(很久以前),其中许多我现在没有源代码。但是当我编译它们时,我没有为它们设置任何图标,所以它们看起来都像是一个沉闷,秃顶的默认图标。所以我的问题是,是否可以在不重新编译的情况下更改exe的图标?

(1)我有可能编写一个软件,可以更改EXE的资源部分,并改变它的外观?如果是这样,任何人都可以将我指向它解释的位置? (我是一个初学者,我不知道的EXE格式和所有) 也有趣的是不断变化的图标没有重新编译一切只是为了图标的变化的痛苦...

(2)这是提高一个自然的逆向问题,是否可以将某些文件使用的图标剔除并用于其他文件? (如果是这样,PLZ指向我的位置,我可以得到一些细节。

我是一个C/C++开发人员和我期待的Windows平台上的解决方案...

问候, 微内核

回答

5

它可以读取和EXE或DLL文件写resoures阅读资源很容易(ISH) - 只需使用LoadLibraryEx(LOAD_AS_DATA_FILE)至加载它,然后你可以使用标准资源API来枚举资源,所有这些记录在MSDN上。

写入资源也可以使用UpdateResource API和相关函数完成。

您应该记住,更改某人EXE文件的资源会使任何签名无效。另外,取决于操作系统资源是有风险的 - 已知Windows可以在没有警告的情况下删除资源(因为它们没有记录)。复制资源也可能不合法(虽然IANAL)。

9

用于可执行文件的图标不过是EXE文件中遇到的第一个ICON资源。您可以使用像ResHack这样的工具从现有的二进制文件中提取图标,并且(我认为)您还可以使用它来更改附加到特定资源的图标。

+0

我使用* Resource Hacker *来更改自解压7-Zip存档的图标。 – jschmier 2010-05-03 19:21:31

1

据我所知你可以在Visual Studio中打开EXE文件并在活EXE文件中编辑资源。

相关问题