
ParanoiDF - PDF Analysis Suite based on PeePDF by Jose Miguel Esparza (http://peepdf.eternal-todo.com/). Tools added: Password cracking, redaction recovery, DRM removal, malicious JavaScript extraction, and more.
The swiss army knife of PDF Analysis Tools. Based on peepdf - http://peepdf.eternal-todo.com. This README builds on the peepdf README.
This tool was developed as part of my M.Sc dissertation/project for the School of Computing (University of Kent, Canterbury, UK). The man behind the idea for this tool was Julio Hernandez-Castro (www.azhala.com).
See https://github.com/patrickdw123/ParanoiDF/wiki.
No installation is needed apart of the commented dependencies, just execute:
python paranoiDF.py
There are two important options when ParanoidF is executed:
-f: Ignores the parsing errors. Analysing malicious files propably leads to parsing errors, so this parameter should be set. -l: Sets the loose mode, so does not search for the endobj tag because it's not obligatory. Helpful with malformed files.
Shows the statistics of the file after being decoded/decrypted and analysed:
python paranoiDF.py [options] pdf_file
Executes the interactive console, giving a wide range of tools to play with.
python paranoiDF.py -i
It's possible to use a commands file to specify the commands to be executed in the batch mode. This type of execution is good to automatise analysis of several files:
python paranoiDF.py [options] -s script_file
If the information shown when a PDF file is parsed is not enough to know if it's harmful or not, the following commands can help to do it:
Shows the tree graph of the file or specified version. Here we can see suspicious elements.
Shows the physical map of the file or the specified version of the document. This is helpful to see unusual big objects or big spaces between objects.
Search the specified string or hexadecimal string in the objects (decoded and encrypted streams included).
Shows the (raw) content of the object.
Shows the (raw) content of the stream.
V2.0:
Feel free to send bugs/criticisms/praises/comments to patrickdw123(at)gmail(dot)com.