jpeg结构分析工具 vivo的特殊的照片jpg文件格式 2

news/2025/11/19 6:40:36/文章来源:https://www.cnblogs.com/hhdom/p/19240145

20251118_213605

 

 

- **p=**: 段在文件中的位置(十六进制)
- **d=**: 与前一段之间的字节差距
- **m=**: JPEG标记(十六进制)
- **l=**: 数据长度
- **e=**: 熵值(数据随机性度量)
- **a=**: 连续字节差异平均值
 
 

 

python jpegdump.py -f -c -e .\IMG_20251001_172433.jpg
File: .\IMG_20251001_172433.jpg          内含4张图(说明关掉水印,那张小的有水印的那块位置的恢复图就没了)
Found SOI:
  1 p=0x00000000    : m=ffd8 SOI
  2 p=0x00000002 d=0: m=ffe1 APP1  l=51596 e=2.114622 a=14.244743
  3 p=0x0000c990 d=0: m=ffe6 APP6  l=  539 e=4.919570 a=18.949627
  4 p=0x0000cbad d=0: m=ffe2 APP2  l=  564 e=4.070801 a=35.837790
  5 p=0x0000cde3 d=0: m=ffe5 APP5  l=65406 e=0.012234 a=0.067107
  6 p=0x0001cd63 d=0: m=ffe6 APP6  l=65406 e=0.000000 a=0.000000
  7 p=0x0002cce3 d=0: m=ffe7 APP7  l=65406 e=0.000000 a=0.000000
  8 p=0x0003cc63 d=0: m=ffe8 APP8  l=65406 e=0.000000 a=0.000000
  9 p=0x0004cbe3 d=0: m=ffe9 APP9  l=65406 e=3.679414 a=46.448435
 10 p=0x0005cb63 d=0: m=ffe9 APP9  l=65406 e=4.392761 a=87.458465
 11 p=0x0006cae3 d=0: m=ffea APP10 l=65406 e=1.685760 a=15.264774
 12 p=0x0007ca63 d=0: m=ffea APP10 l=65406 e=0.000000 a=0.000000
 13 p=0x0008c9e3 d=0: m=ffeb APP11 l=65406 e=0.485698 a=1.973610
 14 p=0x0009c963 d=0: m=ffdb DQT   l=   67 e=3.255574 a=0.828125 remark: 65/65 = 1.000000
 15 p=0x0009c9a8 d=0: m=ffdb DQT   l=   67 e=1.350020 a=0.265625 remark: 65/65 = 1.000000
 16 p=0x0009c9ed d=0: m=ffc0 SOF0  l=   17 e=3.323231 a=76.357143 remark: p=8 h=4080 w=3060 c=3
 17 p=0x0009ca00 d=0: m=ffc4 DHT   l=   31 e=2.815937 a=0.750000
 18 p=0x0009ca21 d=0: m=ffc4 DHT   l=  181 e=7.270047 a=13.168539
 19 p=0x0009cad8 d=0: m=ffc4 DHT   l=   31 e=2.799180 a=0.642857
 20 p=0x0009caf9 d=0: m=ffc4 DHT   l=  181 e=7.243483 a=18.140449
 21 p=0x0009cbb0 d=0: m=ffda SOS   l=   12 e=2.446439 a=21.222222 remark: c=3
                                  entropy-coded data: l=5606778 e=7.931394 a=89.022752 #ff00=27456
 22 p=0x005f5938 d=0: m=ffd9 EOI
Found SOI:
  1 p=0x00000710    : m=ffd8 SOI
  2 p=0x00000712 d=0: m=ffe0 APP0  l=   16 e=1.985228 a=6.615385
  3 p=0x00000724 d=0: m=ffdb DQT   l=   67 e=4.506929 a=2.781250 remark: 65/65 = 1.000000
  4 p=0x00000769 d=0: m=ffdb DQT   l=   67 e=1.375467 a=1.078125 remark: 65/65 = 1.000000
  5 p=0x000007ae d=0: m=ffc0 SOF0  l=   17 e=3.006239 a=57.928571 remark: p=8 h=192 w=144 c=3 JPEG 的基础块就是 8×8 DCT block
  6 p=0x000007c1 d=0: m=ffc4 DHT   l=   31 e=2.815937 a=0.750000
  7 p=0x000007e2 d=0: m=ffc4 DHT   l=  181 e=7.270047 a=13.168539
  8 p=0x00000899 d=0: m=ffc4 DHT   l=   31 e=2.799180 a=0.642857
  9 p=0x000008ba d=0: m=ffc4 DHT   l=  181 e=7.243483 a=18.140449
 10 p=0x00000971 d=0: m=ffda SOS   l=   12 e=2.446439 a=21.222222 remark: c=3
                                  entropy-coded data: l=7825 e=7.951519 a=87.032081 #ff00=28
 11 p=0x00002810 d=0: m=ffd9 EOI
