Resource Hacker是一款轻量级但功能强大的Windows资源编辑器,主要用于查看、修改、提取和替换可执行文件(EXE/DLL/OCX等)中的资源数据。支持直接编辑图标、位图、菜单、对话框、字符串表等二进制资源,并能反编译/重新编译资源脚本(RC文件)。其直观的树状资源管理器界面和低系统占用特性,使其成为软件汉化、界面美化或逆向分析的常用工具。

软件亮点
功能强大:
支持多种资源类型的编辑,满足用户多样化的需求。
提供命令行接口,实现自动化操作,如多语言资源注入与冗余资源清理。
社区支持:
Resource Hacker拥有一个活跃的用户社区,用户可以在社区中交流经验、获取帮助。
社区中分享了一些定制的脚本或插件,用于扩展软件的功能。
软件特色
免费开源:
Resomurce Hacker是一款完全免费的工具,用户可以自由下载和使用,无需支付任何费用。
作为开源软件,其源代码可供开发者研究和改进。
兼容性好:
支持32位和64位的Windows程序资源查看和编辑,覆盖了广泛的Windows应用程序。
兼容多种可执行文件格式,如.exe、.dll、.scr、.cpl等。
软件功能
操作简便:
软件界面简洁直观,操作步骤清晰,即使是初学者也能快速掌握。
提供丰富的菜单选项和工具栏按钮,方便用户快速访问各种编辑功能。
资源编辑:
用户可以修改现有资源,如替换图标、位图,编辑对话框布局、菜单结构,修改字符串表等。
提供直观的图形界面,使得非专业开发者也能轻松修改软件资源。
资源提取:
支持将资源保存为单独的文件,如将图标提取为.ico文件,将位图提取为.bmp文件等。
便于资源的复用和整合到其他项目中。
资源添加与删除:
用户可以向可执行文件中添加新的资源,如添加自定义图标、位图或支持多种语言的字符串表。
支持删除不必要的资源,以减小应用程序的体积。
脚本编译与反编译:
内置资源编译器和反编译器,支持将资源导出为二进制文件或反编译为.rc脚本。
提供脚本编辑器,支持直接编辑对话框布局与菜单结构,兼容Delphi和C++ Builder开发环境。
常见问题
一: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)..."
好了,如何把ico文件封到dll文件里面现在大家都知道了
二:使用ResHacker如何替换avi?
ResHacker提取并保存avi,第一到第四步即可完成提取 。(第四步重点说明提取avi步骤)
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 效果,接着 文件 — 另存为 ,保存好修改后的文件完成 。
软件相关
增加时所用到的控件的示例:
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用来在菜单中添加一个分割线。