十六进制如图显示
[url=https://imgchr.com/i/y8WOc6][img]
里面好像有 utf-8 编码 efbf bdef bfbd,直接提取打不开。
1
wqhui 2021-02-05 13:54:44 +08:00
这有点像二进制流,存进去前怎么处理的,取出来逆向处理一下也变不了图片吗
|
2
ShinChven 2021-02-05 13:54:58 +08:00
我们是存的 base64,从在相应请求的时候转成二进制。
当然这样性能很低。 于是加了一个缓存,文件被第一次读取的时候同时会生成一个缓存文件放在磁盘上(容器内,重建容器即清空)。 下次再请求这个文件的时候会优先去读缓存。 |
5
lllllliu 2021-02-05 14:13:15 +08:00
能丢给我一份二进制么。
|
6
debuggerx 2021-02-05 14:19:14 +08:00
难道不是 jfif 格式很多软件打不开的问题么……
|
7
Flymachine 2021-02-05 14:21:25 +08:00
@cage111
** 1. 先解析文件头,找找文件类型标识: ``` (以下百度) 1.JPEG/JPG - 文件头标识 (2 bytes): $ff, $d8 (SOI) (JPEG 文件标识) - 文件结束标识 (2 bytes): $ff, $d9 (EOI) 2.TGA - 未压缩的前 5 字节 00 00 02 00 00 - RLE 压缩的前 5 字节 00 00 10 00 00 3.PNG - 文件头标识 (8 bytes) 89 50 4E 47 0D 0A 1A 0A 4.GIF - 文件头标识 (6 bytes) 47 49 46 38 39(37) 61 G I F 8 9 (7) a 5.BMP - 文件头标识 (2 bytes) 42 4D B M 6.PCX - 文件头标识 (1 bytes) 0A 7.TIFF - 文件头标识 (2 bytes) 4D 4D 或 49 49 8.ICO - 文件头标识 (8 bytes) 00 00 01 00 01 00 20 20 9.CUR - 文件头标识 (8 bytes) 00 00 02 00 01 00 20 20 10.IFF - 文件头标识 (4 bytes) 46 4F 52 4D F O R M 11.ANI - 文件头标识 (4 bytes) 52 49 46 46 R I F F ``` ** 2. 有符合的标识就说明没做其他操作,提取出来按相应格式处理即可。 ** 3. 没标识就是二次加工过了。先试试自己加文件头标识,看看能不能还原。不行就要自己去找解码方式了 *** 1. 如果有原处理程序,可以自己存一张纯色图片,根据编码结果的差异,检索确定解码方式。或者读取里面的图片,来检索确定解码方式 *** 1. 如果没有原处理程序。那就只能靠规律去猜了。猜测图片的大致内容,通过大色块(比如`2C2C 2C2C`这段),猜测它原本指的是哪种颜色,从而找出解码方式。这就比较麻烦了。 |
8
cage111 OP |
9
debuggerx 2021-02-05 14:25:44 +08:00
难道不是 jfif 格式很多软件打不开的问题么……
@debuggerx 只看到 jfif 没看到前面的错误编码,大意了,打搅了。。。 |
10
kiracyan 2021-02-05 14:30:14 +08:00
这图片从来没人用到吗?
|
11
debuggerx 2021-02-05 14:38:10 +08:00
看上去是二进制数据被 utf 强转保存 已经被破坏了 没救
|
12
jtnwm 2021-02-05 14:43:05 +08:00 via Android
锟斤拷
|
13
learningman 2021-02-05 14:44:43 +08:00
可以拿来当 CTF 的题(
|
14
lllllliu 2021-02-05 15:33:57 +08:00
11 楼说的对,utf 强转的已经丢失掉很多东西了。
|