Verificamos profundamente cada escritos en nuestra web con la meta de mostrarte en todo momento información más veraz y actualizada.
Solución:
Además de las herramientas basadas en GUI mencionadas en las otras respuestas, hay algunas herramientas de línea de comando que pueden transformar el código fuente PDF original en una representación diferente que le permite inspeccionar el (archivo ahora modificado) con un editor de texto. Todas las herramientas siguientes funcionan en Linux, Mac OS X, otros sistemas Unix o Windows.
qpdf
(mi favorito)
Usar qpdf para descomprimir (la mayoría) de los flujos de objetos y también diseccionar ObjStm
objetos en objetos indirectos individuales:
qpdf --qdf --object-streams=disable orig.pdf uncompressed-qpdf.pdf
qpdf
se describe a sí misma como una herramienta que no “transformaciones estructurales que preservan el contenido en archivos PDF”.
Entonces simplemente abra + inspeccione el uncompressed-qpdf.pdf
archivo en su editor de texto favorito. La mayoría de los bytes previamente comprimidos (y por lo tanto, binarios) ahora serán texto sin formato.
mutool
También está el mutool
herramienta de línea de comandos que viene incluida con el MuPDF Visor de PDF (que es un producto hermano de Ghostscript, fabricado por la misma empresa, Artifex). El siguiente comando también descomprime los flujos y los hace más fáciles de inspeccionar a través de un editor de texto:
mutool clean -d orig.pdf uncompressed-mutool.pdf
podofouncompress
PoDoFo es una biblioteca FreeSoftware / OpenSource para trabajar con el formato PDF e incluye algunas herramientas de línea de comando, incluyendo podofouncompress
. Úselo así para descomprimir flujos de PDF:
podofouncompress orig.pdf uncompressed-podofo.pdf
peepdf.py
PeePDF es una herramienta basada en Python que le ayuda a explorar archivos PDF. Su propósito original era la investigación y disección de malware basado en PDF, pero lo encuentro útil también para investigar la estructura de archivos PDF completamente benignos.
Se puede utilizar de forma interactiva para “examinar” los objetos y las secuencias contenidos en un PDF.
No daré un ejemplo de uso aquí, sino solo un enlace a su documentación:
- peepdf – Herramienta de análisis de PDF
pdfid.py
y pdf-parser.py
pdfid.py
y pdf-parser.py
son dos Herramientas PDF de Didier Stevens escrito en Python.
Su experiencia también es para ayudar a explorar malicioso PDF, pero también me resulta útil analizar la estructura y el contenido de archivos PDF benignos.
Aquí hay un ejemplo de cómo extraería el flujo sin comprimir del objeto PDF no. 5 en un archivo * .dump:
pdf-parser.py -o 5 -f -d obj5.dump my.pdf
Notas finales
-
Tenga en cuenta que algunas partes binarias dentro de un PDF no son necesariamente incompresibles (o decodificables en código ASCII legible por humanos), porque están incrustadas y utilizadas en su formato nativo dentro de los PDF. Estas partes de PDF son imágenes JPEG, fuentes o perfiles de color ICC.
-
Si compara las herramientas anteriores y los ejemplos de línea de comando dados, descubrirá que lo hacen NO todos producen salidas idénticas. El esfuerzo de compararlos por sus diferencias en sí mismo puede ayudarlo a comprender mejor la naturaleza de la sintaxis y el formato de archivo PDF.
Utilizo iText RUPS (lectura y actualización de la sintaxis de PDF) en Linux. Dado que está escrito en Java, también funciona en Windows. Puede examinar todos los objetos en un archivo PDF en una estructura de árbol. También puede decodificar transmisiones codificadas con Flate sobre la marcha para facilitar la inspección.
Aquí hay una captura de pantalla:
Adobe Acrobat tiene un modo genial pero bastante bien oculto que le permite inspeccionar archivos PDF. Escribí un artículo de blog explicándolo en https://blog.idrsolutions.com/2009/04/viewing-pdf-objects/
Calificaciones y reseñas
Si haces scroll puedes encontrar las anotaciones de otros desarrolladores, tú además puedes dejar el tuyo si dominas el tema.