是否可以在不重新编译的情况下更改 exe 的图标?

发布于 2024-08-30 20:08:48 字数 366 浏览 7 评论 0原文

我有很多编译过的可执行文件(很久以前),其中许多我现在没有源代码。但是当我编译它们时,我没有为它们放置任何图标,所以它们看起来都像相同的沉闷、秃头的默认图标。所以我的问题是,

(1)我是否可以编写一个可以更改 exe 的资源部分并更改其外观的软件?如果是这样,有人可以指出我解释的位置吗? (我是初学者,我对exe格式一无所知) 不断更改图标也很有趣,而不必为图标更改而重新编译所有内容,这很有趣...

(2) 这提出了一个自然的相反问题,是否同样可以删除某些文件使用的图标并将其用于其他一些文件? (如果是这样,请指出我可以获取一些详细信息的位置。

我是一名 C/C++ 开发人员,我正在寻找 Windows 平台上的解决方案...

问候, 微内核

I have lot of executable that I have compiled (long time back) for many of which I don't have sourcecode now. But when I compiled them I didn't put any icons for them, so they all look like same dull, bald default icon. So my questions are,

(1) is it possible for me to write a software that can change the resources section of the exe and change its looks? If so, can anyone plz point me to the location where its explained? (I am a beginner, I have no idea on the exe format and all)
Also its fun to keep changing Icons without having the pain of recompiling everything just for the icon change...

(2) This is raises a natural converse question, Is it similarly possible to zap out the icon used by some file and use it for some other file? (If so, plz point me to location where I can get some details.

I am a C/C++ developers and I am looking for solution on Windows Platform...

Regards,
MicroKernel

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

西瓜 2024-09-06 20:08:48

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

The icon used for the executable is nothing but the first ICON resource encountered in the EXE file. You can use a tool like ResHack to extract icons from existing binaries, and (I think) you can also use it to change the icons attached to a particular resource.

怎言笑 2024-09-06 20:08:48

可以从 exe 或 DLL 文件读取和写入资源。读取资源很简单 - 只需使用 LoadLibraryEx(LOAD_AS_DATA_FILE) 加载它,然后您就可以使用标准资源 API 枚举资源。所有这些都记录在 MSDN 上。

还可以使用 写入资源UpdateResource API及相关函数。

您应该记住,更改其他人的 EXE 文件的资源将使任何签名无效。此外,依赖操作系统资源是有风险的——众所周知,Windows 会在没有警告的情况下删除资源(因为它们没有记录)。复制资源可能也不合法(尽管 IANAL)。

It is possible to read and write resoures from an exe or DLL file. Reading the resources is easy(ish) - just use LoadLibraryEx(LOAD_AS_DATA_FILE) to load it, then you can enumerate the resources using the standard resource API's. All of this is documented on MSDN.

Writing the resources can also be done using the UpdateResource API and related functions.

You should bear in mind though that changing the resources of someone elses EXE file will invalidate any signing. Also, depending on OS resources is risky - windows has been known to remove resources without warning (since they are undocumented). Copying resources may not be legal too (although IANAL).

好倦 2024-09-06 20:08:48

据我所知,您可以在 Visual Studio 中打开 EXE 文件并编辑实时 EXE 文件中的资源。

As far as I know you can open the EXE file in Visual Studio and edit the resources in live EXE file.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文