Found SOI:
  1 p=0x005f5944    : m=ffd8 SOI
  2 p=0x005f5946 d=0: m=ffe1 APP1  l=51196 e=1.053391 a=6.302561
  3 p=0x00602144 d=0: m=ffe2 APP2  l=  564 e=4.070801 a=35.837790
  4 p=0x0060237a d=0: m=ffe5 APP5  l=65406 e=0.012234 a=0.067107
  5 p=0x006122fa d=0: m=ffe6 APP6  l=65406 e=0.000000 a=0.000000
  6 p=0x0062227a d=0: m=ffe7 APP7  l=65406 e=0.000000 a=0.000000
  7 p=0x006321fa d=0: m=ffe8 APP8  l=65406 e=0.000000 a=0.000000
  8 p=0x0064217a d=0: m=ffe9 APP9  l=65406 e=3.679414 a=46.448435
  9 p=0x006520fa d=0: m=ffe9 APP9  l=65406 e=4.392761 a=87.458465
 10 p=0x0066207a d=0: m=ffea APP10 l=65406 e=1.685760 a=15.264774
 11 p=0x00671ffa d=0: m=ffea APP10 l=65406 e=0.000000 a=0.000000
 12 p=0x00681f7a d=0: m=ffeb APP11 l=65406 e=0.485698 a=1.973610
 13 p=0x00691efa d=0: m=ffdb DQT   l=   67 e=3.255574 a=0.828125 remark: 65/65 = 1.000000
 14 p=0x00691f3f d=0: m=ffdb DQT   l=   67 e=1.350020 a=0.265625 remark: 65/65 = 1.000000
 15 p=0x00691f84 d=0: m=ffc0 SOF0  l=   17 e=3.323231 a=79.357143 remark: p=8 h=2040 w=1530 c=3
 16 p=0x00691f97 d=0: m=ffc4 DHT   l=   31 e=2.815937 a=0.750000
 17 p=0x00691fb8 d=0: m=ffc4 DHT   l=  181 e=7.270047 a=13.168539
 18 p=0x0069206f d=0: m=ffc4 DHT   l=   31 e=2.799180 a=0.642857
 19 p=0x00692090 d=0: m=ffc4 DHT   l=  181 e=7.243483 a=18.140449
 20 p=0x00692147 d=0: m=ffda SOS   l=   12 e=2.446439 a=21.222222 remark: c=3
                                  entropy-coded data: l=665645 e=7.969928 a=86.331133 #ff00=2609
 21 p=0x00734982 d=0: m=ffd9 EOI
Found SOI:
  1 p=0x005f5ec4    : m=ffd8 SOI
  2 p=0x005f5ec6 d=0: m=ffe0 APP0  l=   16 e=1.985228 a=6.615385
  3 p=0x005f5ed8 d=0: m=ffdb DQT   l=   67 e=4.506929 a=2.781250 remark: 65/65 = 1.000000
  4 p=0x005f5f1d d=0: m=ffdb DQT   l=   67 e=1.375467 a=1.078125 remark: 65/65 = 1.000000
  5 p=0x005f5f62 d=0: m=ffc0 SOF0  l=   17 e=3.006239 a=57.928571 remark: p=8 h=192 w=144 c=3
  6 p=0x005f5f75 d=0: m=ffc4 DHT   l=   31 e=2.815937 a=0.750000
  7 p=0x005f5f96 d=0: m=ffc4 DHT   l=  181 e=7.270047 a=13.168539
  8 p=0x005f604d d=0: m=ffc4 DHT   l=   31 e=2.799180 a=0.642857
  9 p=0x005f606e d=0: m=ffc4 DHT   l=  181 e=7.243483 a=18.140449
 10 p=0x005f6125 d=0: m=ffda SOS   l=   12 e=2.446439 a=21.222222 remark: c=3
                                  entropy-coded data: l=3122 e=7.874493 a=87.962832 #ff00=8
 11 p=0x005f6d65 d=0: m=ffd9 EOI

 

 

 

