我偶然发现Inno Setup安装程序带有其他单独的Arc归档文件(通常带有.bin扩展名),这些归档文件无法使用常规方法提取:


安装程序无法正常运行原因(例如
Runtime Error (at -1:0): Cannot Import EXTRACTFILENAME.),
由于ERROR: unsupported compression method srep不能使用FreeArc提取Arc文件,
另外,档案文件显然受到密码保护(尝试使用FreeArc UI打开它导致Enter解密密码对话框)。

如何处理这种情况?

#1 楼

这里有三个主要步骤:


您必须反编译/分解IS安装程序本身;最简单的方法是使用Inno Setup Decompiler;本质上,您需要从CompiledCode.bin文件中获取.exe,然后对其进行解散,可能会找到处理解压缩的代码-它通常调用ISArcExtract或类似的库函数,并放置在名为CURSTEPCHANGED的方法中。 >您必须获得SREP(SuperREP)提取程序(有关更多信息,请参见例如http://krinkels.org/resources/superrep-srep.107/和https://www.fileforums.com/showthread.php?p= 460707)-最简单的方法是获得一个名为SrepInside0.33.7z的软件包(可在各个地方下载),因为它捆绑了所有必需的文件(实际上,您将获得带有unarc.exe lib和CLS-srep.dll配置的cls.ini)。 >在Inno Setup的反汇编中,找到保存密码本身的变量(如果是ISArcExtract,则是传递的第7个参数),然后将其传递给unarc调用-请注意,它可能包含不可打印的字符(例如<32 ASCII码) ),因此建议您使用脚本传递密码。

请注意, Arc和SREP的不同版本/变体;但是,上述方法在大多数情况下应该可行。

评论


有没有办法让FreeArc用户打开那些垃圾箱?在设法解决arc.ini中的srep的外部压缩器条目之后,我设法打开了一些文件,但是其他文件(来自更新安装程序的文件)给出的块描述符已损坏。我知道它们是弧线,内部的inno文件具有unarc.dll。

– JasonXA
19年11月9日14:29



@JasonXA AFAIR(我已经一年没有这样做了,并且我没有任何相关的文件方便),这是一个版本不匹配的问题-FreeArc被废弃了。 v0.666,v0.67在野外漫游,一些人可以使用v0.70,并且现在还有FreeArc Next作为受支持的版本。尝试使用最新版本的YMMV。

–user15807
19年11月9日15:24