关于问题解决:文件的伪装

32次阅读

共计 994 个字符,预计需要花费 3 分钟才能阅读完成。

小伙伴们有没有遇到过这样一个场景,两台设施之间只能够通过一个通信软件进行通信。软件只能发送图片,其余格局的文件是被限度下载的。如上面所示:

在这种状况下,一些小伙伴可能会想用批改文件后缀名的形式,将文件后缀名改成 pngJPG 等格局。

有这种想法,对文件这个概念可能不太熟悉。


批改后缀名会批改文件的类型吗?

文件名及后缀名与文件里的内容无关,在 windows 中,后缀名只辨别在你双击分件的时候,默认关上的形式。

严格来说,文件是没有类型的。在没有与程序关联前,文件里的内容就是一串编码字符,独自的一个文件是没有意义的。

通常的,一个被具备特定意义地文件,会有一套与之对应地程序对该文件地进行解析,例如,office 中的一个程序可能对 docpdf 文件解析,视频播放器可能对 MP4 等文件进行解析。

批改文件后缀名,文件里的内容并没有被扭转。将本应是 doc 内容的文件应用播放器程序进行关上,视频播放器不能辨认文件的内容,导致执行出错。


间接将文件后缀名批改成图片相干的后缀名 (pngjpg 等) 行不通,是否能够将其余文件放到图片中呢?

这个还真的能够。

先看一下图片的内容长什么样子,应用 notepad++ 开打图片文件:

图片文件有个特点是,在图片文件内容前面追加数据,如在 png 文件尾部 增加一些信息,再用 图像工具 关上该文件,是可能正确关上的。

因而能够将须要传输的文件追加到图片内容后。

当初我须要传输 context.zip 文件,能够将 content.zip 文件的内容,追加到 carrier.png 文件后。

请不要间接将 zip 文件的内容,复制到粘贴板,再粘贴到 png 文件中!
因为编码格局等问题,失去的内容不统一,最终导致操作失败。

下图是间接从粘贴板复制粘贴过去的,能够看到内容曾经产生了变动。

正确的做法是,应用命令行的形式:

#  copy /b  <file1> + <file2>  <file3> 将 file2 追加到 file1 前面,生成 file3.
# 图片要放在 file1 的地位
$ copy /b carrier.png + content.zip oupt .png

能够看到这样复制过去的内容就是无误了,这样就能够将 zip 伪装成图片的模式传输过来了。

传输过来后,再将 output.png 中后面的内容删了,即是一个 zip 文件。(目前是 png 结尾,将 png 改成 zip 就默认以压缩工具关上 output.zip 了)


如果感觉有播种的话,就请作者喝杯咖啡吧!

正文完
 0