关于问题解决:文件的伪装
小伙伴们有没有遇到过这样一个场景,两台设施之间只能够通过一个通信软件进行通信。软件只能发送图片,其余格局的文件是被限度下载的。如上面所示: 在这种状况下,一些小伙伴可能会想用批改文件后缀名的形式,将文件后缀名改成 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 了) ...