使用Resource Hacker修改dll位图资源
发布时间:2010-06-21 14:11:04 作者:佚名
我要评论
所有 Resource Hacker(TM) GUI 的功能(除了查看资源)都可以从命令行来访问,而不用打开 Resource Hacker(TM)。命令行脚本可以去掉运行 Resource Hacker(TM) 重复任务的苦差事。
命令行脚本有 2 个通用的窗体:
1. 单命令:
ResHacker.exe 命令 命令_参数
2. 多命令:
ResHacker.exe -脚本 脚本文件
单命令:
命令和命令_参数:
-add ExeFile, SaveAsFile, ResourceFile, ResourceMask
-addskip ExeFile, SaveAsFile, ResourceFile, ResourceMask
-addoverwrite ExeFile, SaveAsFile, ResourceFile, ResourceMask
-modify ExeFile, SaveAsFile, ResourceFile, ResourceMask
-extract ExeFile, ResourceFile, ResourceMask
-delete ExeFile, SaveAsFile, ResourceMask
每个命令参数必须由逗点分隔,但第一个参数之前不要有逗点。
如果路径不包括文件名,那么操作系统的当前文件夹就假设为包括命名过的文件。通常这是良好的习惯,虽然在这里不要求,用双引号围住包含空格的文件名。
ResourceMask 允许用命令来执行单个或多个资源项并获得窗体 ResType、ResName、ResLang。如果 ResType 是一个预定义的类型,那么其编号或标识符都可以使用。如 ResourceMask dialog,128,0 与 5,128,0 是一样的。可以省略一部分或所有的 ResourceMask 项。如 dialog,, 说明一下,所有对话都将被应用到命令中,而不考虑名称或语言。并且,,,1049 表示所有含 Russian (1049) 和资源都将应用到命令中。一个空的 ResourceMask ,, 表示命令将应用到每个资源中,而不考虑类型、名称或语言。
当添加或修改项目时,ResourceFile 可以是任何项目类型的 RES 文件、BITMAP 类型的 BMP 文件、CURSORGROUP 类型的 CUR 文件、ICONGROUP 类型的 ICO 文件、以及 RCDATA 和用户定义资源类型的任何文件类型。
从文件而不是从 RES 文件中添加和修改资源时,ResType 和 ResName 必须在 ResourceMask 中指定。如果忽略了 ResLang,那么命令将以匹配的类型和名称应用到第一个语言项中。否则,如果没有匹配项存在,则假设语言为中性(0)。
在提取资源时,ResourceMask 默认超过一个项目,那么指定的 ResourceFile 必须是一个 RES 文件或 RC 文件。将二进制图像资源提取到 RC 文件中时,也会将每个图像创建为一个单独的二进制文件(ico、cur、bmp、gif、bin)。请看下面的例子。
不能直接操作 ICON 和 CURSOR 资源,除了通过使用其各自的 ICONGROUP 或 CURSORGROUP 来添加、删除、修改、以及提取。ICON 和 CURSOR 仍然可以使用,但 Resource Hacker(TM) 将假定 ICONGROUP 或 CURSORGROUP 是预期的。
也可以添加 Borland 的 DFM 文件,而不考虑文件是否是二进制或文本格式。不管用何种方法,它们将总是作为文本格式提取。(要将文本格式的 dfm 文件转换为二进制格式,请使用 Borland 的工具 Convert.exe。)
所有操作或错误都将记录到“ResHacker.log”中。
注意:如果一个脚本不产生期望的结果就检查日志!
举例:(已经忽略文件路径,有助于理解)
要从 UpdDlg.res 添加或更新 MyProg.exe 中的对话名称:maindlg lang:0
ResHacker.exe -addoverwrite MyProg.exe, MyProgNew.exe, upddlg.res, dialog,maindlg,0
要从 NewImage.bmp 添加或更新 MyProg.exe 中的位图名称:128
ResHacker.exe -addoverwrite MyProg.exe, MyProgNew.exe, NewImage.bmp , bitmap,128,
要从 Images.res 添加或更新 MyProg.exe 中的所有位图
ResHacker.exe -addoverwrite MyProg.exe, MyProgNew.exe, Images.res, bitmap,,
要从 ReadMe.htm l将“用户定义”的二进制资源 (README,1,0) 添加到 MyProg.exe 中
ResHacker.exe -addoverwrite MyProg.exe, MyProgNew.exe, ReadMe.html, readme,1,0
要将 Images.res 中的所有项目添加到 MyProg.exe 中(但如果有任何项目存在就会失败)
ResHacker.exe -add MyProg.exe, MyProgNew.exe, Images.res ,,,
要将 Images.res 中的所有项目添加到 MyProg.exe 中(跳过任何存在的项目)
来源:(http://blog.sina.com.cn/s/blog_63f454e40100jx4l.html) - 修改dll位图资源【转】_虫虫_新浪博客
ResHacker.exe -addskip MyProg.exe, MyProgNew.exe, Images.res ,,,
要以 Images.res 中的项目修改 MyProg.exe 中的所有项目 (忽略 Images.res 中的任何项目,其不存在于 MyProg.exe 中)
ResHacker.exe -modify MyProg.exe, MyProgNew.exe, Images.res , , ,
要从 MyProg.exe 中将所有图标提取到 myprogicons.rc (创建 MyProgIcons.rc、Icon_1.ico、Icon_2.ico、Icon_3.ico 等等...)
ResHacker.exe -extract MyProg.exe, myprogicons.rc, icongroup,,
要从 MyProg.exe 中删除 GIF 名称:128
ResHacker.exe -delete MyProg.exe, MyProgNew.exe, gif,128,
多命令:
语法:ResHacker.exe -script 脚本文件
脚本文件是一个文本文件,有下列格式:
//注释前加上双斜杠
[FILENAMES]
Exe=
SaveAs=
Log=
[COMMANDS]
-add ResourceSrc, ResourceMask
-addskip ResourceSrc, ResourceMask
-addoverwrite ResourceSrc, ResourceMask
-addoverwrite ResourceSrc, ResourceMask
-modify ResourceSrc, ResourceMask
-extract ResourceTgt, ResourceMask
-delete ResourceMask
如果忽略日志,那么将使用默认日志 - ResHacker.log。
注意:如果一个脚本不产生期望的结果就检查日志!
举例:
rh_script_myprog_rus.txt -
//在以 Russian(1049) 项目替换它们之前,
//该脚本将删除 MyProg.exe 中的所有语言中性(0)
//的字串表、菜单和对话资源项...
[FILENAMES]
Exe= MyProg.exe
SaveAs= MyProg_Rus.exe
Log= MyProg_Rus.log
[COMMANDS]
-delete MENU,,0
-delete DIALOG,,0
-delete STRINGTABLE,,0
-add MyProg_Rus.res, MENU,,1049
-add MyProg_Rus.res, DIALOG,,1049
-add MyProg_Rus.res, STRINGTABLE,,1049
rh_script_myprog_upd_images.txt -
//该脚本在 MyProg.exe 中更新 2 个位图和一个图标...
[FILENAMES]
Exe= MyProg.exe
SaveAs= MyProg_Updated.exe
[COMMANDS]
-addoverwrite Bitmap128.bmp, BITMAP,128,
-addoverwrite Bitmap129.bmp, BITMAP,129,0
-addoverwrite MainIcon.ico, ICONGROUP,MAINICON,0
rh_script_myprog_upd_all.txt -
//该脚本以 MyProgNew.res 中的所有资源
//替换 MyProg.exe 中的所有资源
[FILENAMES]
Exe= MyProg.exe
SaveAs= MyProg_Updated.exe
[COMMANDS]
-delete ,,, //在...之前删除所有资源
-add MyProgNew.res ,,, //添加所有新的资源
1. 单命令:
ResHacker.exe 命令 命令_参数
2. 多命令:
ResHacker.exe -脚本 脚本文件
单命令:
命令和命令_参数:
-add ExeFile, SaveAsFile, ResourceFile, ResourceMask
-addskip ExeFile, SaveAsFile, ResourceFile, ResourceMask
-addoverwrite ExeFile, SaveAsFile, ResourceFile, ResourceMask
-modify ExeFile, SaveAsFile, ResourceFile, ResourceMask
-extract ExeFile, ResourceFile, ResourceMask
-delete ExeFile, SaveAsFile, ResourceMask
每个命令参数必须由逗点分隔,但第一个参数之前不要有逗点。
如果路径不包括文件名,那么操作系统的当前文件夹就假设为包括命名过的文件。通常这是良好的习惯,虽然在这里不要求,用双引号围住包含空格的文件名。
ResourceMask 允许用命令来执行单个或多个资源项并获得窗体 ResType、ResName、ResLang。如果 ResType 是一个预定义的类型,那么其编号或标识符都可以使用。如 ResourceMask dialog,128,0 与 5,128,0 是一样的。可以省略一部分或所有的 ResourceMask 项。如 dialog,, 说明一下,所有对话都将被应用到命令中,而不考虑名称或语言。并且,,,1049 表示所有含 Russian (1049) 和资源都将应用到命令中。一个空的 ResourceMask ,, 表示命令将应用到每个资源中,而不考虑类型、名称或语言。
当添加或修改项目时,ResourceFile 可以是任何项目类型的 RES 文件、BITMAP 类型的 BMP 文件、CURSORGROUP 类型的 CUR 文件、ICONGROUP 类型的 ICO 文件、以及 RCDATA 和用户定义资源类型的任何文件类型。
从文件而不是从 RES 文件中添加和修改资源时,ResType 和 ResName 必须在 ResourceMask 中指定。如果忽略了 ResLang,那么命令将以匹配的类型和名称应用到第一个语言项中。否则,如果没有匹配项存在,则假设语言为中性(0)。
在提取资源时,ResourceMask 默认超过一个项目,那么指定的 ResourceFile 必须是一个 RES 文件或 RC 文件。将二进制图像资源提取到 RC 文件中时,也会将每个图像创建为一个单独的二进制文件(ico、cur、bmp、gif、bin)。请看下面的例子。
不能直接操作 ICON 和 CURSOR 资源,除了通过使用其各自的 ICONGROUP 或 CURSORGROUP 来添加、删除、修改、以及提取。ICON 和 CURSOR 仍然可以使用,但 Resource Hacker(TM) 将假定 ICONGROUP 或 CURSORGROUP 是预期的。
也可以添加 Borland 的 DFM 文件,而不考虑文件是否是二进制或文本格式。不管用何种方法,它们将总是作为文本格式提取。(要将文本格式的 dfm 文件转换为二进制格式,请使用 Borland 的工具 Convert.exe。)
所有操作或错误都将记录到“ResHacker.log”中。
注意:如果一个脚本不产生期望的结果就检查日志!
举例:(已经忽略文件路径,有助于理解)
要从 UpdDlg.res 添加或更新 MyProg.exe 中的对话名称:maindlg lang:0
ResHacker.exe -addoverwrite MyProg.exe, MyProgNew.exe, upddlg.res, dialog,maindlg,0
要从 NewImage.bmp 添加或更新 MyProg.exe 中的位图名称:128
ResHacker.exe -addoverwrite MyProg.exe, MyProgNew.exe, NewImage.bmp , bitmap,128,
要从 Images.res 添加或更新 MyProg.exe 中的所有位图
ResHacker.exe -addoverwrite MyProg.exe, MyProgNew.exe, Images.res, bitmap,,
要从 ReadMe.htm l将“用户定义”的二进制资源 (README,1,0) 添加到 MyProg.exe 中
ResHacker.exe -addoverwrite MyProg.exe, MyProgNew.exe, ReadMe.html, readme,1,0
要将 Images.res 中的所有项目添加到 MyProg.exe 中(但如果有任何项目存在就会失败)
ResHacker.exe -add MyProg.exe, MyProgNew.exe, Images.res ,,,
要将 Images.res 中的所有项目添加到 MyProg.exe 中(跳过任何存在的项目)
来源:(http://blog.sina.com.cn/s/blog_63f454e40100jx4l.html) - 修改dll位图资源【转】_虫虫_新浪博客
ResHacker.exe -addskip MyProg.exe, MyProgNew.exe, Images.res ,,,
要以 Images.res 中的项目修改 MyProg.exe 中的所有项目 (忽略 Images.res 中的任何项目,其不存在于 MyProg.exe 中)
ResHacker.exe -modify MyProg.exe, MyProgNew.exe, Images.res , , ,
要从 MyProg.exe 中将所有图标提取到 myprogicons.rc (创建 MyProgIcons.rc、Icon_1.ico、Icon_2.ico、Icon_3.ico 等等...)
ResHacker.exe -extract MyProg.exe, myprogicons.rc, icongroup,,
要从 MyProg.exe 中删除 GIF 名称:128
ResHacker.exe -delete MyProg.exe, MyProgNew.exe, gif,128,
多命令:
语法:ResHacker.exe -script 脚本文件
脚本文件是一个文本文件,有下列格式:
//注释前加上双斜杠
[FILENAMES]
Exe=
SaveAs=
Log=
[COMMANDS]
-add ResourceSrc, ResourceMask
-addskip ResourceSrc, ResourceMask
-addoverwrite ResourceSrc, ResourceMask
-addoverwrite ResourceSrc, ResourceMask
-modify ResourceSrc, ResourceMask
-extract ResourceTgt, ResourceMask
-delete ResourceMask
如果忽略日志,那么将使用默认日志 - ResHacker.log。
注意:如果一个脚本不产生期望的结果就检查日志!
举例:
rh_script_myprog_rus.txt -
//在以 Russian(1049) 项目替换它们之前,
//该脚本将删除 MyProg.exe 中的所有语言中性(0)
//的字串表、菜单和对话资源项...
[FILENAMES]
Exe= MyProg.exe
SaveAs= MyProg_Rus.exe
Log= MyProg_Rus.log
[COMMANDS]
-delete MENU,,0
-delete DIALOG,,0
-delete STRINGTABLE,,0
-add MyProg_Rus.res, MENU,,1049
-add MyProg_Rus.res, DIALOG,,1049
-add MyProg_Rus.res, STRINGTABLE,,1049
rh_script_myprog_upd_images.txt -
//该脚本在 MyProg.exe 中更新 2 个位图和一个图标...
[FILENAMES]
Exe= MyProg.exe
SaveAs= MyProg_Updated.exe
[COMMANDS]
-addoverwrite Bitmap128.bmp, BITMAP,128,
-addoverwrite Bitmap129.bmp, BITMAP,129,0
-addoverwrite MainIcon.ico, ICONGROUP,MAINICON,0
rh_script_myprog_upd_all.txt -
//该脚本以 MyProgNew.res 中的所有资源
//替换 MyProg.exe 中的所有资源
[FILENAMES]
Exe= MyProg.exe
SaveAs= MyProg_Updated.exe
[COMMANDS]
-delete ,,, //在...之前删除所有资源
-add MyProgNew.res ,,, //添加所有新的资源
相关文章
- 这篇文章主要介绍了使用Resource Hacker实现替换EXE图标的方法,需要的朋友可以参考下2018-04-23
用resource hacker工具去除WinRAR中广告的方法
这篇文章主要介绍了用resource hacker工具去除WinRAR中广告的方法,需要的朋友可以参考下2018-04-23- Resource Hacker汉化版是一个专业的资源编辑工具,大家经常使用它编译、查看、反编译以及再编译 32 位和 64 位 Windows 可执行文件的资源,需要的朋友可以参考下2018-04-23

Resource Hacker(编译和反编译软件) v5.2.4.386 官方英文安装免费版
一款免费的 32/64 位 Windows 可执行文件和资源文件(*.res)查看、修改、重命名、添加、删除和提取工具,它内部包含一个资源脚本编译器和反编译器2023-11-01
Resource Hacker(资源查看器资源和反编译器) V5.2.4.386 汉化中文绿色
是一款免费的 32/64 位 Windows 可执行文件和资源文件(*.res)查看、修改、重命名、添加、删除和提取工具,它内部包含一个资源脚本编译器和反编译器2023-11-01
Resource Hacker(java反编译工具) V5.2.7.427 完美汉化单文件版
Resource Hacker单文件版是一款简单易于使用的java反编译工具。该款软件是非常强大的资源查看器,编译和反编译工具2023-11-20
Resource Hacker v5.2.1 build 376 英文绿色版 编译可执行和相关文件资
Resource Hacker是一个类似于eXeScope的但在某些方面比它还好一些的工具。1. 查看 Win32 可执行和相关文件的资源 (*.exe, *.dll, *.cpl, *.ocx),在已编译和反编译的格式下2023-10-08
Resource Hacker(可以修改.exe文件/反编译工具) v5.1.7 简体中文版
Resource Hacker汉化版(可以修改.exe文件/反编译工具)是一款非常不错的Windows应用程序的免费软件资源编译器和反编译器,经过大神用户的汉化后,国内用户使用起来更加方便2019-06-17
Resource Hacker(反编译工具) v5.2.4.386 中文汉化版
Resource Hacker(反编译工具)中文绿色版,它既是资源编译器(用于* .rc文件),也是反编译器 - 允许查看和编辑可执行文件(* .exe; * .dll; * .scr;等)和编译资源库(* .r2023-11-01
资源编译器 Resource Hacker v5.2.4.386 绿色汉化版
Resource Hacker是一款免费的资源编译器软件,用于查看,修改,添加和删除 Win32 可执行文件的资源,内置了一个内部资源编译器和反编译器2024-04-11









最新评论