jpeg结构分析工具 vivo的特殊的照片jpg文件格式
不行:
jpeginfo不太好用,不能分析结构
https://pypi.org/project/jpegdata/?utm_source=chatgpt.com
推荐:
https://blog.didierstevens.com/2022/09/02/update-jpegdump-py-version-0-0-10/ https://blog.didierstevens.com/2018/01/29/new-tool-jpegdump-py/
https://github.com/eilam-ashbell/jpeg-dump?utm_source=chatgpt.com
vivo手机拍出来的这个jpg,是个特殊的段结构。(小米拍出来就是标准的段结构)
借此实现的特殊的,拍照后也能去时间水印的功能。
里边包含5张图片。。1号是最大的正常图,2号是恢复没加水印的裁剪下来的左下角的一小块,3号是缩略图,4号似乎是缩略图的灰度图(hdr用的),5号是更大一些的灰度图(hdr用的)
-e -f -c
Found SOI:
1 p=0x00000000 : m=ffd8 SOI
2 p=0x00000002 d=0: m=ffe1 APP1 l=51616 e=1.671165 a=10.327650
3 p=0x0000c9a4 d=0: m=ffe6 APP6 l= 568 e=5.046449 a=18.495575
4 p=0x0000cbde d=0: m=ffe2 APP2 l= 564 e=4.070801 a=35.837790
5 p=0x0000ce14 d=0: m=ffe5 APP5 l=65406 e=0.012234 a=0.067107
6 p=0x0001cd94 d=0: m=ffe6 APP6 l=65406 e=0.000000 a=0.000000
7 p=0x0002cd14 d=0: m=ffe7 APP7 l=65406 e=0.000000 a=0.000000
8 p=0x0003cc94 d=0: m=ffe8 APP8 l=65406 e=0.000000 a=0.000000
9 p=0x0004cc14 d=0: m=ffe9 APP9 l=65406 e=3.360859 a=32.084109
10 p=0x0005cb94 d=0: m=ffe9 APP9 l=65406 e=3.808124 a=45.270217
11 p=0x0006cb14 d=0: m=ffea APP10 l=65406 e=0.653317 a=5.143128
12 p=0x0007ca94 d=0: m=ffea APP10 l=65406 e=0.000000 a=0.000000
13 p=0x0008ca14 d=0: m=ffeb APP11 l=65406 e=0.476584 a=1.987401
14 p=0x0009c994 d=0: m=ffdb DQT l= 67 e=3.255574 a=0.828125 remark:
65/65 = 1.000000
15 p=0x0009c9d9 d=0: m=ffdb DQT l= 67 e=1.350020 a=0.265625 remark:
65/65 = 1.000000
16 p=0x0009ca1e d=0: m=ffc0 SOF0 l= 17 e=3.006239 a=13.214286 remark: p=8 h=4096 w=3072 c=3
17 p=0x0009ca31 d=0: m=ffc4 DHT l= 31 e=2.815937 a=0.750000
18 p=0x0009ca52 d=0: m=ffc4 DHT l= 181 e=7.270047 a=13.168539
19 p=0x0009cb09 d=0: m=ffc4 DHT l= 31 e=2.799180 a=0.642857
20 p=0x0009cb2a d=0: m=ffc4 DHT l= 181 e=7.243483 a=18.140449
21 p=0x0009cbe1 d=0: m=ffda SOS l= 12 e=2.446439 a=21.222222 remark: c=3
entropy-coded data: l=2743537 e=7.972074 a=84.767506 #ff00=8123
22 p=0x0033a8e0 d=0: m=ffd9 EOI
23 p=0x0033a8fb d=25: m=ffd8 SOI
24 p=0x0033a8fd d=0: m=ffe1 APP1 l= 924 e=3.900111 a=30.841477
25 p=0x0033ac9b d=0: m=ffe2 APP2 l= 564 e=4.114474 a=35.210339
26 p=0x0033aed1 d=0: m=ffdb DQT l= 67 e=3.393114 a=0.968750 remark:
65/65 = 1.000000
27 p=0x0033af16 d=0: m=ffdb DQT l= 67 e=1.240776 a=0.328125 remark:
65/65 = 1.000000
28 p=0x0033af5b d=0: m=ffc0 SOF0 l= 17 e=3.106891 a=28.071429 remark: p=8 h=1070 w=342 c=3
29 p=0x0033af6e d=0: m=ffc4 DHT l= 31 e=2.815937 a=0.750000
30 p=0x0033af8f d=0: m=ffc4 DHT l= 181 e=7.270047 a=13.168539
31 p=0x0033b046 d=0: m=ffc4 DHT l= 31 e=2.799180 a=0.642857
32 p=0x0033b067 d=0: m=ffc4 DHT l= 181 e=7.243483 a=18.140449
33 p=0x0033b11e d=0: m=ffda SOS l= 12 e=2.446439 a=21.222222 remark: c=3
entropy-coded data: l=37518 e=7.944633
a=82.685609 #ff00=169
34 p=0x003443ba d=0: m=ffd9 EOI
35 p=0x003446a5 d=745: m=fff2 l=52015 e=7.906344 a=76.359129
Found SOI:
1 p=0x00000724 : m=ffd8 SOI
2 p=0x00000726 d=0: m=ffe0 APP0 l= 16 e=1.985228 a=6.615385
3 p=0x00000738 d=0: m=ffdb DQT l= 67 e=4.506929 a=2.781250 remark:
65/65 = 1.000000
4 p=0x0000077d d=0: m=ffdb DQT l= 67 e=1.375467 a=1.078125 remark:
65/65 = 1.000000
5 p=0x000007c2 d=0: m=ffc0 SOF0 l= 17 e=3.006239 a=57.928571 remark: p=8 h=192 w=144 c=3
6 p=0x000007d5 d=0: m=ffc4 DHT l= 31 e=2.815937 a=0.750000
7 p=0x000007f6 d=0: m=ffc4 DHT l= 181 e=7.270047 a=13.168539
8 p=0x000008ad d=0: m=ffc4 DHT l= 31 e=2.799180 a=0.642857
9 p=0x000008ce d=0: m=ffc4 DHT l= 181 e=7.243483 a=18.140449
10 p=0x00000985 d=0: m=ffda SOS l= 12 e=2.446439 a=21.222222 remark: c=3
entropy-coded data: l=5583 e=7.945485 a=85.769975 #ff00=20
11 p=0x00001f62 d=0: m=ffd9 EOI
12 p=0x0000c9a4 d=43584: m=ffe6 APP6 l= 568 e=5.046449 a=18.495575
13 p=0x0000cbde d=0: m=ffe2 APP2 l= 564 e=4.070801 a=35.837790
14 p=0x0000ce14 d=0: m=ffe5 APP5 l=65406 e=0.012234 a=0.067107
15 p=0x0001cd94 d=0: m=ffe6 APP6 l=65406 e=0.000000 a=0.000000
16 p=0x0002cd14 d=0: m=ffe7 APP7 l=65406 e=0.000000 a=0.000000
17 p=0x0003cc94 d=0: m=ffe8 APP8 l=65406 e=0.000000 a=0.000000
18 p=0x0004cc14 d=0: m=ffe9 APP9 l=65406 e=3.360859 a=32.084109
19 p=0x0005cb94 d=0: m=ffe9 APP9 l=65406 e=3.808124 a=45.270217
20 p=0x0006cb14 d=0: m=ffea APP10 l=65406 e=0.653317 a=5.143128
21 p=0x0007ca94 d=0: m=ffea APP10 l=65406 e=0.000000 a=0.000000
22 p=0x0008ca14 d=0: m=ffeb APP11 l=65406 e=0.476584 a=1.987401
23 p=0x0009c994 d=0: m=ffdb DQT l= 67 e=3.255574 a=0.828125 remark:
65/65 = 1.000000
24 p=0x0009c9d9 d=0: m=ffdb DQT l= 67 e=1.350020 a=0.265625 remark:
65/65 = 1.000000
25 p=0x0009ca1e d=0: m=ffc0 SOF0 l= 17 e=3.006239 a=13.214286 remark: p=8 h=4096 w=3072 c=3
26 p=0x0009ca31 d=0: m=ffc4 DHT l= 31 e=2.815937 a=0.750000
27 p=0x0009ca52 d=0: m=ffc4 DHT l= 181 e=7.270047 a=13.168539
28 p=0x0009cb09 d=0: m=ffc4 DHT l= 31 e=2.799180 a=0.642857
29 p=0x0009cb2a d=0: m=ffc4 DHT l= 181 e=7.243483 a=18.140449
30 p=0x0009cbe1 d=0: m=ffda SOS l= 12 e=2.446439 a=21.222222 remark: c=3
entropy-coded data: l=2743537 e=7.972074 a=84.767506 #ff00=8123
31 p=0x0033a8e0 d=0: m=ffd9 EOI
32 p=0x0033a8fb d=25: m=ffd8 SOI
33 p=0x0033a8fd d=0: m=ffe1 APP1 l= 924 e=3.900111 a=30.841477
34 p=0x0033ac9b d=0: m=ffe2 APP2 l= 564 e=4.114474 a=35.210339
35 p=0x0033aed1 d=0: m=ffdb DQT l= 67 e=3.393114 a=0.968750 remark:
65/65 = 1.000000
36 p=0x0033af16 d=0: m=ffdb DQT l= 67 e=1.240776 a=0.328125 remark:
65/65 = 1.000000
37 p=0x0033af5b d=0: m=ffc0 SOF0 l= 17 e=3.106891 a=28.071429 remark: p=8 h=1070 w=342 c=3
38 p=0x0033af6e d=0: m=ffc4 DHT l= 31 e=2.815937 a=0.750000
39 p=0x0033af8f d=0: m=ffc4 DHT l= 181 e=7.270047 a=13.168539
40 p=0x0033b046 d=0: m=ffc4 DHT l= 31 e=2.799180 a=0.642857
41 p=0x0033b067 d=0: m=ffc4 DHT l= 181 e=7.243483 a=18.140449
42 p=0x0033b11e d=0: m=ffda SOS l= 12 e=2.446439 a=21.222222 remark: c=3
entropy-coded data: l=37518 e=7.944633
a=82.685609 #ff00=169
43 p=0x003443ba d=0: m=ffd9 EOI
44 p=0x003446a5 d=745: m=fff2 l=52015 e=7.906344 a=76.359129
Found SOI:
1 p=0x0033a8fb : m=ffd8 SOI
2 p=0x0033a8fd d=0: m=ffe1 APP1 l= 924 e=3.900111 a=30.841477
3 p=0x0033ac9b d=0: m=ffe2 APP2 l= 564 e=4.114474 a=35.210339
4 p=0x0033aed1 d=0: m=ffdb DQT l= 67 e=3.393114 a=0.968750 remark:
65/65 = 1.000000
5 p=0x0033af16 d=0: m=ffdb DQT l= 67 e=1.240776 a=0.328125 remark:
65/65 = 1.000000
6 p=0x0033af5b d=0: m=ffc0 SOF0 l= 17 e=3.106891 a=28.071429 remark: p=8 h=1070 w=342 c=3
7 p=0x0033af6e d=0: m=ffc4 DHT l= 31 e=2.815937 a=0.750000
8 p=0x0033af8f d=0: m=ffc4 DHT l= 181 e=7.270047 a=13.168539
9 p=0x0033b046 d=0: m=ffc4 DHT l= 31 e=2.799180 a=0.642857
10 p=0x0033b067 d=0: m=ffc4 DHT l= 181 e=7.243483 a=18.140449
11 p=0x0033b11e d=0: m=ffda SOS l= 12 e=2.446439 a=21.222222 remark: c=3
entropy-coded data: l=37518 e=7.944633
a=82.685609 #ff00=169
12 p=0x003443ba d=0: m=ffd9 EOI
13 p=0x003446a5 d=745: m=fff2 l=52015 e=7.906344 a=76.359129
Found SOI:
1 p=0x00350424 : m=ffd8 SOI
2 p=0x00350426 d=0: m=ffe1 APP1 l=51196 e=1.221882 a=7.528705
3 p=0x0035cc24 d=0: m=ffe2 APP2 l= 564 e=4.070801 a=35.837790
4 p=0x0035ce5a d=0: m=ffe5 APP5 l=65406 e=0.012234 a=0.067107
5 p=0x0036cdda d=0: m=ffe6 APP6 l=65406 e=0.000000 a=0.000000
6 p=0x0037cd5a d=0: m=ffe7 APP7 l=65406 e=0.000000 a=0.000000
7 p=0x0038ccda d=0: m=ffe8 APP8 l=65406 e=0.000000 a=0.000000
8 p=0x0039cc5a d=0: m=ffe9 APP9 l=65406 e=3.360859 a=32.084109
9 p=0x003acbda d=0: m=ffe9 APP9 l=65406 e=3.808124 a=45.270217
10 p=0x003bcb5a d=0: m=ffea APP10 l=65406 e=0.653317 a=5.143128
11 p=0x003ccada d=0: m=ffea APP10 l=65406 e=0.000000 a=0.000000
12 p=0x003dca5a d=0: m=ffeb APP11 l=65406 e=0.476584 a=1.987401
13 p=0x003ec9da d=0: m=ffdb DQT l= 67 e=3.255574 a=0.828125 remark:
65/65 = 1.000000
14 p=0x003eca1f d=0: m=ffdb DQT l= 67 e=1.350020 a=0.265625 remark:
65/65 = 1.000000
15 p=0x003eca64 d=0: m=ffc0 SOF0 l= 17 e=2.872906 a=11.214286 remark: p=8 h=2048 w=1536 c=3
16 p=0x003eca77 d=0: m=ffc4 DHT l= 31 e=2.815937 a=0.750000
17 p=0x003eca98 d=0: m=ffc4 DHT l= 181 e=7.270047 a=13.168539
18 p=0x003ecb4f d=0: m=ffc4 DHT l= 31 e=2.799180 a=0.642857
19 p=0x003ecb70 d=0: m=ffc4 DHT l= 181 e=7.243483 a=18.140449
20 p=0x003ecc27 d=0: m=ffda SOS l= 12 e=2.446439 a=21.222222 remark: c=3
entropy-coded data: l=401885 e=7.894431 a=87.324293 #ff00=1700
21 p=0x0044ee12 d=0: m=ffd9 EOI
22 p=0x0044f04f d=571: m=ffff l=65535 e=3.459432 a=15.000000
Found SOI:
1 p=0x003509a4 : m=ffd8 SOI
2 p=0x003509a6 d=0: m=ffe0 APP0 l= 16 e=1.985228 a=6.615385
3 p=0x003509b8 d=0: m=ffdb DQT l= 67 e=4.506929 a=2.781250 remark:
65/65 = 1.000000
4 p=0x003509fd d=0: m=ffdb DQT l= 67 e=1.375467 a=1.078125 remark:
65/65 = 1.000000
5 p=0x00350a42 d=0: m=ffc0 SOF0 l= 17 e=3.006239 a=57.928571 remark: p=8 h=192 w=144 c=3
6 p=0x00350a55 d=0: m=ffc4 DHT l= 31 e=2.815937 a=0.750000
7 p=0x00350a76 d=0: m=ffc4 DHT l= 181 e=7.270047 a=13.168539
8 p=0x00350b2d d=0: m=ffc4 DHT l= 31 e=2.799180 a=0.642857
9 p=0x00350b4e d=0: m=ffc4 DHT l= 181 e=7.243483 a=18.140449
10 p=0x00350c05 d=0: m=ffda SOS l= 12 e=2.446439 a=21.222222 remark: c=3
entropy-coded data: l=3889 e=7.878242 a=87.148405 #ff00=11
11 p=0x00351b44 d=0: m=ffd9 EOI
12 p=0x0035cc24 d=45278: m=ffe2 APP2 l= 564 e=4.070801 a=35.837790
13 p=0x0035ce5a d=0: m=ffe5 APP5 l=65406 e=0.012234 a=0.067107
14 p=0x0036cdda d=0: m=ffe6 APP6 l=65406 e=0.000000 a=0.000000
15 p=0x0037cd5a d=0: m=ffe7 APP7 l=65406 e=0.000000 a=0.000000
16 p=0x0038ccda d=0: m=ffe8 APP8 l=65406 e=0.000000 a=0.000000
17 p=0x0039cc5a d=0: m=ffe9 APP9 l=65406 e=3.360859 a=32.084109
18 p=0x003acbda d=0: m=ffe9 APP9 l=65406 e=3.808124 a=45.270217
19 p=0x003bcb5a d=0: m=ffea APP10 l=65406 e=0.653317 a=5.143128
20 p=0x003ccada d=0: m=ffea APP10 l=65406 e=0.000000 a=0.000000
21 p=0x003dca5a d=0: m=ffeb APP11 l=65406 e=0.476584 a=1.987401
22 p=0x003ec9da d=0: m=ffdb DQT l= 67 e=3.255574 a=0.828125 remark:
65/65 = 1.000000
23 p=0x003eca1f d=0: m=ffdb DQT l= 67 e=1.350020 a=0.265625 remark:
20 p=0x003ccada d=0: m=ffea APP10 l=65406 e=0.000000 a=0.000000 奇怪的重复输出
21 p=0x003dca5a d=0: m=ffeb APP11 l=65406 e=0.476584 a=1.987401
22 p=0x003ec9da d=0: m=ffdb DQT l= 67 e=3.255574 a=0.828125 remark:
65/65 = 1.000000
23 p=0x003eca1f d=0: m=ffdb DQT l= 67 e=1.350020 a=0.265625 remark:
21 p=0x003dca5a d=0: m=ffeb APP11 l=65406 e=0.476584 a=1.987401
22 p=0x003ec9da d=0: m=ffdb DQT l= 67 e=3.255574 a=0.828125 remark:
65/65 = 1.000000
23 p=0x003eca1f d=0: m=ffdb DQT l= 67 e=1.350020 a=0.265625 remark:
22 p=0x003ec9da d=0: m=ffdb DQT l= 67 e=3.255574 a=0.828125 remark:
65/65 = 1.000000
23 p=0x003eca1f d=0: m=ffdb DQT l= 67 e=1.350020 a=0.265625 remark:
65/65 = 1.000000
23 p=0x003eca1f d=0: m=ffdb DQT l= 67 e=1.350020 a=0.265625 remark:
23 p=0x003eca1f d=0: m=ffdb DQT l= 67 e=1.350020 a=0.265625 remark:
65/65 = 1.000000
65/65 = 1.000000
24 p=0x003eca64 d=0: m=ffc0 SOF0 l= 17 e=2.872906 a=11.214286 remark: 24 p=0x003eca64 d=0: m=ffc0 SOF0 l= 17 e=2.872906 a=11.214286 remark: p=8 h=2048 w=1536 c=3
25 p=0x003eca77 d=0: m=ffc4 DHT l= 31 e=2.815937 a=0.750000
26 p=0x003eca98 d=0: m=ffc4 DHT l= 181 e=7.270047 a=13.168539
27 p=0x003ecb4f d=0: m=ffc4 DHT l= 31 e=2.799180 a=0.642857
28 p=0x003ecb70 d=0: m=ffc4 DHT l= 181 e=7.243483 a=18.140449
29 p=0x003ecc27 d=0: m=ffda SOS l= 12 e=2.446439 a=21.222222 remark: c=3
entropy-coded data: l=401885 e=7.894431 a=87.324293 #ff00=1700
30 p=0x0044ee12 d=0: m=ffd9 EOI
31 p=0x0044f04f d=571: m=ffff l=65535 e=3.459432 a=15.000000