saber - metadata pdf
Cómo decodificar una secuencia de PDF? (4)
Quiero analizar un objeto de transmisión en un archivo PDF que está codificado usando /FlateDecode
.
¿Hay alguna herramienta que permita decodificar tal codificación (código ASCII85, código LZW, RunlenghtDecode, etc.) utilizada en archivos PDF?
El contenido de la secuencia es probablemente una estructura de archivo PE, que el PDF probablemente usará más adelante en el exploit.
Además, hay dos tablas xref
en el PDF, eso está bien, pero también dos %% EOF que siguen el xref
.
¿La presencia de estos está bien? (Nota: la segunda xref
a la primera xref
usando el nombre /prev
.
este xref
refiere al segundo xref
:
xref 5 6 0000000618 00000 n 0000000658 00000 n 0000000701 00000 n 0000000798 00000 n 0000045112 00000 n 0000045219 00000 n 1 1 0000045753 00000 n 3 1 0000045838 00000 n trailer > startxref 46090 %%EOF
el segundo xref
:
xref 0 5 0000000000 65535 f 0000000010 00000 n 0000000067 00000 n 0000000136 00000 n 0000000373 00000 n trailer > startxref 429 %%EOF
Puede usar RUPS para analizar el PDF y exportar, o simplemente mirar la secuencia ya decodificada. Acerca del %% EOF puede tener tantos como los anexos hechos en el PDF.
Con respecto a las herramientas, como se indica en otras respuestas, hay una serie de herramientas que se pueden usar para descomprimir transmisiones (en la línea de comandos o de otro modo). Sin embargo, también hay una serie de herramientas que hacen que sea más fácil inspeccionar un archivo PDF al permitirle caminar por el árbol de objetos y ver fácilmente qué contenido contiene flujos comprimidos. Los dos que he usado son:
1) callas pdfToolbox Desktop (cuidado, estoy asociado con esta compañía). pdfToolbox tiene una opción "Explorar PDF" que le permite ver los objetos asociados con una página, hasta e incluyendo los operadores de página reales.
2) Navegador Enfocus. No estoy seguro de si aún se puede encontrar, pero esta herramienta le permitirá abrir la raíz del árbol de objetos de un archivo PDF y luego presentar la jerarquía de objetos de una manera muy similar a la que hace Finder en Mac con el archivo sistemas. El navegador incluso te permitirá editar archivos PDF (realmente deberías saber lo que estás haciendo en este caso) editando los objetos de bajo nivel, creando nuevos objetos o cambiando el contenido de las secuencias. Realmente genial.
Actualización: Resulta que el navegador todavía está disponible, puedes descargarlo aquí: http://www.enfocus.com/en/products/browser/
Un comentario de %%EOF
debe estar presente al final del archivo, cualquier otro comentario (cualquier línea que comience %
) puede estar presente en cualquier punto del archivo. Entonces, sí, los comentarios de 2 %%EOF
son perfectamente válidos. Esto está documentado en la Referencia en PDF . Consulte el ejemplo 3.11 en el Manual de referencia de 1.7 PDF en la página 112 para obtener un ejemplo documentado en la especificación que tiene la estructura que describe. Este es un archivo PDF que se ha actualizado incrementalmente.
Tenga en cuenta que las versiones más recientes de PDF pueden tener flujos de referencia cruzada, que a su vez están comprimidos.
La forma más fácil de decodificar un archivo PDF es usar una herramienta destinada a hacerlo, por ejemplo, MuPDF puede hacer esto con " mutool clean -d <input pdf file> <output PDF file>
" descomprimirá ( -d
) todos los mutool clean -d <input pdf file> <output PDF file>
comprimidos transmite en un archivo PDF y escribe el resultado en un nuevo archivo PDF.
De lo contrario, necesitarás usar algo como zlib para la descompresión Flate y LZW, necesitarás escribir tu propia descompresión RunLength así como ASCIIHex85, creo. Por no mencionar JBIG, JPEG y JPEG2000 si desea que las imágenes también se decodifiquen.
"Dos tablas
xref
y dos%%EOF
"?Esto solo no es una indicación de un archivo PDF malicioso. Puede haber dos o más instancias de cada uno, si el archivo se generó a través de la función de "actualización incremental" . (Cada archivo PDF firmado digitalmente es así, y cada archivo que se modificó en Acrobat y se guardó utilizando el botón / menú "Guardar" en lugar del botón / menú "Guardar como ..." es así también).
"¿Cómo decodificar una secuencia de PDF comprimido desde un objeto específico"?
Eche un vistazo a la secuencia de comandos Python de Didier Stevens
pdf-parser.py
. Con esta herramienta de línea de comandos, puede volcar la secuencia decodificada de cualquier objeto PDF en un archivo. Ejemplo de comando para volcar la secuencia del objeto número 13 en PDF:pdf-parser.py -o 13 -f -d obj13.dump my.pdf