Comment décoder un flux PDF?

je veux analyser un objet stream dans un fichier PDF qui est encodé en utilisant /FlateDecode.

Existe-t-il des outils permettant de décoder un tel encodage (ASCII85decode, LZWDecode, RunlenghtDecode etc.) utilisé dans les fichiers Pdf?

le contenu du flux est très probablement une structure de fichier PE, que le PDF utilisera probablement plus tard dans l'exploit.

il y a aussi deux xref les tableaux dans le PDF, c'est bien mais aussi 2% EOF qui suivent le xref.

c'Est la présence de ces bon? (Note: Le deuxième xref points au 1er xref/prev nom.

xref se réfère à la seconde 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

deuxième xref:

xref
0 5
0000000000 65535 f
0000000010 00000 n
0000000067 00000 n
0000000136 00000 n
0000000373 00000 n
trailer
>
startxref
429
%%EOF
18
demandé sur Kurt Pfeifle 2015-01-17 12:11:35

4 réponses

  1. "Deux xref tables et deux %%EOF"?

    ceci n'est pas seulement une indication d'un fichier PDF malveillant. Il peut y avoir deux ou plusieurs occurrences de chaque, si le fichier a été généré via le "mise à jour incrémentielle" fonctionnalité. (Chaque fichier PDF signé numériquement est comme cela, et chaque fichier qui a été changé dans Acrobat et sauvé en utilisant le 'Enregistrer' bouton / menu au lieu de " Enregistrer sous...' bouton/menu qui aime trop.)

  2. "Comment décoder un compressés au format PDF flux à partir d'un objet spécifique"?

    regardez Didier Stevens' script Python pdf-parser.py. Avec cet outil en ligne de commande, vous pouvez décharger le flux décodé de n'importe quel objet PDF dans un fichier. Exemple de commande pour vider le flux de L'objet PDF numéro 13:

    pdf-parser.py -o 13 -f -d obj13.dump my.pdf
    
11
répondu Kurt Pfeifle 2017-12-18 18:22:57

%%EOF commentaire doit être présent à la fin du fichier, tout autre commentaire (toute ligne commençant %) peut être présent à tout moment dans le fichier. Donc oui, 2 %%EOF les commentaires sont parfaitement valables. Ceci est documenté dans le référence PDF. Cochez l'exemple 3.11 dans le manuel de référence 1.7 PDF à la page 112 pour un exemple documenté dans la spécification qui a la structure que vous décrivez. Il S'agit D'un fichier PDF qui a été progressivement mettre.

notez que les versions plus récentes de PDF peuvent avoir des flux de références croisées, qui sont eux-mêmes comprimés.

la façon la plus facile de décoder un fichier PDF est d'utiliser un outil conçu pour le faire, par exemple MuPDF peut le faire avec"mutool clean -d <input pdf file> <output PDF file>" va décompresser (-d) tous les flux compressés dans un fichier PDF et écrivez la sortie dans un nouveau fichier PDF.

sinon vous aurez besoin d'utiliser quelque chose comme zlib pour Flate et LZW décompression, vous aurez besoin de Ecrivez votre propre décompression ainsi que L'ASCIIHex85 je pense. Sans oublier JBIG, JPEG et JPEG2000 si vous voulez que les images soient décodées aussi.

10
répondu KenS 2015-01-18 20:54:09

Vous pouvez utiliser RUPS pour analyser le PDF et exporter ou simplement regarder le flux déjà décodé. Environ le % % D'EOF vous pouvez avoir autant que le nombre de pièces jointes faites au PDF.

4
répondu Paulo Soares 2015-01-17 20:06:04

en ce qui concerne les outils, comme indiqué dans d'autres réponses, il existe un certain nombre d'outils qui peuvent être utilisés pour décompresser les flux (en ligne de commande ou autrement). Cependant, il y a aussi un certain nombre d'outils qui rendent facile d'inspecter un fichier PDF en vous permettant de marcher l'arbre d'objet et de voir ce qui à l'intérieur des flux comprimés facilement. Les deux que j'ai utilisé sont:

1) callas Pdftoolbox Desktop (attention, je suis associé à cette société). pdfToolbox a une option "Explorer PDF" qui permet vous pouvez voir les objets associés à une page, jusqu'à et y compris la page réelle des opérateurs.

2) Navigateur Enfocus. Je ne suis pas sûr que ce soit encore à trouver, mais cet outil vous permettra d'ouvrir la racine de l'arbre des objets d'un fichier PDF et puis de présenter la hiérarchie des objets d'une manière très similaire au Finder sur Mac fait avec les systèmes de fichiers. Le navigateur vous permettra même d'éditer des fichiers PDF (vous devriez vraiment savoir ce que vous faites dans ce cas) en éditant les objets de bas niveau, créer de nouveaux objets ou modifier le contenu des flux. Vraiment cool.

mise à Jour: s'avère que le Navigateur est toujours disponible, vous pouvez le télécharger ici: http://www.enfocus.com/en/products/browser/

2
répondu David van Driessche 2015-01-18 10:03:58