【3D技术宅公社】XR数字艺术论坛  XR技术讨论 XR互动电影 定格动画

 找回密码
 立即注册

QQ登录

只需一步,快速开始

调查问卷
论坛即将给大家带来全新的技术服务,面向三围图形学、游戏、动画的全新服务论坛升级为UTF8版本后,中文用户名和用户密码中有中文的都无法登陆,请发邮件到324007255(at)QQ.com联系手动修改密码

3D技术论坛将以计算机图形学为核心,面向教育 推出国内的三维教育引擎该项目在持续研发当中,感谢大家的关注。

查看: 2846|回复: 1

用WinRAR生成游戏安装包

[复制链接]
发表于 2006-1-4 16:34:26 | 显示全部楼层 |阅读模式

游戏已经做好了,怎么才能像大厂商一样作一个很炫的安装文件呢?我们这里介绍一下用WinRAR生成游戏安装包.

有的朋友是不是觉得WinRAR生成的游戏安装包不好呢?其实很多的游戏厂商的游戏安装包就是用WinRAR生成的。比如网易的《梦幻西游》,你用RAR打开的话,就可以看到自解压脚本命令:

;下面的注释包含自解压脚本命令

Path=梦幻西游
SavePath
Setup=popo.exe
Overwrite=1
Title=梦幻西游安装程序
Shortcut=D, ".\my.exe", "", "", "梦幻西游"

具体的命令就不用说啦,我们读几篇与WinRAR生成游戏安装包相关的文章:

RAR图形界面自解压模块的编辑[em14]

图形界面 RAR 和 ZIP 自解压模块(Default.SFX 和 Zip.SFX)

使用这两种模块你可以创建 GUI (图形模式) 自解压文件 的 32 位 Windows 版本(Windows 95
,98,NT 等等),这些模块无法在 Windows 3.1 或 DOS 下运行。

使用 Default.SFX 模块于 RAR 压缩文件 以及 Zip.SFX 给 ZIP 压缩文件。

这些模块均支持简易的 Setup 命令,你可以将 Setup 命令叙述添加到自解压 压缩文件注释
中。下面是 Setup 命令的叙述,在命令上单击可获得详细描述。

Delete 解压前先删除文件
License 显示程序的许可协议
Overwrite 选择文件的覆盖模式
Path 设置默认目标路径
Presetup 指定解压前运行的程序
SavePath 存储目标路径
Setup 指定解压后运行的程序
Shortcut 创建解压文件的快捷方式
Silent 跳过开始时的对话框
TempMode 解压压缩文件到临时文件夹
Text 添加文本到自解压对话框文本窗口
Title 设置自解压对话框标题
这里你可以查看 完整安装脚本的简易示例。

注意

在自解压模块包含的 Windows 资源是允许修改成你所需要的样子的。例如,你可以在起始对话框中显示你希望的位图。自解压模块已经使用 UPX 工具压缩过,并且在编辑资源后它们是无法运行的,因此未压缩过的自解压模块在 http://www.rarlab.com 的压缩文件 UnpSFX.rar
里。
WinRAR 并不提供修改资源的工具或是文件,如果你要如此做的时候,你必须有资源编辑器,并知道要如何使用它们来工作。但如果标准的自解压对话框即可满足你的话,你就不需要再修改资源了。




Delete=<文件名>

在解压到目标文件夹之前删除指定的文件,允许数个 Delete 命令。
如果在此指定的文件被锁定而无法删除,自解压模块在解压前会试着将它临时重命名,并在 Windows 重新启动时删除它,这能不能成功则取决于 Windows 版本的差异。
示例:

Delete=winrar95.exe

Delete=rarlng.dll

当运行自解压文件时显示指定的作为软件许可协议文本。用户既可以接受它并继续解压或者拒绝它并退出。
许可可以包含HTML 或者纯文本格式。在以后的处理过程中,为了使字符串和对话框匹配,自解压模块将合并和重新格式化指定的字符串。所以如果你希望重新产生一个新的段落,你需要在它前面放一个空的字符串。
你可以使用 HTML 来控制颜色,字体和显示的格式。HTML 语法的描述可以在 The World Wide Web Consortium 站点找到。也可以使用网页编辑程序来产生 HTML 文本。

示例:

License=最终用户许可协议书

{
所有版权于 RAR 均属于作者所专有。

此程序是共享软件,任何人在测试期限内均可以使用此软件。
在测试期限过后,你“必须”注册。
}


Overwrite=[n]

如果[n]为 0,在覆盖文件之前用户将会被先询问。这是 覆盖 命令的默认动作,可以不需要指定。如果[n]不存在或是等于[1],文件将在没有确认的状况下全部覆盖。如果[n]等于[2],所有已存在的文件将不会被覆盖。

示例:
Overwrite=1


Path=<路径>

设置默认的目标路径。路径的绝对使用起始点在不更改的情况下为<驱动器号>:,如果 <路径>
只包含了名称,它将会被附加到“Program Files”文件夹下,如果你希望关闭如此的作用,请从“.\
”字符开始定义起始 <路径>。

