InstallShield安装包的序列号逆向

查看 135|回复 11
作者:dbgcode   
操作系统:                   Windows7
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

微软, 序列号

dbgcode
OP
  


ULis 发表于 2021-10-31 17:59
学习了,还想请教下楼主如果对于那种单exe且不能解压的该怎么办呀,这个exe自行解压出来的临时文件夹名字是 ...

关于解压
帖子最后给出了不能解压的解决办法,实在解压不了,那我也帮不了你,你只能自己研究了。
一个思路,供你参考。
在软件打开中,把临时文件拷贝出来,一般可以使用,感觉帖子好就加个热心值。
dbgcode
OP
  


skip2 发表于 2021-10-13 10:01
教程中所用到的isd、sid等程序,最好能附上链接或者上传上来

楼主建议的很好,是我考虑不全,工具网上找确实麻烦,isd和sid反编译脚本工具已经上传。
dbgcode
OP
  

你的申请帖还没有报道。
老万   


Hmily 发表于 2021-10-12 15:53
你的申请帖还没有报道。

登录帐号我昨天已经回复了,提示要审核。要如何回复?退出登录后回复,回复时不能点回复直接评论?
freezer   

谢谢楼主分享,学习了
lovehfs   

感谢分享。学习
yyjpcx   

学习一下压缩包的内部机理
pizazzboy   

没有发成品  是否可以发下程序名呢?
lyliucn   

很精彩的帖子,谢谢分享。
您需要登录后才可以回帖 登录 | 立即注册

返回顶部