说句实话,要想用普通的方法来替换图标,不是完全不可行,当然也不是完全可行。这个看似简单的问题并不是想象中那么容易解决,为什么有人修改exe的图标总是失败,其实他忽视了exe和图标的复杂性,用简单的方法根本无法解决这个问题,我们大多数人都低估了exe和图标这两个名词了。

对于可执行文件,图标的扩展名为ico,网络上很多图标软件都可以做到把jpg,bmp,gif,png等格式的图像文件转换成图标格式,此外也有很多软件可以直接提取exe或者dll文件里面附带的图标文件,甚至我们可以自己制作图标。不过图标也有它自己的参数,比如说尺寸、分辨率、位深度以及帧数这些。很多程序的图标是经过压缩过的,如果你要想用没有压缩过的图标进行替换,结果通常只有两个:要么就根本没有让原程序的图标发生任何变化,要么图标改变了,不过这个程序就别想再正常运行了,呵呵!当然也有非常倒霉的情况,那就是不仅图标没有任何变化,而且程序也被破坏了……所以我们修改图标前通常都要做好程序的备份。

对于Windows的系统图标,比如文本文档,注册表文件或者mp3音频这些文件的图标,我们可以通过“我的电脑-工具-文件夹选项-文件类型(选定要修改图标的文件类型)-高级-更改图标”就可以实现图标修改;再者就是快捷方式的图标修改,这就更简单了,右击此快捷方式,再选择属性,然后我们就可以直接看到更改图标的选项。然而对于非系统的exe文件,如果exe的原图标的参数值较大,我们可以用小于或者等于这个参数的图标进行替换,但是大于原图标参数的图标文件就无法替换掉原来的图标。一言以蔽之,要想真正做到图标更改成功,必须满足新图标的参数不大于原图标的参数。如果在这个前提之下,我们就可以放心大胆地改图标了,常用的exe图标替换工具有IcoSprite,ResHacker,eXeScope,以及典型的国产小工具exe伪装器和爱图标精灵,这些工具我没有认真比较过,不过它们的操作都很简单。

但是我们也许会遇到这样的情况,一个软件的图标很丑陋,而且尺寸和分辨率又很小,用上面的方法根本不顶用,该怎么办呢?接下来的才是我这篇文章想要表达的重点。既然由于程序结构使然我们已经无法改变其图标,不过我们可以用一种“欺骗”的方式实现图标替换,基本思想不外乎就是为原程序加个壳,然后把壳的图标设置为理想中的图标,而这个理想中的图标参数可以是任意的,其实我们这样做根本就没替换原程序的图标,原程序的图标依然没变,不过它被一个壳包装起来了,而这个壳的图标却被我们设成了我们想看到的图标。从外表上看,这种“欺骗”方式可以骗过绝大多数不知情的人,即使有人知道是这样做的,但从效果上看,我们看不出什么区别。说了这么多,可能很多朋友对上面我说的都晕头转向了,老说那个什么的。要把这个问题解释清楚,用通俗的说法来说,这个方法就像是植皮手术,呵呵,这下心里应该明白三分了吧!

不过现在很多加壳软件都属黑客工具类型的,所以杀毒软件通常都会报毒,其余的一些加壳器往往不能再次设置图标,还有的工具与其说是exe加壳器,还不如说是exe破坏器,经我测试,它处理的工具,不能再次使用的几率接近100%!呵呵,这样的工具谁还敢用?

我这里将要介绍的方法根本不需要用什么加壳器,只要你有Winrar(废话!现在谁没有啊?),我们就可以做。如果你会用Winrar做单文件程序,那你就大可不必再往下看那些详细的教程了,此方法就是把原程序打包成一个新的单文件程序,然后再把新的自解压程序的图标设置成目标图标就搞定。如果你不会做,那么就请接着往下看,虽然网上应该也有一定数量的Winrar制作单文件程序的教程,不过我还是费费口舌吧:

确保你的电脑安装了Winrar,我建议安装最新版的,比如现在我要演示的就是目前最新版本的Winrar 3.8的正式版,由于是共享软件,所以可以有三个出路可以选择,一是通过正规渠道花费290元人名币注册购买;二是继续使用共享版,反正它有40天的评估试用期;三是在不花钱的前提下,寻找一个注册破解版,或者百度里搜索Winrar注册机,反正我这倒是有个注册机,网上淘来的,可以用任意的名字注册,注册时用中文名可能有乱码现象,不过注册过后在Winrar显示出的注册名就是正确的了。

我们以“图标提取”这个小工具来做示范。

首先右击它,选择“添加到压缩文件”。

在弹出来的一个“压缩文件名和参数”框中设置压缩文件格式为“ZIP”,压缩方式为“存储”,压缩选项为“创建自解压格式压缩文件”。

随后选择“高级”选项卡。选择了“高级”选项卡以后直接点击“自解压选项”。

这时候又弹出一个“高级自解压选项”框,在安装程序中设置解压后运行“图标提取.exe”。

然后选择“模式”选项卡,在临时模式中勾选“解包到临时文件夹”,安静模式中选择“全部隐藏”。

随后再选择“更新”选项卡,再覆盖方式中选择“覆盖所有文件”。

最后选择“文本和图标”选项卡,在自定义自解压文件徽标和图标中选择“从文件加载自解压文件图标”,点击“浏览”,找到自己想要加载的图标文件后并打开。

然后就点击确定(两次)就可以生成一个新的exe程序了。看看!图标已经改变了,再运行测试一下,是不是能够正常运行?答案是肯定的。