示例:
a) 设置“Calc 3.05 beta”为文件夹名,位置在“Program Files”下,当成默认路径:

Path=Calc 3.05 beta

b) 设置“C:\Calc”当作默认路径:

Path=C:\Calc

c) 设置“Calc”在根目录下当作默认路径:

Path=.\Calc


Presetup=<程序>

自解压在解压之前将试着运行 <程序>,在运行 <程序> 之前必须先指定目标文件夹。你可以使用此命令,比如说,当安装新版本于旧版本上面时,用以删除先前的程序版本。如果程序名包含空格,它必须包含在引号之内。
示例:
Presetup=uninstall.exe /clean

SavePath

这个命令允许自解压程序在注册表中存储用户输入的目标路径,并在自解压文件下一次运行时恢复相同的 Path。原来的 Path 命令内容被放在输入目标路径区域的列表下拉菜单中,所以用户可以在以前输入的和原始路径中选择。
当安装新版本或更新一些软件到同样的目录时,这个功能可能很便利。它允许只改变一次目标路径,而不需要每次都输入。
SavePath 命令只能和 Path 命令一起使用一次。
示例:

Path=Calc 3.05

SavePath


Setup=<程序>

在成功解压之后自解压将会试着运行 <程序>。在运行 <程序> 之前,包含已解压文件的文件夹将会设为当前文件夹
示例:
Setup=setup.exe

注意

1) 如果你在使用自解压运行 InstallShield setup.exe 有问题的话,请试着运行 “setup.exe /SMS”
来代替简洁的 “setup.exe”。此开关允许自解压检测安装程序的退出。
2) 全部在自解压命令行所指定的参数都会从 Setup=<程序> 命令提交给程序,自解压它自己则只认得 -s 开关,也就是强制缄默安装模式而不显示开始对话框。
3) 自解压模块在启动安装程序前设置 sfxname 环境变量。这个变量包含自解压模块的名字,所以安装程序可以在需要这样的信息时读取它。

shortcut=<目标类型>,<源名>,<目标文件夹>,<描述>,<快捷方式名>

为解压的文件常见一个快捷方式。

目标类型 是一个一个字符宽的区域,可以有下列值:

D 在桌面创建快捷方式
S 在开始菜单创建快捷方式
P 在开始菜单/程序中创建快捷方式
T 在启动菜单中创建快捷方式
源名 是压缩文件名。

目标文件夹 是创建快捷方式的文件夹,如果它不存在,它将被自解压文件创建。
描述 是描述快捷方式的字符串。
快捷方式名 是由自解压创建的 .lnk (快捷方式)文件的文件名。
所有参数用逗号分隔。如果你需要添加逗号字符在参数内,镶入整个参数引用。如果你需要在字符串中插入一个引用标记,要输入两次引号。只有 目标类型 和 源名 是必需的,其它参数可选。
例子
在桌面创建在 WinRAR 文件夹中连接到 winrar.exe 的快捷方式,带有“WinRAR 可执行文件”的描述和“WinRAR 压缩文件管理器”的名称:

Shortcut=D,winrar.exe,WinRAR,“WinRAR 可执行文件”,“WinRAR 压缩文件管理器”


Silent[=参数]

开始解压时不显示开始对话框。
参数 可以是 1 或 2。如果 参数 是 1,开始解压对话框会完全隐藏,包含进程指示和文件名。如果
参数 是 2,则跳过开始解压的确认,但用户仍然可以看到压缩文件的解压进程。
示例:
Silent=2



TempMode=[问题叙述][@窗口标题文本]

此命令强制自解压创建一个临时目录,将全部文件解压至此,然后开始运行 Setup 命令所指定的程序,并在完成 Setup 程序之后将临时目录中的内容全部清除。当运行这些操作时,自解压会自动设置为 缄默模式。如果 TempMode 命令存在的话,叙述中将有 Setup 命令且不得使用 path 命令。
TempMode 命令可以有字符串参数的选项,在解压之前可用以定义问题和问题的标题。这样的例子,仅在当用户选择了“是” 按钮时才会开始解压。

示例:

a) TempMode
b) TempMode=你希望继续安装 Calculator 3.05 吗?, Calculator 安装程序


此命令支持两种语法版本:
a)

Text=<字符串>

b)

Text

{
字符串 1
字符串 2
...

}

它在自解压模块的输出窗口添加指定纯文本或HTML字符串。当自解压模块第一次遇到 Text 命令,在添加<字符串>前,它重设这个窗口默认内容。其后的命令追加<字符串>到已经存在的文本后。
依赖于使用的语法,这个命令可以一次添加一个或者数个字符串。

对于纯文本的过程中,为了使字符串和对话框匹配,自解压模块将合并和重新格式化指定的字符串。所以如果你希望重新产生一个新的段落,你需要在它前面放一个空的字符串。
你可以使用 HTML 来控制颜色,字体和显示的格式。HTML 语法的描述可以在 The World Wide Web Consortium 站点找到。也可以使用网页编辑程序来产生 HTML 文本。

示例:

a) 添加单个字符串到对话框窗口
Text=这是我的新程序

b) 添加指定文本到对话框窗口“Text

