在参加 CTF 比赛时我偶然发现了这个ARJ
文件。经过一番研究后发现。
ARJ 是 .arj 文件的归档程序,与大多数归档文件类型一样,它们用于将多个文件和文件夹存储并压缩为一个易于管理的文件。
我想提取这个 ARJ 文件。我有 4 个文件,分别命名为36 , 18914 , 19880 , E723
。
我试过这个命令
arj e 36
它给出了这个错误,
Can't find 36.arj
Found 1 error(s)!
因此,我将这些文件重命名为36.arj , 18914.arj , 19880.arj , E723.arj
并尝试了这个命令
arj e 36.arj
它给出了这个错误,
Processing archive: 36.arj
Archive created: 2019-01-31 17:33:18, modified: 1970-01-01 21:54:09
Bad header
更新:CTF 终于结束了,我读了与这个问题相关的文章。其实我挖错了坑。问题中给出的主文件已损坏,我们不得不correct the headers
。后来我们必须使用提取该文件binwalk
。再次感谢 kamil 和 roberts
答案1
ARJ
最初来自 windows 世界,文件类型由文件名决定扩大。我试验了这个 - 创建了36
这样命名的存档arj a 36 ./*.pdf
- 程序自动添加了arj
扩展名,所以我得到了文件36.arj
。然后我测试了提取 - 它确实有效。但是,当我删除扩展名并尝试类似的命令时,arj e ./36
它给出了未找到文件 36.arj 的错误。一旦我重新添加扩展名 - 完全相同的命令有效。所以我担心如果你必须使用来管理文件,arj
你需要像在 Windows 上一样使用扩展名。
如您所见,上述步骤解决了丢失文件的问题。
如果还有其他问题,您需要排查错误所在。例如,您在自己的计算机上创建存档(就像我一样),然后查看文件是否正确处理。然后使用其他软件进行测试,例如使用7zip例如,对于 Windows,它包含 arj 解包器。或者跨平台等效程序豌豆压缩- 您也可以在 Linux 上轻松安装。然后告知我们结果。
也许你可以得到一些文件甚至不在档案中如果它已损坏。如果在提取过程中,ARJ 因“文件头错误”或“文件数据错误”错误消息而中止,则使用-jr
ARJ 选项,您应该能够恢复档案中未损坏的文件。损坏的文件是无法恢复的。(这是来自 ARJ 官方网站的信息。)作为预防措施,您可以使用该-hk
选项构建错误更正恢复文件,该文件将允许您更正轻微的数据损坏问题。(该选项仅在您构建档案时才有用)。
但对于 CTF 竞赛来说 - 可能你需要在几个未损坏的文件中获取所需的信息。