【讨论】“图种
所谓图种,就是网页上的图片点右键另存为,保存的时候改一下后缀(改成7z、RAR、ZIP等)就能变成合法的压缩包,并且能解压出东西。举例:
就是这张图,你点右键另存为,改成7z后缀,就能得到一个压缩包,解压这个压缩包可以得到一个16位DOS的COM程序。这是怎么做到的呢?
首先这个“图种”是我制作的(里面没有种子,所以它不能被称作“图种”)。它是GIF格式的。貌似GIF、BMP、JPG等格式的图片对文件大小的要求并不是很严格,所以就算你直接用WinHEX往文件末尾添加额外的字节,它也能正常显示。
但是如果你把这些“额外字节”写到文件的前面,它还是不能显示。
那么为什么WinRAR等软件就能找到这些额外字节(压缩包)呢?我估计WinRAR、Win7z、WinZIP等软件都提供“自解压格式”。然后这些软件为了能直接打开自解压文件,它们会在文件里一个字节一个字节地搜索文件标识(PK、7z、Rar!等标识),然后打开,列出里面的文件。
这意味着,如果你的EXE文件里面有个压缩格式的资源文件,你把你的EXE的后缀改成7z、RAR、ZIP,也能用WinRAR打开你的EXE中的压缩包。
今晚试试。
lichao:
这个我和熊宁一年前研究过,直接用dos命令copy /b a.jpg+b.rar c.jpg 就可以做到了
那么为什么WinRAR等软件就能找到这些额外字节(压缩包)呢?我估计WinRAR、Win7z、WinZIP等软件都提供“自解压格式”。然后这些软件为了能直接打开自解压文件,它们会在文件里一个字节一个字节地搜索文件标识(PK、7z、Rar!等标识),然后打开,列出里面的文件。
个人感觉没这么麻烦,这样太耗时,自解压文件的文件头里应该有个Rar文件头的偏移地址。不管是winrar读取,还是自解压程序读取,直接读取地址之后跳转读取就是。
不过改扩展名能读取这一点,个人感觉是winrar的为了读取受损的压缩文件或者自解压文件而设置的容错处理。 匚haos 发表于 2014-1-30 06:15
那么为什么WinRAR等软件就能找到这些额外字节(压缩包)呢?我估计WinRAR、Win7z、WinZIP等软件都提供“自 ...
嗯,确实一个字节一个字节的比较很费时。我觉得不只是WinRAR,Zip和7z应该也有类似的手段。要是换做我来编写这个东西,我也会考虑偏移量的。
文件改名后没任何反应= =
页:
[1]