{
此程序最有趣的特性是:

- 支持 Windows 剪贴板;

- 每一个处理的文件大小最大为 10KB;

}




Title=<标题>

设置自解压的窗口标题。
示例:
Title==Calculator,版本 3.05


自解压命令: 脚本范例
下面脚本设置对话框标题为“Calculator 3.05”,更改对话框的显示文本,设置默认的解压路路径为“Program Files\Calculator”,启用覆盖现有文件并在解压所有文件后运行 Setup.exe。

Title=Calculator 3.05
Text
{

Calculator 是共享软件,任何人都可在 40 天
的评估试用期间内使用此软件。
在超过测试期限之后,如果你希望继续使用
Calculator 的话,你“必须”注册。

}
Path=Calculator
Overwrite=1

Setup=setup.exe

 楼主| 发表于 2006-1-4 16:58:15 | 显示全部楼层

[附件]轻松打造个性化RAR自解压界面

对于共享软件作者,最头疼的莫过于是作品被破解了!于是越来越多的程序都被加壳保护了,给程序加壳的目的在于可以对软件达到压缩的目的,并且可以保护程序不被非法修改或反编译程序。
而今天我们介绍的内容就是要对被加壳的WinPE资源进行反修改!这其中涉及到破解软件和资源修改两方面的技术,有兴趣的请继续往下看!
这次我准备对常用的WinRAR下手,做一个个性化的自解压缩界面出来!
在讲解前有必要对文中涉及到的工具作一个介绍:
Language:
文件类型检测工具。可以检测出文件的最终编译程序或文件加壳、加密类型。
UPXmend:
UPX 是一个可执行文件加/解壳的软件,这是图形操作版本。
Resource Hacker(资源黑客):
用于查看,修改,添加和删除 Win32 可执行文件的资源。
RAR自解压缩模块:在WinRAR的安装目录下,名为Default.SFX的文件就是它了。

①首先必须要知道被编辑的Win32 可执行文件是否被加壳,使用Language打开RAR自解压缩模块,如果版本低于3.0的模块,将会显示如图的信息,从中我们可以得知该模块是使用UPX进行加壳处理的!



②知道是使用什么工具加壳的,就要使用相应的脱壳软件进行脱壳了,在此我们选用UPXmend进行脱壳操作,在界面上点击“浏览”按钮,
然后选择要进行脱壳的文件,这里我们选择Default.SFX,确定后点击“解压缩”按钮,如果正常的话稍等几秒就可以啦!



③接下来要做的就是资源修改了,使用Resource Hacker(资源黑客)打开脱了壳的Default.SFX,如图所示所有资源将会列树显示在左边的目录
树中,我们分步进行修改!



1.修改位图:使用任意图像编辑软件制作一幅93*302象素的图片(这是在模块中导出原始图片的实测象素!),保存为BMP格式文件。
在资源黑客中选择“操作”>>“替换位图”,在弹出的窗体中单击“打开新位图文件”按钮,选择要替换的BMP图像,
正确的话将会在左下角显示图像的预览图,点击“替换”按钮就会将原有位图替换成所选的位图!



2.添加额外资源:展开左边目录树的“对话框”项,再展开其下的STARTDLG项,选择2052项,如图所示将会显示解压模块的主窗体。





在窗体的空白地方右键单击,选择“插入控件”菜单,在“预定义控件”右边的下拉列表中选择“STATIC”插入一个
标签控件,然后在“标题”项中输入要显示的文本,确定后再使用鼠标调整控件到适合大小即可!



其它资源的修改就不多作介绍了,读者可自行尝试。

3.退出前一定要点击“文件”菜单上的“保存”项,不然以上工作都是徒劳。

④脱壳后的模块是不能直接使用的,同理要使用UPXmend再进行加壳压缩操作,对模块重新封装。

⑤为修改后的SFX文件改一个适当的文件名,复制到WinRAR的安装目录下,这样就完成了整个修改的工作。

SFX模块使用方法:
制作压缩文件时在“常规”标签页勾选“创建自解压格式压缩文件”,再转到“高级”标签页中点击“自解压选项”,



在弹
出的“高级自解压选项”对话框中选择我们自定义的模块,如图所选的lzl.sfx就是刚才所修改的模块啦!单击确定就会生成具有个性化的自解压缩文件了!



如图就是最后的效果了!



最后补充一下:1.壳不是只有UPX一种,要根据所侦测到的壳选用不同的脱壳工具;
2.进行资源修改时每一步确认无误后一定要点保存,因为没有撤消功能,Win32的文件结构损坏一点就不能运行的!
3.平常修改资源时经常会遇到2052这样的资源ID,一般1028是对应繁体中文、1033是对应英文、2052是对应简体中文的!
4.对于软件的发布,有时使用WinRAR制作解压安装程序比直接使用安装程序更绿色环保,而且操作也非常简便!
5.高版本RAR的模块可能不能被解压,读者可使用附件中所提供的模块进行操作。

本帖附件:[点击下载]

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|3D数字艺术论坛 ( 沪ICP备14023054号 )

GMT+8, 2025-5-6 03:15

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表