前言
展示如何修改应用程序的图标。
因为是入门级别的,博主也是刚刚接触,所以下面展示的这个例子有非常大的局限性,不过也算是能有所收获。
正文
提示
:看懂这篇博客的基础是起码得了解PE文件格式,并且掌握PEView和UltraEdit两款工具的使用方法。(想要学习PE文件格式的话可以查看博主的文章 PE文件结构详解精华(从头看下去就能大概了解PE文件结构了),里面很详细地介绍了PE文件格式)
实验目的
更换 PEView_副本.exe 的图标。
更换后:
实验过程详解
实验工具:PEView、UltraEdit
实验材料:PEView_副本.exe、CS.ico(这个就是新的图标)
第一步:
使用PEView打开一个exe文件(这里我使用PEView_副本.exe示例),打开.rsrc资源节的 IMAGE_RESOURCE_DATA_ENTRY(数据项:存放各资源的基本信息)。我们可以看到 ICON 0002 1009资源的size是2E8 bytes(我们将要更换的图标大小也是2E8 bytes,它们的大小是一样的,所以我在前言说这篇博客的内容有很大的局限性)。
第二步:
将PEView_副本.exe中 ICON 0002 1009 的内容更换为 CS.ico 的内容。
-
ICON 0002 1009的初始地址和结尾地址:
有空的话可以数一下,大小刚好是 2E8 bytes 。 -
复制 CS.ico 图标内容到 PEView_副本.exe:
从图中画红线部分开始往下复制,因为前面的是CS.ico的信息部分,而不是CS.ico的图标部分
复制粘贴到PEView_副本.exe的 DB10h~DDF7h 处
-
复制 CS.ico 信息内容到 PEView_副本.exe:
查看存放PEView_副本.exe图标信息的GROUP_ICON 0001 1009。信息部分的各字段的含义已在图片中说明。PEView_副本.exe画红线部分需要更换为CS.ico中的信息内容。为什么只选择画红线部分呢?博主现在也不清楚,后续会补上。
如何更换呢?定位好地址直接复制粘贴过去就行了。(记得:用UltraEdit才能复制粘贴。)
复制粘贴后:
在上图阴影部分中,我们还需要修改几处:
为什么那个16要修改为2呢?因为图标的序号是0002。
理论上来说,16是要修改成2的,但博主在实际操作中发现修改成1也行。暂时还不知道原因是什么,下次一定补上。