如何移除Inno Setup创建的口令
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何移除Inno Setup创建的口令相关的知识,希望对你有一定的参考价值。
Universal Extractor相信大家对捆绑”东西“的安装包很不喜欢吧!现在有了些工具就可放心了,它能解开现在流行打包工具比如:NSIS,Inno 等等!所打包的安装程序,功能很强大,不信你可试一下!
1.5 相对于1.4.2的更新(02222007):
增加使用TrID来进行文件类型检测; 判断文件格式不再依赖扩展名
增加支持 Adobe Reader 7.x 和 8.x 安装程序
增加使用uudeview来支持 Base64, Quoted-Printable, UUencoded, 以及 yEnc 文件
增加使用cmdTotal + InstallExplorer来支持 Gentee, 安装程序 VISE, 和 SetupFactory 安装程序
增加使用stix来支持 InstallShield 3.x SFX 安装程序
增加使用i5comp支持 InstallShield 5.x CAB 文件
增加支持 Itsy 包 (.ipk)
增加使用cmdTotal + DBX 插件来支持 Outlook Express (DBX) 档案
增加支持 Pea 档案
增加使用cmdTotal + PDunSIS支持 SIS (SymbianOS) 安装程序
增加支持 StuffIt packages (.sit, but not .sitx)
增加使用7-zip 和 cmdTotal + MSI 插件支持 Windows Installer 补丁(.msp) 文件
增加使用booz支持 Zoo 档案
增加支持无扩展名文件(例如, 未知文件)
安装程序增加 noappendext, noremovedupe, noremovetemp 参数
安装程序增加对.dbx, .msp, .pea, 和 .sit 文件关联
增加波兰文、俄文、斯洛伐克文语言文件
修复不能释放 UPX 加壳过的 Zip 和 7-Zip 安装程序的BUG
修复 Inno Setup 安装程序检测方面的问题
修复某些安装程序(主要是 InstallShield)中的潜在的文件输出BUG
修复ACE SFX 处理程序为解压失败继续处理
修复InstallShield 缓存模式处理程序挂起的问题
移除了 InstallShield cab文件的“i6comp 按组”选项
移除了 expand.exe 以利于使用 7-Zip
从安装程序移除了.in_, .oc_, .sr_, .1, .bin, .imf, .lib, 和 .wz 文件关联
更新 UniExtract 为默认扫描文件类型签名; 扩展名用作替补判断
更新 UniExtract 释放文件时在系统托盘处显示图标
更新 UniExtract 的PEiD 和log提示窗口默认选择“取消”按钮
更新 UniExtract 国际化支持简单翻译,减小了语言文件大小
更新 UniExtract 增加许多代码,以便可能时增加健壮性、可用性和效率
更新 使用cmdTotal + InstallExplorer支持 Inno Setup, NSIS, Wise 安装程序, 和 InstallShield
更新 ACE 支持,包括 非PE ACE SFX 档案
更新 BINCUE 支持,更好的转换和验证
更新 InstallShield 3.x 档案支持,增加 STIX 释放选项
更新 InstallShield CAB 支持以显示进度对话框
更新 InstallShield 缓存释放以支持多重嵌套的MSI
更新 InstallShield 缓存释放以更好检测安装程序窗口
更新 InstallShield 支持以提供选择 isxunpack 或缓存模式
更新 Mhtml 支持以包括通过 cmdTotal + MHT Packer 插件进行释放的选项
更新 Wise 安装程序支持以包括 非PE 的 Wise 安装程序
更新 Wise 安装程序支持以包括 unzip 选项
更新 Wise 安装程序支持以支持增补丢失的文件扩展名
更新 Wise 安装程序支持以提供移除临时文件的选项
更新 Microsoft 自释放 CAB 支持,更好的检测和强健性
更新 Windows Installer 支持以支持增补丢失的文件扩展名
更新 Windows Installer 支持以包括通过 cmdTotal + MSI Packer 插件进行释放的选项
更新 AutoIt to 3.2.2.0
更新 bin2iso 到 1.95
更新 Inno Setup 到 5.1.9
更新 UnRAR 到 3.62
参考技术A 删除对应的脚步代码即可
INNO SETUP脚本向导创建的基本脚本
脚本范例分析:先来看看一段用INNO SETUP脚本向导创建的基本脚本的[Setup]段:
[Setup]
AppName=Premiere 6.5 汉化补丁-----------------(程序名称)
AppVerName=Premiere 6.5 汉化补丁------------(程序名称+版本)
AppPublisher=浩子工作室----------------------------(开发单位或作者)
AppPublisherURL=http://www.haozi.com------(开发单位或作者网址)
AppSupportURL=http://www.haozi.com-------(技术服务网址)
AppUpdatesURL=http://www.haozi.com-------(更新升级网址)
DefaultDirName={pf}/Adobe/Premiere 6.5-----(默认安装路径,{pf}就是“Program files”文件夹)
DefaultGroupName=Premiere 6.5 汉化补丁----(默认添加在开始菜单中的项目名称)
AllowNoIcons=yes--------------------------------------(创建快捷方式图标)
LicenseFile=D:/汉化/许可文件.txt------------------(显示许可协议)
InfoBeforeFile=D:/汉化/汉化说明.txt-------------(显示软件说明)
OutputDir=成品-----------------------------------------(安装程序存放位置)
OutputBaseFilename=Premiere 6.5 汉化补丁--(安装程序名称)
SetupIconFile=汉.ico----------------------------------(安装程序图标)
Compression=lzma-------------------------------------(压缩器:Lzma)
SolidCompression=yes--------------------------------(压缩方式:一次性压缩)
括号里内容是笔者添加的注释,我想大家应该能够理解。不过,作为汉化补丁,一般不需要创建开始菜单项目,不需要创建快捷方式图标,不需要卸载功能,而要求具有自动寻找原程序安装位置的功能,这样可使补丁安装更方便快捷, 因此作了如下修改:
(1)去掉以下项目:
DefaultGroupName=Premiere 6.5 汉化补丁----(默认添加在开始菜单中的项目名称)
AllowNoIcons=yes--------------------------------(创建快捷方式图标)
(2)增加以下项目:
DisableDirPage=yes-------------------------------(不用指定安装路径)
DisableProgramGroupPage=yes---------------(不要添加开始菜单项目)
DirExistsWarning=no-----------------------------(不提示文件夹已存在)
Uninstallable=no-----------------------------------(不要卸载程序)
(3)修改以下项目:原来的:
DefaultDirName={pf}/Adobe/Premiere 6.5----(默认安装路径,{pf}就是“Program files”文件夹)
关键问题是,这个路径是死的,一旦你在安装Premiere 6.5时更改了安装路径,比如有些人喜欢把大程序安装到D盘,这么一来,原路径就无效了,结果您还得手动指定正确的路径。这样的安装程序就显得太“笨”了。那么,如何让补丁程序自动获得原程序的实际安装路径呢?回答是:利用注册表。大多数应用程序安装后都会向注册表的特定位置写入安装和卸载信息,因此,只要让安装程序提取这些信息并转位自己的安装路径,就可实现自动定位功能。Inno Setup早就支持这个功能了,现在,我们把Premiere 6.5的注册表信息告诉它就行了,请看修改后的:DefaultDirName={reg:HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall/Adobe Premiere 6.5,InstallLocation}-------------(从注册表读取Premiere 6.5的实际安装路径) 接着来看看基本脚本的[Files]段, 前面讲过,这一段是用来定义要打包到安装程序里的文件的, 因此, 要搞清楚这几个名词:Source:-------------文件的存放位置(来源)
DestDir:-------------文件要安装到什么地方(目标)
Flags:----------------对文件的附加处理参数(标示)下面来看看具体内容:
[Files]
Source: "D:/汉化/Preminfo.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:/汉化/主程序/*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "D:/汉化/插件/*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
生词注释:{app}----------------这是个常量, 代表程序安装路径,只要你在[Setup]段中的DefaultDirName项中进行了设定,其他地方就可以用它来代替。可能有人会问,常量是什么?通俗地说就是固定词汇,它们用简单的符号分别代表操作系统中的一些固定目录,使脚本简洁明了。具体内容可参看Inno Setup的帮助文本里的相关说明。Ignoreversion--------不理会文件的版本问题。Recursesubdirs-------把主文件夹和子文件夹一块儿打包(一锅端)。Createallsubdirs-----安装时创建相应的子文件夹。对[Files]段的修改:很多汉化补丁都是直接用汉化过的文件去替换原文件,很少在原程序目录里创建新的文件夹,因此可以去掉 Flags 标示中的 Createallsubdirs 项。
在安装的时候执行某个可执行文件...
[Files]
Source: "你要执行的文件名";
DestDir: "{app}"; Flags: ignoreversion deleteafterinstall .....
[Run]
Filename: "{app}/你要执行的文件名"; Description: "Setup"; Flags: skipifsilent shellexec
附:
Inno Setup的安装脚本包含的主要段落:
[Setup] 段:安装和卸载程序的全局设置,如作者信息、安装目录、压缩方式、是否卸载等。
[Types] 段:定义安装组件的类型,如“完全安装”、“最小安装”、“选择安装”。
[Components] 段:定义可供选择安装的所有组件
[Tasks] 段:定义安装期间所有由用户定制的任务。
[Dirs] 段:定义用户想额外创建的目录。
[Files] 段:定义要打包到安装程序里的文件。
[Icons] 段:定义要创建在开始菜单、桌面或任务栏等位置的快捷方式和图标。
[INI] 段:定义向用户系统中 .INI 文件中添加的新条目。
[InstallDelete] 段:定义要在安装之前删除的文件或文件夹。
[Languages] 段:定义安装程序中可使用的语言(适用于多国语言版)。
[Registry] 段:定义安装过程中要读取、新建或删除的注册表项。
[Run] 段:定义要在安装结束时运行的程序。
[UninstallDelete] 段:定义要在卸载时删除的其他文件或文件夹。
[UninstallRun] 段:定义要在开始卸载前运行的程序
以上是关于如何移除Inno Setup创建的口令的主要内容,如果未能解决你的问题,请参考以下文章