Get-ChildItem . | Select-Object Name, Length, LastWriteTime

Name                               Length LastWriteTime
----                               ------ -------------
00000000.jpeg                     6248762 2025/11/18 21:35:11
00000710.jpeg                        8450 2025/11/18 21:35:11


005f5944.jpeg                     1306688 2025/11/18 21:35:11
005f5ec4.jpeg                        3747 2025/11/18 21:35:11

IMG_20250924_000219.jpg           3599113 2025/9/23 18:02:22
IMG_20250924_000219_optimtest.jpg 2167406 2025/11/18 16:49:22
IMG_20251001_172433.jpg           7555951 2025/10/1 11:24:33

6248762+8450+1306688+3747=7567647

 

 

 

 

 

.\jpegoptim.exe .\IMG_20251001_172433_optimtest.jpg

 

python jpegdump.py -f -c -e .\IMG_20251001_172433_optimtest.jpg
File: .\IMG_20251001_172433_optimtest.jpg   里边变成只有2张了
Found SOI:
  1 p=0x00000000    : m=ffd8 SOI
  2 p=0x00000002 d=0: m=ffe1 APP1  l=51596 e=2.114622 a=14.244743
  3 p=0x0000c990 d=0: m=ffe2 APP2  l=  564 e=4.070801 a=35.837790
  4 p=0x0000cbc6 d=0: m=ffdb DQT   l=  132 e=2.761176 a=0.589147 remark: 130/65 = 2.000000
  5 p=0x0000cc4c d=0: m=ffc0 SOF0  l=   17 e=3.323231 a=76.357143 remark: p=8 h=4080 w=3060 c=3
  6 p=0x0000cc5f d=0: m=ffc4 DHT   l=  239 e=5.841939 a=32.169492
  7 p=0x0000cd50 d=0: m=ffda SOS   l=   12 e=2.446439 a=21.222222 remark: c=3
                                  entropy-coded data: l=5278348 e=7.967776 a=84.099467 #ff00=19098
  8 p=0x005157ea d=0: m=ffd9 EOI
Found SOI:
  1 p=0x00000710    : m=ffd8 SOI
  2 p=0x00000712 d=0: m=ffe0 APP0  l=   16 e=1.985228 a=6.615385
  3 p=0x00000724 d=0: m=ffdb DQT   l=   67 e=4.506929 a=2.781250 remark: 65/65 = 1.000000
  4 p=0x00000769 d=0: m=ffdb DQT   l=   67 e=1.375467 a=1.078125 remark: 65/65 = 1.000000
  5 p=0x000007ae d=0: m=ffc0 SOF0  l=   17 e=3.006239 a=57.928571 remark: p=8 h=192 w=144 c=3
  6 p=0x000007c1 d=0: m=ffc4 DHT   l=   31 e=2.815937 a=0.750000
  7 p=0x000007e2 d=0: m=ffc4 DHT   l=  181 e=7.270047 a=13.168539
  8 p=0x00000899 d=0: m=ffc4 DHT   l=   31 e=2.799180 a=0.642857
  9 p=0x000008ba d=0: m=ffc4 DHT   l=  181 e=7.243483 a=18.140449
 10 p=0x00000971 d=0: m=ffda SOS   l=   12 e=2.446439 a=21.222222 remark: c=3
                                  entropy-coded data: l=7825 e=7.951519 a=87.032081 #ff00=28
 11 p=0x00002810 d=0: m=ffd9 EOI

 

Get-ChildItem . | Select-Object Name, Length, LastWriteTime

Name                               Length LastWriteTime
----                               ------ -------------
00000000.jpeg                     5330924 2025/11/18 22:11:07
00000710.jpeg                        8450 2025/11/18 22:11:07




