Exploit for CVE-2025-53367
2025-07-18 | CVSS 8.4
https://sploitus.com/exploit?id=C056173B-28D0-562F-94A6-BBC8EF27EE72
1- 什么是DJVU
================
DjVu(发音为“déjà vu”)是一组压缩技术、一种文件格式和一个软件平台,用于通过Web传递数字文档、扫描文档和高分辨率图像。
DjVu文档下载和显示速度极快,并且在所有平台上看起来完全相同。DjVu可以被视为数字文档的PDF和Postscript的优越替代品,扫描文档的TIFF(和PDF)的替代品,照片和图片的JPEG替代品,以及大型调色板化图像的GIF替代品。DjVu是唯一实用的在Web上分发高分辨率彩色扫描文档的格式。没有其他格式能与之媲美。
典型的DjVu文件大小如下:
-
双色调扫描文档: 每页5至30KB,300dpi, 比PDF或TIFF小3至10倍。
-
彩色扫描文档: 每页30至100KB,300dpi, 比JPEG小5至10倍。
-
照片: 比JPEG小2倍, 与JPEG-2000大致相同。
-
调色板化图像: 比GIF小2倍, 如果有文本,最多可小10倍。
DjVu被全球数百个商业、政府和非商业网站用于分发扫描文档、数字文档和高分辨率照片。
关于DjVu的演示和一般信息可以在http://www.djvuzone.org或http://www.lizardtech.com找到。
DjVu最初由AT&T Labs-Research开发。AT&T于2000年3月将DjVu出售给LizardTech Inc.。
2- 什么是DJVULIBRE?
=====================
为了促进DjVu成为Web标准,LizardTech的管理层足够开明,于2000年10月根据GNU GPL发布了DjVu的参考实现。DjVuLibre(发音像法语的“déjà vu libre”),是由DjVu的原始发明者维护的该代码的增强版本。它与LizardTech的DjVu软件v3.5兼容。
此包包括:
- C++ DjVu参考库的最新版本
- 一个完整的基于小波的图片压缩器
- 一个简单的双色调(黑白)扫描页面压缩器
- 一个调色板化图像压缩器(类似GIF)
- 一套完整的实用程序,用于操作和组装DjVu图像和文档
- 一组解码器,用于将DjVu转换为多种其他格式
完整的DjVu文件查看器和浏览器插件DjView4可作为单独包使用。
3- 构建DJVULIBRE
=====================
3.1- 先决条件
DjVuLibre-3.5依赖于可从Web获取的各种组件。 大多数最近的Linux发行版已经包含这些组件。 您也可以下载并编译它们。 请务必阅读本文档末尾的系统特定说明。
编译器 – 开发使用GCC g++编译器,因此推荐用于所有平台。已尝试CLANG编译器,似乎可以工作,但其输出尚未经过严格测试。
LIBJPEG/LIBTIFF – 少量DjVu文件内部使用JPEG编码而不是IW44小波编码。这些文件使用IJG libjpeg库版本6a或6b处理http://www.ijg.org。 一些实用程序能够读取TIFF文件。这些程序依赖LIBTIFF库http://libtiff.org。 您也可以编译不支持JPEG或TIFF的DjVuLibre。 您可能永远不会注意到差异。
3.2 - 配置
很可能只需运行命令“./configure”、“make”和“make install”即可正常工作。
请注意,如果您使用git clone获取djvulibre源代码,则不会有configure文件。相反,有一个脚本’autogen.sh’,它使用automake生成并调用实际的configure脚本。 由于所有autogen.sh参数都将传递给configure,您可以简单地将autogen.sh视为configure的替代品。
各种选项和环境变量影响配置脚本的执行。可以通过键入“configure –help”获得完整列表。另请参阅INSTALL文件以获取更多详细信息。 以下是最重要的选项。
-
选项“–prefix=PREFIXDIR” 此选项指定DjVuLibre软件的安装位置。 默认前缀是/usr/local。
-
选项“–enable-desktopfiles[=(yes|no)]” 在常规的xdg目录中安装图标和mime类型文件。 默认为“yes”。
-
选项“–with-jpeg=JPEGDIR” 此选项指定已编译JPEG库的目录。此目录包含头文件和库。 没有此选项,配置脚本将在标准位置搜索JPEG库。 当所有其他方法都失败时,您可以简单地定义环境变量JPEG_CFLAGS和JPEG_LIBS。
-
选项“–with-tiff=TIFFDIR” 此选项指定已编译LIBTIFF库的目录。此目录包含头文件和库。 没有此选项,配置脚本将在标准位置搜索LIBTIFF库。 当所有其他方法都失败时,您可以简单地定义环境变量TIFF_CFLAGS和TIFF_LIBS。
始终检查配置脚本的输出以获取警告和错误。 特别是,如果配置脚本无法找到所需的库和实用程序,它可能会禁用djview的编译。警告消息是唯一了解的方式。
3.3 - 编译
然后您可以通过键入以下命令执行编译
$ make
编译可能需要几分钟。再次检查输出以获取警告和错误。最后,一条简短的消息让您知道编译成功。然后您可以继续进行安装。
3.4 - 安装
键入:
$ make install
或如有必要:
$ sudo make install
应该:
- 将可执行程序安装到“${prefix}/bin/”。
- 可能将共享库安装到“${prefix}/lib/”。
- 将man页面安装到“${prefix}/man或${prefix}/share/man/”下。
- 将各种辅助文件安装到“${prefix}/share/djvu/”下。
- 安装“${prefix}/share/pkgconfig.pc”。
- 可选安装图标和mime类型信息文件
其中${prefix}指的是配置脚本的prefix选项指定的目录,默认为“/usr/local”,并且上述路径可以使用适当的参数通过./configure和make进行微调。
4 - 为MAC OS X构建
=========================
我们建议您首先安装homebrew并使用命令“brew install”获取以下包: $ brew install autoconf automake libtool pkg-config $ brew install jpeg libtiff
请注意,homebrew已经附带了一个djvulibre包。 以下说明解释了如何以独立方式编译djvulibre。如果您想要最新版本的djvulibre,您可能想这样做。否则,很可能您应该只安装djvulibre homebrew包。 $ brew install djvulibre
但大多数人应该发现安装homebrew包就足够了。
然后您可以运行配置 $ ./configure –disable-desktopfiles
然后您可以使用以下命令编译 $ make
运行“make install”将在目录/usr/local中安装djvulibre。 这可能不是一个好主意,因为它们会与homebrew冲突。 您可以使用DESTDIR=…指定一个备用目录 $ make install DESTDIR=/usr/local/djvulibre-install
5 - 为WINDOWS构建
========================
5.1- 使用Microsoft Visual C++ 2019
请参阅win32目录。
检查win32/djvulibre/dirs.props以查看如何命名目录。 然后打开win32/djvulibre/djvulibre.sln并进行编译。
下一步将是按照djview包中的说明创建djview项目并将其添加到此解决方案中。最后,您可以使用脚本djvulibre-install.sh和djvulibre.nsi准备djvulibre+djview安装程序。
5.2- 使用Mingw
您必须首先安装mingw编译器和msys环境。 有关更多信息,请参阅www.mingw.org。 从msys shell中,运行通常的命令 $ configure $ make 然后从目录libdjvu/.libs收集djvulibre dll,并从目录tools/.libs收集可执行文件 请参阅文件INSTALL以获取有关脚本’configure’参数的信息。
5.3- 使用Cygwin
只需运行通常的命令 $ configure $ make $ make install 请参阅文件INSTALL以获取有关脚本’configure’参数的信息。