修改应用程序图标(csdn貌似还没有直接从机器码谈起的文章)

前言

展示如何修改应用程序的图标。

因为是入门级别的,博主也是刚刚接触,所以下面展示的这个例子有非常大的局限性,不过也算是能有所收获。


正文

提示:看懂这篇博客的基础是起码得了解PE文件格式,并且掌握PEViewUltraEdit两款工具的使用方法。(想要学习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也行。暂时还不知道原因是什么,下次一定补上。

实验结果

至此,实验完成!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猫咪钓鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值