用这种方法可以应用于任何exe文件,没有改不了的图标,100%适用。由于为了保证解压速度,我们采用的压缩方式是ZIP存储模式,再加上加载了外部的图标,所以生成的文件会大于原文件。不过也存在有这样的问题:由于有一个隐藏解压的过程,所以启动程序所用的时间要稍稍长于原程序,启动新程序后,系统自动隐藏解压原程序到临时文件夹,当你关闭或者退出程序后,系统会自动删除临时文件夹里面的原程序,呵呵,这一切都是悄悄完成的。

2009年5月2日续记:一晃快半年了,我也看到网上不少朋友转载了我这篇教程性质的博文,大家觉得这个方法不错,我心里也挺高兴的,不过我觉得自己还是忽略了一点点东西,就是替换图标(加图标壳)工具和Winrar注册机的下载。这里给出下载地址,如果有什么问题可以留言或联系QQ:273095824以及Email:273095824@qq.com,我会尽快解决的。

网盘地址:http://zhuweixiao.ys168.com/   (注:这两个工具都在“系统工具”这个文件夹里)

强行替换exe图标的方法的更多相关文章

  1. 替换应用程序exe图标,主要使用BeginUpdateResource,UpdateResource API函数

    替换应用程序exe图标,主要使用的API函数是BeginUpdateResource(),UpdateResource(),EndUpdateResource()来使用自定义的ico文件类替换exe程 ...

  2. matlab改变GUI和figure左上角图标的方法,并生成exe文件

    1. GUI左上角图标的更改,假设GUI的Tag为figure1,在其OpeningFcn里添加h = handles.figure1; %返回其句柄newIcon = javax.swing.Ima ...

  3. WPF获取外部EXE图标最简单的方法

    原文:WPF获取外部EXE图标最简单的方法 首先在工程添加对System.Drawing的引用 创建以下方法: public static ImageSource GetIcon(string fil ...

  4. MFC exe文件生成的图标更改方法

    MFC exe文件生成的图标更改方法 https://blog.csdn.net/txwtech/article/details/92980545

  5. VB高清图标制作方法

    我隆重介绍一个软件:ResHacker !!! 这个软件可以修改软件的很多东西包括图标和标题,下面看**作. 运行ResHacker打开要更改图标的exe文件, 图标组--1--右键0--替换资源-- ...

  6. 介绍一种很棒的wince 如何替换系统声音的方法

    Topic:介绍一种很棒的wince 如何替换系统声音的方法(作者:Baiduluckyboy) //------------------------------------------------- ...

  7. python制作exe可执行文件的方法---使用pyinstaller

    python制作exe可执行文件的方法---使用pyinstaller   python生成windows下exe格式的可执行程序有三种可选方案: py2exe是大家所熟知的,今天要介绍pyinsta ...

  8. App劫持病毒剖析:你的应用是如何被替换的(病毒防范方法)

    App劫持病毒剖析:你的应用是如何被替换的(病毒防范方法) 一.App劫持病毒介绍 App劫持是指执行流程被重定向,又可分为Activity劫持.安装劫持.流量劫持.函数执行劫持等.本文将对近期利用A ...

  9. Java中替换HTML标签的方法代码

    这篇文章主要介绍了Java中替换HTML标签的方法代码,需要的朋友可以参考下 replaceAll("\\&[a-zA-Z]{0,9};", "").r ...

随机推荐

  1. symfony中twig的流程控制if,for用法

    流程控制 if 语句 if语句在twig中的作用如同if语句在PHP中的一样.1.你可以通过下面这个简单的例子来判断表达式的结果是否正确. {% if online == false %} <p ...

  2. 让ecshop用户登录评价以可择匿名评价

    ECSHOP 默认的程序 是 当用户登录后,对商品商品评价是不是能匿名评价的. 有些店铺设置了只能登录评价,但客户又不想显示自己的账号名称.这时候 这功能 就可以派上用场了 1在 comment.ph ...

  3. 模拟http响应头

    1.打开需要模拟的页面请求头 2.编码要发送的数据 3.通过fsockopen函数发送请求头 代码如下 //方法二 $URL="http://device.test.com/admin/ma ...

  4. android 代码整体回退

    repo forall -c 'HAHA=`git log --before="3 days" -1 --pretty=format:"%H"`;git res ...

  5. Gift Hunting(分组背包)

    Gift Hunting Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...

  6. Git合并开发代码分支到测试代码分支

    ——转载请注明出自天外归云的博客园 用TortoiseGit下载代码到本地 首先需要在本机安装好TortoiseGit.然后在随便哪个路径下比如D盘,右键“Git Clone”: 然后URL处选择项目 ...

  7. 华为S5700S配置总结

    需要使用通讯控制线缆连接电脑和交换机, 一头接交换机的Console口,一头接电脑(应该需要串口,没有的话得用USB转串口). 在PC机上运行终端仿真程序,设置终端通信参数为: 波特率为9600bit ...

  8. python访问mysql将返回的表转化为json

    ## Licensed to the Apache Software Foundation (ASF) under one or more# contributor license agreement ...

  9. c语言中函数调用的本质从汇编角度分析

    今天下午写篇博客吧,分析分析c语言中函数调用的本质,首先我们知道c语言中函数的本质就是一段代码,但是给这段代码起了一个名字,这个名字就是他的的这段代码的开始地址 这也是函数名的本质,其实也就是汇编中的 ...

  10. 【leetcode❤python】 438. Find All Anagrams in a String

    class Solution(object):    def findAnagrams(self, s, p):        """        :type s: s ...