
Репозиторий анализа CVE-2019-13288: содержит исходный код PDF-парсера Xpdf и документацию для воспроизведения, анализа и исправления уязвимой логики парсинга.
версия 4.02 25 сентября 2019 г.
Программное обеспечение и документация Xpdf являются собственностью Glyph & Cog, LLC, copyright 1996-2019.
Электронная почта: [email protected] WWW: http://www.xpdfreader.com/
Структуры данных PDF, операторы и спецификация описаны в ISO 32000-2:2017.
Xpdf — это программа просмотра файлов формата Portable Document Format (PDF) с открытым исходным кодом. (Такие файлы иногда также называют файлами 'Acrobat' по названию программного обеспечения Adobe для работы с PDF.) Проект Xpdf также включает средство извлечения текста из PDF, конвертер PDF в PostScript и различные другие утилиты.
Программа просмотра Xpdf использует кроссплатформенный набор инструментов графического интерфейса Qt. Остальные утилиты командной строки не требуют Qt.
Xpdf распространяется по лицензии GNU General Public License (GPL) версии 2 или 3. Это означает, что вы можете распространять производные от Xpdf на любых из следующих условий:
Пакет исходного кода Xpdf включает текст обеих версий GPL: COPYING для GPL v2, COPYING3 для GPL v3.
Обратите внимание, что Xpdf НЕ лицензирован на условиях "любой более поздней версии" GPL, поскольку я не имею представления, как будут выглядеть эти версии.
Если вы распространяете неизменённые копии Xpdf (или любых инструментов Xpdf) в двоичной форме, вам необходимо включить всю документацию: README, страницы руководства (или файлы справки), COPYING и COPYING3.
Если вы хотите включить исходный код Xpdf в другую программу (или создать модифицированную версию Xpdf) и распространяете эту программу, у вас есть два варианта: выпустить вашу программу под GPL (v2 и/или v3) или приобрести коммерческую лицензию на исходный код Xpdf.
Если вас интересует коммерческое лицензирование, пожалуйста, посетите веб-сайт Glyph & Cog:
http://www.glyphandcog.com/
Xpdf использует набор инструментов Qt и работает на Linux, Windows и OS X -- и, вероятно, на других системах, для которых существует порт Qt.
Утилиты командной строки без графического интерфейса (pdftops, pdftotext, pdftohtml, pdfinfo, pdffonts, pdfdetach, pdftoppm, pdftopng и pdfimages) работают на Linux, Windows и OS X -- и должны работать практически на любой системе с приличным компилятором C++.
Если вы скомпилируете Xpdf для системы, не указанной на веб-странице, пожалуйста, сообщите мне. Если вы готовы сделать ваш двоичный файл доступным по ftp или в интернете, я буду рад добавить ссылку с веб-страницы Xpdf. Я решил не размещать какие-либо двоичные файлы, которые я не компилировал сам (по причинам экономии дискового пространства и поддержки).
Если вы не можете скомпилировать Xpdf в вашей системе, напишите мне, и я постараюсь помочь.
Последняя версия доступна по адресу:
Доступны исходный код и несколько предварительно скомпилированных исполняемых файлов.
Объявления о новых версиях публикуются в comp.text.pdf и рассылаются по электронной почте списку людей. Если вы хотите получать уведомления о новых версиях по электронной почте, просто сообщите мне.
Чтобы запустить xpdf, просто введите:
xpdf file.pdf
Чтобы создать файл PostScript, запустите pdftops:
pdftops file.pdf
Чтобы создать текстовый файл, запустите pdftotext:
pdftotext file.pdf
Есть несколько дополнительных утилит (которые полностью описаны в их страницах руководства):
pdftohtml -- преобразует файл PDF в HTML pdfinfo -- выводит словарь Info файла PDF (плюс некоторую другую полезную информацию) pdffonts -- перечисляет шрифты, используемые в файле PDF, вместе с различной информацией о каждом шрифте pdfdetach -- перечисляет или извлекает встроенные файлы (вложения) из файла PDF pdftoppm -- преобразует файл PDF в серию растровых изображений в формате PPM/PGM/PBM pdftopng -- преобразует файл PDF в серию файлов изображений PNG pdfimages -- извлекает изображения из файла PDF
Параметры командной строки и многие другие подробности описаны в страницах руководства: xpdf(1) и т. д.
Все эти утилиты читают необязательный файл конфигурации: см. страницу руководства xpdfrc(5).
См. отдельный файл INSTALL.
Если вы обнаружите ошибку в Xpdf, то есть если он выводит сообщение об ошибке, завершается сбоем или неправильно отображает документ, и вы не видите эту ошибку в списке здесь, пожалуйста, напишите мне письмо с указателем (URL, ftp-сайт, и т. д.) на PDF-файл.
Xpdf использует следующие библиотеки:
Спасибо:
Различные люди внесли изменения, сделанные для использования в проекте pdftex:
Adobe Systems Inc., PostScript Language Reference, 3rd ed. Addison-Wesley, 1999, ISBN 0-201-37922-8. [Официальное руководство по PostScript.]
Adobe Systems, Inc., The Type 42 Font Format Specification, Adobe Developer Support Technical Specification #5012. 1998. http://partners.adobe.com/asn/developer/pdfs/tn/5012.Type42_Spec.pdf [Type 42 — это формат, используемый для встраивания шрифтов TrueType в файлы PostScript.]
Adobe Systems, Inc., Adobe CMap and CIDFont Files Specification, Adobe Developer Support Technical Specification #5014. 1995. http://www.adobe.com/supportservice/devrelations/PDFS/TN/5014.CIDFont_Spec.pdf [Формат файлов CMap, необходимый для поддержки японских и китайских шрифтов.]
Adobe Systems, Inc., Adobe-Japan1-4 Character Collection for CID-Keyed Fonts, Adobe Developer Support Technical Note #5078. 2000. http://partners.adobe.com/asn/developer/PDFS/TN/5078.CID_Glyph.pdf [Японский набор символов Adobe.]
Adobe Systems, Inc., Adobe-GB1-4 Character Collection for CID-Keyed Fonts, Adobe Developer Support Technical Note #5079. 2000. http://partners.adobe.com/asn/developer/pdfs/tn/5079.Adobe-GB1-4.pdf [Китайский набор символов Adobe GB (упрощённый).]
Adobe Systems, Inc., Adobe-CNS1-3 Character Collection for CID-Keyed Fonts, Adobe Developer Support Technical Note #5080. 2000. http://partners.adobe.com/asn/developer/PDFS/TN/5080.CNS_CharColl.pdf [Китайский набор символов Adobe CNS (традиционный).]
Adobe Systems Inc., Supporting the DCT Filters in PostScript Level 2, Adobe Developer Support Technical Note #5116. 1992. http://www.adobe.com/supportservice/devrelations/PDFS/TN/5116.PS2_DCT.PDF [Описание параметров фильтра DCTDecode.]