共计 994 个字符,预计需要花费 3 分钟才能阅读完成。
小伙伴们有没有遇到过这样一个场景,两台设施之间只能够通过一个通信软件进行通信。软件只能发送图片,其余格局的文件是被限度下载的。如上面所示:
在这种状况下,一些小伙伴可能会想用批改文件后缀名的形式,将文件后缀名改成 png
、JPG
等格局。
有这种想法,对文件这个概念可能不太熟悉。
批改后缀名会批改文件的类型吗?
文件名及后缀名与文件里的内容无关,在
windows
中,后缀名只辨别在你双击分件的时候,默认关上的形式。
严格来说,文件是没有类型的。在没有与程序关联前,文件里的内容就是一串编码字符,独自的一个文件是没有意义的。
通常的,一个被具备特定意义地文件,会有一套与之对应地程序对该文件地进行解析,例如,office
中的一个程序可能对 doc
、pdf
文件解析,视频播放器可能对 MP4 等文件进行解析。
批改文件后缀名,文件里的内容并没有被扭转。将本应是 doc
内容的文件应用播放器程序进行关上,视频播放器不能辨认文件的内容,导致执行出错。
间接将文件后缀名批改成图片相干的后缀名 (png
、jpg
等) 行不通,是否能够将其余文件放到图片中呢?
这个还真的能够。
先看一下图片的内容长什么样子,应用 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
了)
如果感觉有播种的话,就请作者喝杯咖啡吧!