InstallShield版本: 6.X
工具: sid,isd,7zip,exeinfo
InstallShield安装包的序列号逆向
InstallShield安装包制作工具一直是各大公司的首选,当然现在也有很多公司使用Inno setup和NSIS,但IS在安装包制作领域的地位我就不说了,一直和微软合作。VS指定制作工具(IS官方提供InstallShield Limited Edition for Visual Studio免费版),网上IS安装包的破解资料比较零散,让很多新手看完后有点不知所云,这其中也包括我。最近研究了下,顺便总结后发出来和大家共同交流,大神就忽视吧,这个教程只是入门级,不足之处敬请指正。
此文通过反编译IS脚本(inx文件),跳过安装过程中要输入的序列号的选项
1、确定安装包为IS制作。
2、找到安装包脚本。
3、反编译脚本,找到关键代码。
4、修改代码并测试。
5、算法分析。
一、查看安装包是什么工具制作,早期的IS安装包都是一个个Disk文件夹。
现在大多是单个文件(*.exe),可以通过右键属性-详细信息查找蛛丝马迹,但个别软件修改比较彻底,看不到安装包信息,就只能用exeinfo工具了(也可用PEID或者DIE),把安装包文件拖到此窗口上即可。
000.png (160.31 KB, 下载次数: 0)
下载附件
2021-10-12 13:26 上传
二、确定了安装包是IS制作,但整合的单个文件没法反编译,只能拆包了,让单个exe文件变为Disk文件夹的早期状态,IS6.x或者7.x制作的安装包可以直接用压缩软件解压,此处用7zip右键解包成一个文件夹,解压后可以看到文件夹里有个setup.inx的文件(如果看不到inx文件,可能是高版本安装包,换用ISX命令后工具解压)。
002.png (84.72 KB, 下载次数: 0)
下载附件
2021-10-12 13:59 上传
三、反编译脚本,ISD和SID都可以反编译inx脚本,sid可以反编译也支持修改后重新生成脚本;ISD反编译的脚本注释信息比较全面,生成文本文件更容易查找查看,但不能重新生成脚本。这里用isd,win+r打开运行对话框,在编辑框内输入cmd,回车打开命令行,命令行窗口输入cd C:\isd(切换到isd目录(这里是C:\isd)),再输入isd.exe setup.inx(注意把setup.inx拷贝到isd所在目录),编译后会生成一个setup.txt文档;命令行输入注意:输入最好在英文输入状态,命令和参数间要有一个空格,最好带上文件扩展名。
003.png (102.85 KB, 下载次数: 0)
下载附件
2021-10-12 14:21 上传
IS生成的安装包,一般是欢迎窗口,协议窗口,用户信息窗口(注册码窗口),我们需要定位到用户信息这里。运行安装包随便输入个序列号,找到关键信息(此处是序列号serial)。一般会有提示信息,如果没有,可以通过先定位协议窗口(一般要加载licence.txt),或者通过查看公司名产品名,比较函数等信息辅助查找关键信息。
004.png (60.3 KB, 下载次数: 0)
下载附件
2021-10-12 14:30 上传
打开isd反编译脚本生成setup.txt,然后编辑-查找输入serial,我们查到有个函数调用提示序列号错误(ERROR_SERIAL),记录此处地址00005742,打开sid修改此地址的if条件为不等于。
005.png (92.11 KB, 下载次数: 0)
下载附件
2021-10-12 14:34 上传
四、打开sid,然后菜单栏file-open打开安装包文件夹内的脚本文件(setup.inx),脚本反编译需要时间,等待进度完成后,通过菜单栏goto-code start快速定位到代码段。找到地址00005742对应的代码,把if条件的等于改成不等于。
006.png (46.7 KB, 下载次数: 0)
下载附件
2021-10-12 14:43 上传
执行菜单栏file-patch changes,保存修改内容,完成脚本重新生成。然后打开安装包文件夹内的setup.exe,测试安装包,如果安装包还要求输入序列号,请继续通过脚本文件分析代码完成修改。
五、算法分析,在我们结果判断的上方不远就是算法的比对过程。
007.png (42.37 KB, 下载次数: 0)
下载附件
2021-10-12 15:06 上传
[Asm] 纯文本查看 复制代码label_22:
/* 0000563E: 000B */ n3 = n0
整个验证过程大致这样,读取序列号前六位和后6位和内部定义两个字符串数组的第一位和比对。
关于IS高版本的大致反编译:
解压失败可以用ISX,有位大神现在还在维护,名字一下子找不到就不写这里了,在github可以下载到最新版。如果还是解压不了,可以在打开安装包时在临时文件夹temp里看看,有惊喜也说不定,哈哈。
反编译脚本失败,IS6.x或IS7.x是不会失败的,失败一定是高于7的版本,例如IS11、IS12或者2010以后的版本等等。可以用isdcc31试下反编译,目前只有这个可以用,其他都失败(包括isd和sid,都是很老的版本,毕竟都是免费提供给大家都,也别太苛求了)。
编译命令供大家参考
isdcc31.exe -u setup.inx ;反编译setup.inx,生成setup.inx.dec
isdcc.exe setup.inx.dec >1.txt ;把dec文件转为1.txt文件。
如何重新生成脚本,因为sid1.0和sid1.2都不支持高版本,只能上16进制编辑器(010或者hex editor),根据汇编指令更改了。
isasm00.png (40.06 KB, 下载次数: 0)
下载附件
2021-10-12 15:32 上传
为了方便大家就提供下附件,资源来源于网络,一切所有权归原作者和后续的修改者,与本人无关,如要侵权论坛可自行删除。
本实例有sid一个软件就够,其他都是自己的习惯性操作,大家可以自选。
sxy installshield 6/7 script decompiler
sid.7z
(55.24 KB, 下载次数: 108)
2021-10-13 11:11 上传
点击文件名下载附件
IS脚本反编译
下载积分: 吾爱币 -1 CB
isd命令工具,用于查看反编译脚本
ISD.7z
(91.55 KB, 下载次数: 90)
2021-10-13 11:16 上传
点击文件名下载附件
IS脚本反编译查看
下载积分: 吾爱币 -1 CB