Además de las herramientas basadas en GUI mencionadas en las otras respuestas, hay algunas herramientas de línea de comandos 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)
Use qpdf para descomprimir (la mayoría) de los flujos de ObjStm
objetos y también diseccionar 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 realiza "transformaciones estructurales que preservan el contenido en archivos PDF" .
Luego, 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 existe la mutool
herramienta de línea de comandos que viene incluida con el visor de PDF MuPDF (que es un producto hermano de Ghostscript, fabricado por la misma compañía, 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 comandos, incluidaspodofouncompress
. Ú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 también lo encuentro útil 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:
pdfid.py
y pdf-parser.py
pdfid.py
y pdf-parser.py
son dos herramientas PDF de Didier Stevens escritas en Python.
Su experiencia también es ayudar a explorar archivos PDF maliciosos , 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 la línea de comandos dados, descubrirá que NO todas producen resultados idénticos. 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.