IMG_20251001_172433.jpg           7555951 2025/10/1 11:24:33
IMG_20251001_172433_optimtest.jpg 5330924 2025/11/18 22:10:41

 

APP0 (FFE0)

JFIF (JPEG File Interchange Format),最常见。

存储内容:版本、分辨率、缩略图等。

开头一般是 "JFIF\0" 或 "JFXX\0"。

APP1 (FFE1)

EXIF (Exchangeable Image File Format),由相机/手机写入。

存储内容:拍摄时间、相机型号、GPS 信息、方向、缩略图等。

开头一般是 "Exif\0\0"。

有时也可能存 XMP (Adobe Extensible Metadata Platform),开头 "http://ns.adobe.com/xap/1.0/"。

 

vscode hex查看

image

filter: 0; fileterIntensity: 0.0; filterMask: 0; captureOrientation: 90;
algolist: 0;
multi-frame: 1;
brp_mask:0;
brp_del_th:0.0000,0.0000;
brp_del_sen:0.0000,0.0000;
motionR: 0;
delta:null;

module: photo;hw-remosaic: false;touch: (-1.0, -1.0);sceneMode: 8;cct_value: 0;AI_Scene: (-1, -1);aec_lux: 212.0;aec_lux_index: 0;albedo:  ;confidence:  ;motionLevel: 0;weatherinfo: weather??, icon:2, weatherInfo:103;temperature: 36;

 

 

 

shaking: 0.0; highlight: false; burst: false; filter: 0; fileterIntensity: 0.0; filterMask: 0; captureOrientation: 90; multi-frame: 1; brp_mask:0; brp_del_th:0.0000,0.0000;brp_del_sen:0.0000,0.0000;motionR: 0;
delta:null;ModuleId: photo;hw-remosaic: false;touch: (-1.0, -1.0);

sceneMode: Night;cct_value: 0;aec_lux_index: 0;albedo:  ;confidence:  ;hdrState: auto;mMotionLevel: 0;aiScene: STREET;aeLux: 212.0;zoomValue: 0.6;zeissColor: bright;cameraType: Wide;facing: back;fNumber: 2.0; beautyType: ; filterUI: none; filterIntensityUI: 0; ��4ICC_PROFILE

 

 

�~vivoawb

 

vivo X100 Pro MediaTek Camera Application

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/969563.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux cpu监控

在 Linux 系统中,监控 CPU 使用情况是常见的任务。以下是一些常用的方法和命令,可以帮助你监控 CPU 的使用情况:? 一、常用命令 1. top 命令 top 是一个实时的系统监控工具,可以显示 CPU、内存、进程等信息。 top…

linux cpu调度

在 Linux 中,CPU 调度是操作系统内核负责管理的,主要由 调度器(Scheduling Algorithm)来实现。调度器负责决定哪个进程(或线程)在什么时候获得 CPU 的执行时间。不同的调度算法适用于不同的场景,例如:一、Linu…

信号、Shell与Docker:层层嵌套的陷阱剖析

本文深入探讨POSIX信号在Shell脚本和Docker容器中的传播机制,通过实际案例揭示信号转发链断裂的原因,涉及进程组、前台进程组和Docker Compose信号转发bug等技术细节。在几次调试POSIX信号(SIGINT、SIGTERM等)的过…

应用安全 --- 代码块保护

应用安全 --- 代码块保护有的商业加密会将一个函数内的指令打乱分散在各个文件区域以块的形式存在 比如 这标红的区域表示这段代码不在这个函数内但是被这个函数使用了

linux cpu中断

在 Linux 中,CPU 中断(CPU Interrupt)是操作系统内核处理硬件事件的一种机制。当 CPU 的某个硬件设备(如网卡、磁盘、GPU 等)发生事件时,会向 CPU 发送一个中断信号,CPU 会暂停当前正在执行的程序,转而处理该中…

linux cpu 超过100

在 Linux 中,如果你想监控 CPU 使用率是否超过 100%,可以使用以下几种方法:? 方法一:使用 top 命令 top 是一个实时的系统监控工具,可以显示 CPU 使用情况。 top -b -n 1 | grep + #引号 + Cpu(s) + #引号 +…

