Origami

From aldeid
Jump to navigation Jump to search

Description

Origami is a Ruby framework for manipulating PDF documents. It features a PDF compliant parser and allows to analyze, modify or create malicious PDF files.

Origami supports advanced features of the latest PDF specifications:

  • Encryption, up to Adobe Reader X
  • Digital signatures
  • Forms (Acrobat and XML)
  • JavaScript
  • Annotations
  • Flash
  • File attachments
  • Object streams

Installation

REMnux

Origami comes pre-installed on REMnux.

From packages

To install it, execute the following commands. They will install origami as well as the required dependencies:

$ sudo gem install gtk2
$ sudo gem install therubyracer
$ sudo gem install origami

From sources (development version)

$ hg clone https://code.google.com/p/origami-pdf/

Usage

Graphical User Interface (GUI)

pdfwalker
pdfwalker is the GUI version of Origami

Command Line Interface (CLI)

pdf2graph
Generates a Graphviz DOT file out of a PDF document.
pdf2pdfa
Enforces a document to be rendered as PDF/A.
This will disable multimedia features and JavaScript execution in Adobe Reader.
pdf2ruby
Convert a PDF document to an Origami script (experimental).
pdfcocoon
Embeds and PDF document into a trojan PDF document.
pdfcop
The PDF filtering engine. Scans PDF documents for malicious structures
pdfdecompress
ncompresses all binary streams of a PDF document.
pdfdecrypt
Decrypts a PDF document. Supports RC4 40 to 128 bits, AES128, AES256.
pdfencrypt
Encrypts a PDF document. Supports RC4 40 to 128 bits, AES128, AES256
pdfexplode
Explodes a document into separate documents
pdfextract
Extracts various data out of a document (streams, scripts, images, fonts, metadata, attachments).
pdfmetadata
Prints out the metadata contained in a PDF document.
pdfsh
Prints out the metadata contained in a PDF document.

Writing custom scripts

You can write your own custom scripts using the Origami API (Ruby).

Origami already comes up with some commonly useful scripts:

  • pdfencrypt/pdfdecrypt (encrypts or decrypts a document)
  • pdfdecompress (removes any compression layer)
  • pdfmetadata (prints document metadata)
  • pdfextract (extracts various objects from a document)
  • pdfcop (automatized analysis engine)
  • Some other miscellaneous scripts (pdf2ruby, pdf2graph, pdf2pdfa, ...)

Comments