好友
阅读权限10
听众
最后登录1970-1-1
|
本帖最后由 localier 于 2023-10-19 23:24 编辑
Resource Hacker 汉化修正版——已修正保存资源组为 RES 文件时出错的问题
... 一款免费的适用于 Windows® 应用程序的程序资源编译和反编译工具
版本号 5.2.3
最新更新: 2023 年 10 月 15 日
版权所有 © 1999-2023 Angus Johnson
免费软件 - 没有弹窗,没有广告,功能齐全。
概述:
Resource HackeTM是一款 32位和 64位 Windows® 应用程序的资源编辑器。它既是一款资源编译器(用于 *.rc 文件),也是一款反编译器 - 能够查看和编辑可执行文件 (*.exe; *.dll; *.scr; 等) 以及编译的资源库 (*.res, *.mui)。虽然 Resource Hacker 主要是一个 GUI 应用程序,但它也提供了许多适用于用命令行编译和反编译资源的选项。
Resource Hacker
编译:
编译可以通过打开现有的资源脚本文件或通过使用 Resource Hacker 编辑器从头创建一个来启动。
资源定义语句的完整列表可以在 这里找到。
Resource Hacker 编译器的其他功能包括:#INCLUDE 指令(用于访问头文件中的定义语句等)可以嵌套到多个级别,#IF 和 #IFDEF 指令也是如此。 #DEFINE, #UNDEF, #IF, #ELIF, #ELSE, #IFDEF, #IFNDEF, #INCLUDE, and #PRAGMA 指令都被支持。在双引号 (") 字符之间的字符串可以包含典型的'C'风格的反斜杠'转义'字符 ?\t , \n , \\ , \" , \x, \u 和 \377 (八进制)。字符串中的双引号必须使用前面的反斜杠或另一个双引号“转义”。脚本注释前面有两个正斜杠 (//) 或一个分号 (;)。具有相对路径的文件名是允许的。包含空格的文件名必须用双引号字符括起来。
报告编译器错误消息,甚至嵌套在 INCLUDE 语句中的错误...
查看和编辑资源:
资源文件打开后,其资源通常会显示为图像(或图像组)或反编译文本。二进制资源(通常为图像)无法直接使用 Resource Hacker 进行编辑,但一旦它们被外部图像编辑器修改后,它们仍然可以非常容易地导出和导入(我认为第三方图像编辑器做得非常好,重复没有任何好处)。
菜单和对话框资源类型有他们自己的 WYSIWYG (可视化)设计器:
具有未知格式的二进制资源将显示为只读二进制文本 (如果需要, 也可以用此方式查看任何资源)。
其他操作:
命令行语法:
几乎所有 Resource Hacker 的功能都可以从命令行访问,而无需打开 Resource Hacker GUI。
命令行指令和 Resource Hacker 脚本可以删除重复 Resource Hacker 任务带来的苦差事。
命令行指令是开关语句和开关参数的组合,如下表中所述: 命令行语句:
命 令 参 数
-open filename - 要修改的文件名称。它应该是 Windows PE 文件(*.exe, *.dll 等)或编译或未编译的资源文件(*.res 或 *.rc)
-save filename - 修改或新创建文件的新名称,修改后打开的文件或提取的资源。
-resource filename - 包含要添加到打开文件的资源。
-action 在打开的文件上要执行的操作
add - 添加资源,如果它已经存在则无效
addoverwrite - 添加一个资源,如果已经存在则覆盖
addskip - 添加资源,如果它已经存在则跳过
compile - 将资源脚本文件 (*.rc) 编译为二进制资源文件 (*.res)
delete - 删除资源
extract - 提取资源
modify - 修改资源
-mask 资源掩码 - Type,Name,Language
逗号是强制性的,而每种 Type, Name 和 Language 都是可选的
-log Filename 或 CONSOLE 或 NUL
CONSOLE 可以缩写为 CON
记录所执行操作的详情
如果省略此命令,则日志将写入 resourcehacker.log
-script filename - 包含多命令脚本,而不是用于获取更多信息的资源脚本:-help 脚本
-help options - 命令行或脚本(始终记录到 CONSOLE),其他命令将被忽略。
注意:
命令标识符 (除了-script) 可以缩写为单个字符(如 -res 或 -r)。
命令指令不必按任何特定顺序排列。
包含空格的文件名必须括在双引号内。
批处理文件示例 (为了简洁,在某些地方用 rh.exe 代替 ResourceHacker.exe))
reshack_help.bat:
ResourceHacker.exe -help
@pause :: 以便在 CMD 窗口关闭之前, 我们可以看到控制台输出。
reshack_compile_res_script.bat:
rh.exe -open .\in\resources.rc -save .\out\resources.res -action compile -log NUL
reshack_add_icon_to_old.bat:
rh.exe -open old.exe -save new.exe -action addskip -res my.ico -mask ICONGROUP,MAINICON,
reshack_extract_icon_from_source.bat:
rh.exe -open source.exe -save icons.ico -action extract -mask ICONGROUP,MAINICON, -log CON
@pause
reshack_extract_all_icons_from_source.bat:
rh.exe -open source.exe -save savedicons.rc -action extract -mask ICONGROUP,, -log rh.log
reshack_execute_my_script.bat:
ResourceHacker.exe -script myscript.txt
Resource Hacker 脚本:
Resource Hacker Scripts 脚本使用下列语法的命令行执行的:
ResourceHacker.exe -script ScriptFile
Resource Hacker 脚本使用下列格式的文本文件::
//注释前面加双斜杠
[FILENAMES]
Open=
Save=
Log=
[COMMANDS]
//下列一个或多个命令...
-add SourceFile, ResourceMask
-addskip SourceFile, ResourceMask
-addoverwrite SourceFile, ResourceMask
-addoverwrite SourceFile, ResourceMask
-modify SourceFile, ResourceMask
-extract TargetFile, ResourceMask
-delete ResourceMask
注意:包含空格的文件名必须用双引号括起来。
Resource Hacker 脚本示例:
rh_script_myprog_rus.txt -
//此脚本删除 MyProg.exe 中的所有语言中性(0)字串表
//菜单和对话框资源项, 然后用俄语 (1049) 项替换它们...
[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不这样做。作为一个侧面说明, "打包" 可执行文件在过去 5-10 年中变得非常少见。其中很大一部分是因为可执行文件现在几乎总是在安装程序或 ZIP 包中被压缩。但是软件作者似乎在其可执行文件的资源部分中暴露了更多的信息,而不是更少。我猜想, 早先对知识产权流失的担忧终于平息了。
使用许可 - 条款和条件:
Resource HackerTM 软件作为免费软件发布,前提是您同意以下条款和条件:
未经版权所有者事先书面许可,本软件不得通过任何网站域名或任何其他媒体分发。
本软件不得以任何方式用于非法修改软件。
免责声明: Resource HackerTM 软件用户确认他或她正在以“原样”的方式接收该软件,并且用户不以任何目的依赖于该软件的准确性或功能。用户此外还应确认,使用本软件将由用户自行承担风险,版权所有者不承担因软件的使用或应用而产生的任何责任。
上述许可条款构成“美国法典”第 17 条第 1202 节所指的"版权管理信息",不得更改或从许可作品中删除。他们对有执照的作品进行变更或删除以及没有任何改变地分发没有上述许可条款的许可作品,可能会违反第 1202 条并引起民事和/或刑事后果。
版本 5.2.3 更新:
修复了文件保存时偶尔出现的溢出错误
版本 5.2.1 更新:
小错误修正
使用 Delphi 11 编译 (现在带溢出检查)
汉化版下载地址:
链接:https://pan.baidu.com/s/1s17yVFtG19-sGWqci75Wig?pwd=8888
提取码:8888 |
-
免费评分
-
查看全部评分
|