Resource Hacker是非常强大的资源查看器,编译和反编译工具!Resource Hacker 主要用于察看、反汇编和取代 Windows 32 位可执行程序中的资源,支持 Delphi 5 和 C++ Builder。这款资源替换修改工具非常的简单实用,操作方面与eXeScope几乎没什么两样。Resource Hacker v4.2.3 正式版继续更新,该版修复了众多bug,改进了UI以及操作体验,并添加了资源搜索功能。
你想自定义应用软件吗? 例如:更改字体,更改菜单,更改对话框的排列,等等。但你会认为这是不可能的,因为你没有资源文件。ResHacker能在没有资源文件的情况下分析,显示不同的信息,重写可执行文件的资源,包括(EXE,DLL,OCX)等。是方便强大的汉化工具,可以直接修改用 VC++ 及 DELPHI 编制的程序的资源,包括菜单、对话框、字串表等。
ResHacker替换图标
1. 首先先下载ResHacker,然后打开"ResHacker.exe"(程序)
2. 点击菜单栏上的"文件(F)", 选择第一项"打开(O)" 然后就显示,选择你要编辑的dll文件(此教程dtu就以 imageres.dll 来做示范)
3. 选中你要编辑的dll文件,然后点击"打开(O)"
4. 现在就要开始对你选中的dll文件进行编辑了
5. 点击对应"图标组"的那个小小的 "+" 符号,就会拉开子目录,里面有几个图标就会显示几个文件夹
6. 接着点击对应文件夹“3”的那个小"+"符号拉开,选中"1033"后 右边的预览框就会显示出图标的样式。 (注意:此时会弹出一个错误的提示框,我们确定掉即可。后面才解释)
7. 开始进行替换图标了哦,在选中了"1033"后,右键"1033",就会出现右键菜单
8. 点击(上数第4个选项) "替换资源..."
9. 弹出了个对话框(替换图标与.........),让你选择你要替换的图标(ico文件),点击左上角的"打开新图标文件(0)..."
10. 你选择图标文件,找到你要替换的图标文件后(ico)选中,点击对话框右下角的 "打开(0)"
11. 接着点击右下角的 "替换(R)"
12. 没错,错误提示框又弹出来了。老规矩,确定即可
13. “3”号图标我们替换好了,下一步就是保存文件了。
点击ResHacker菜单栏上的"文件(F)"选择 "保存为(A)..."
14. 就存到桌面吧,稍后再自己移动吧
好了,如何把ico文件封到dll文件里面现在大家都知道了
PS:
刚才途中出现了一个错误的提示窗口这里说下,该错误提示可能是由于图标ico文件了面包含了压缩的256px图标信息导致的,我们要是替换不包含压缩256px的图标就不会出现这类提示。还好该提示不影响结果,修改好后文件还是成功的。
希望dtu这个简单的教程能帮助到大家的使用,如果替换更多的图标的dll文件,操作还是一样一样的。
ResHacker 替换avi
ResHacker提取并保存avi,第一到第四步即可完成提取。(第四步重点说明提取avi步骤)
进行替换前我想你必须知道一点,系统使用的avi动画可不是我们一般看视频那样的avi属性的 。通常我们看到的视频avi都比较长,所以容积是比较大的,为了达到小容量的目的,avi视频将被压缩,压缩是指重新进行编码,减低码率=容积减小 。不管怎样,有编码就必须有解码,要不,播放器是怎么来的,但是``Windows系统默认是没有解码模块的,所以系统调用的avi必须是全帧/无压缩的avi文件 。因为之前有想过压缩avi以达到减小dll文件大小 。
1,启动 ResHacker 并打开你所要编辑的文件,在此过程中使用 srchadmin.dll 文件示范 。
2,选择左边资源树的 AVI(文件夹)点击拉开,再次点击拉开 1301(文件夹)直到看到目标编号为1033 avi并选中 。
3,此时你会看到游览窗口显示 1033的avi动画, 确定你选中了 资源树中的 1301-1033 。
4,右键 资源树的 1033,( 附加:此时选择 保存(S)[AVI:1301:1033..... ] 即可提取并保存 1301 avi动画) 选择 替换资源.... ,出现对话框, 点击 打开新资源文件(O)... , 现在请你找出已经准备好的 avi文件并选中打开 。
5,此时在刚才那个 替换一个资源... 的对话框中,出现了3个选项 。
资源类型(T):
资源名称(N):
资源语言(L):
6,第一项(资源类型)填写:AVI ,第二项(资源名称)填写:1301 ,第三项(资源语言)填写:1033 ,然后点击 替换 。
,此时你将看到替换好的 avi 效果,接着 文件 — 另存为 ,保存好修改后的文件完成 。
Resource Hacker 功能特点:
1、查看Windows 32 位和 64 位可执行文件(*.exe、*.dll、*.cpl、*.ocx、*.msstyles 等等)以及 Windows 资源文件(*.res)的资源,在已编译和反编译的格式下都可以。
2、提取(保存) 资源为文件 (*.res) 格式,可作为二进制,或作为反编译过的资源脚本或图像。
图标、位图、指针、菜单、对话、字符串表、消息表、快捷键、Borland 窗体和版本信息资源都可以完整地反编译为其各自的格式,不论是作为图像还是作为 *.rc 文本文件都可以。
3、修改(替换) 可执行文件的资源。
图像资源(图标、指针和位图)可以被相应的图像文件(*.ico, *.cur, *.bmp)、*.res 文件、甚至是另一个 *.exe 文件所替换。
对话、菜单、字符串表、快捷键和消息表资源脚本(以及 Borland 窗体)可以通过使用内部资源脚本编辑器被编辑和重新编译。资源也可以被某个 *.res 文件所替换,只要替换的资源与其是同一类型并且有相同的名称即可。
4、添加新的资源到可执行文件。允许一个程序支持多种语言,或将自定义图标或位图(公司的标识等)添加到程序的对话中。
5、删除资源。大多数编译器添加了应用程序永远都不会用到的资源到应用程序中。删除这些不使用的资源可以减小应用程序的体积。
更新日志:
Resource Hacker(ResHacker)v4.3.20 版本更新:2016年9月11日
错误修复:修正了很多命令行处理错误
错误修复:其它小错误的修正
增加时所用到的控件的示例:
1,插入横线:
CONTROL "", -1, STATIC, SS_ETCHEDHORZ | WS_CHILD | WS_VISIBLE, 0, 217, 349, 1
2,插入BMP:
CONTROL 102, 109, STATIC, SS_BITMAP | WS_CHILD | WS_VISIBLE, 75, 9, 264, 151
(其中102为BMP图片在“位图”的ID)
3,插入AVI:
CONTROL "#117", 0, "SysAnimate32", ACS_CENTER | ACS_AUTOPLAY | WS_CHILD | WS_VISIBLE, 0, 0, 213, 154
(其中117为AVI资源的ID)
4,插入图标(32X32):
CONTROL 15, -1, STATIC, SS_ICON | WS_CHILD | WS_VISIBLE, 7, 7, 20, 20
(其中15为ICO的ID)
5,插入图标(最大):
与上面的添加方法一样,只是需要用eXeScope为其增加“实际大小图象”属性即可。这样就会显示对图标中最大的图标(有一点例外:该图标的ID必须在前)。
6,插入框体:
CONTROL "WinRAR 寒夜孤星版", -1, BUTTON, BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 4, 50, 175, 134
7,插入文字:
CONTROL "WinRAR 寒夜孤星版", -1, STATIC, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 224, 5, 126, 50
8,插入文字,文字可复制,窗口为白色:
CONTROL "WinRAR 寒夜孤星版", -1, EDIT, ES_LEFT | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 43, 92, 130, 14
9,插入文字,文字可复制,窗口为透明:
CONTROL "WinRAR 寒夜孤星版", -1, EDIT, ES_LEFT | ES_AUTOHSCROLL | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 221, 85, 161, 8
10,在插入文字串中,使用“ n ”来换行。
以上所说的AVI、WAV、BMP等资源,必须未压缩,或者使用行程压缩 ,其他的压缩方式都将使资源无法使用!
顺便说一下:ResHacker 文件下的 Dialogs.txt 与其他文本不同,他为 ResHacker 提供控件解释。如果将其删除,会导致 ResHacker 无法直接添加修改控件!
②菜单:
APPMENU MENU
LANGUAGE LANG_CHINESE, 0x2
{
POPUP "文件(&F)"
{
MENUITEM "新建(&N)",1000
MENUITEM "打开(&O)...",12
MENUITEM "保存(&S)",13
MENUITEM "另存为(&A)...",14
MENUITEM "还原(&R)...",15
MENUITEM "属性(&P)",100
MENUITEM SEPARATOR
MENUITEM "退出(&X)",16
}
}
以上是一个最简单的菜单示例,其中,
APPMENU为菜单的ID。
LANGUAGE LANG_CHINESE为该菜单的语言属性—2052即简体中文。
POPUP "文件(&F)",POPUP定义了一个名为文件的按钮,(&F)为快捷键。其英文语言下为POPUP "&File"。
{}成对使用。
MENUITEM 用来定义下拉的菜单内容,后面的数字为其ID。
MENUITEM SEPARATOR用来在菜单中添加一个分割线。