peepdf
Python PDF analysis tool for finding JavaScript, shellcode, and exploit artifacts in documents.
Technical Architecture & Overview
peepdf parses PDF files and exposes their object structure, streams, and embedded JavaScript for inspection. It decodes common filters and encodings, wraps PyV8 for JavaScript analysis and pylibemu for shellcode analysis, and checks hashes against VirusTotal. The interactive console lets analysts walk the document tree and extract suspicious objects. The repository has had no commits since November 2016.
Targeted Technical Use Cases
Dissecting a suspicious PDF attachment to confirm an exploit or a JavaScript downloader.
Evaluation & Trade-offs
Core Strengths
- +Interactive console purpose-built for PDF structure.
- +Shellcode analysis through the optional pylibemu wrapper.
- +Simple to script for batch checks.
Trade-Offs & Limitations
- -No commits to the repository since 2016.
- -Code uses Python 2 syntax and does not run on Python 3.
Defensive Security Application
Confirming malicious PDFs in phishing investigations and extracting indicators from embedded payloads.
Frequently Asked Questions
What is peepdf?→
peepdf parses PDF files and exposes their object structure, streams, and embedded JavaScript for inspection. It decodes common filters and encodings, wraps PyV8 for JavaScript analysis and pylibemu for shellcode analysis, and checks hashes against VirusTotal. The interactive console lets analysts walk the document tree and extract suspicious objects. The repository has had no commits since November 2016.
What is peepdf used for?→
Dissecting a suspicious PDF attachment to confirm an exploit or a JavaScript downloader.
What are the strengths of peepdf?→
- +Interactive console purpose-built for PDF structure.
- +Shellcode analysis through the optional pylibemu wrapper.
- +Simple to script for batch checks.
What are the limitations of peepdf?→
- +No commits to the repository since 2016.
- +Code uses Python 2 syntax and does not run on Python 3.
How is peepdf used defensively?→
Confirming malicious PDFs in phishing investigations and extracting indicators from embedded payloads.