linux cpu内存使用情况

要查看 Linux 系统中的 CPU 和内存使用情况,可以使用以下常用命令和脚本:一、查看实时 CPU 使用情况 top功能:显示实时的 CPU 使用情况,包括 CPU 核心、进程、内存等信息。 适用场景:需要实时监控系统负载和进程资…

linux cpu 占用高

在 Linux 系统中,当发现 CPU 占用率高时,可以通过以下几种方式来诊断和分析问题:一、常用命令查看 CPU 占用率 1. top 命令功能:实时监控系统 CPU 使用情况。 使用方法:top输出说明: %CPU:CPU 使用率(百分比)…

linux cpu 使用率过高

当 Linux 系统的 CPU 使用率过高时,可能是由于进程资源争用、后台进程异常、系统负载过高或系统服务未正确关闭等原因引起的。以下是一些常见的排查和解决方法,帮助你诊断和处理 CPU 使用率过高的问题:一、查看 CPU…

linux cpu mysql

当然可以!你提到的“Linux CPU”和“MySQL”是两个不同的主题,我将分别解释,并提供相关命令和脚本。一、Linux CPU 使用情况查看 1. 常用命令查看 CPU 使用情况 1.1 使用 top 命令功能:实时查看系统 CPU 使用情况。…

linux cp 并创建目录

在 Linux 中,使用 cp 命令复制文件或目录时,如果需要创建目标目录,可以使用 -r(递归复制)和 -d(防止覆盖已有的目录)选项,或者使用 mkdir 命令配合 cp 来实现。 方法 1:使用 cp 和 mkdir(推荐) cp -r sourc…

linux count

在 Linux 中,count 命令通常用于统计文件中某一行或某部分内容的出现次数。常见的 count 命令有以下几种:1. grep + wc 统计某行出现次数 grep -c + #引号 + pattern + #引号 + filename-c:统计匹配行的数量。…

linux cos()

你提到的 cos() 函数在 Linux 系统中并不是内置的命令或脚本,而是一个数学函数,通常在编程语言(如 Python、bash、Perl 等)中使用。在 Linux 命令行中,没有直接的 cos() 函数。 如果你是在询问如何在 Linux 中计算…

vivo 手机 拍照 特殊jpg格式 批量压缩

https://github.com/tjko/jpegoptim Windows (setargv.obj "link option" is needed for wildcards expansion to work)JPEGOPTIM(1) General Commands Manual JPEGOPTIM(1)NA…

linux cluster

在 Linux 系统中, + #引号 + cluster + #引号 + 通常指的是 集群(Cluster),即一组相互协作的计算机(节点)组成的一个系统,用于提高性能、可靠性、可扩展性等。Linux 系统中,集群技术常用于负载均衡、高可…

linux chrome 下载

在 Linux 系统中,如果你想要下载 Chrome 浏览器,通常有以下几种方法:方法一:使用官方下载链接(推荐) Chrome 浏览器的官方下载地址是: https://www.google.com/chrome/ 你可以直接访问该网站,点击“下载 Chrom…

linux chmod 目录

在 Linux 中,chmod 命令用于修改文件或目录的权限。对于 目录,chmod 的使用方式和文件类似,但需要注意目录的权限设置。? 一、chmod 命令的基本用法 chmod [options] mode file...mode:权限模式,可以是数字或符号…

linux checkout

在 Linux 系统中,checkout 并不是一个标准的命令,它通常与版本控制系统(如 Git)相关。如果你是在使用 Git,checkout 是一个常用的命令,用于切换分支或恢复工作目录。 1. Git 中的 checkout 命令 1.1 切换分支 gi…

linux cer

您提到的“linux cer”可能是输入错误或不完整。如果您是想询问与 Linux 系统 或 Linux 命令 相关的问题,请提供更具体的内容,例如:Linux 命令(如 ls, grep, sort 等) Linux 系统管理(如 systemd, init, cron 等…

linux centos 版本查看

在 CentOS 系统中,查看 Linux 版本(包括内核版本和系统发行版版本)的常用方法如下:方法 1:查看系统发行版版本(CentOS) cat /etc/redhat-release 输出示例: CentOS release 7.9.2009 (Core)方法 2:查看内核版…