ncanceill / pdf_hide

A steganographic tool in Python for hiding data inside PDF files
GNU General Public License v3.0
44 stars 17 forks source link

PDF HIDE

This is a steganographic tool in Python for hiding data in PDF files

This tool is an ongoing effort to bring a novel open-source method of steganography to the public. It is able to embed arbitrary data in a covert way inside any PDF file containing enough text. As a result, no one but the intented recipient suspects the existence of embedded data. The same tool can then be used to extract the concealed data.

This project stems from research conducted at the University of Amsterdam, The Netherlands, in December 2012: Using Steganography to hide messages inside PDF files, written by Fahimeh Alizadeh, Nicolas Canceill, Sebastian Dabkiewicz and Diederik Vandevenne.

Basic usage

pdf_hide [-o <embedded.pdf>] embed <data_file> <innocent.pdf>
pdf_hide [-o <extracted_file>] extract <embedded.pdf>

Getting started

Please read the guide.

Requirements

This tool is a Python 3 program: it requires a basic Python 3 installation.

It requires QPDF in order to modify compressed PDF files.

Additionally, it requires GNU Make and pdflatex to build samples for the tests.

Setup

You can find the latest version packaged on the releases page. The current version is 0.0: tgzzip.

Alternatively, you can clone the git repository at: github.com/ncanceill/pdf_hide.git

You can run the tests with: make tests

You can install the package (as root) on your system's Python path with: make install or ./setup.py install

Project status

Current version is 0.0.

Please check the project status for more details.

Stability

The current version is STABLE. It may be run in production.

Contributions

General rule: any contributions are welcome.

Do not hesitate to drop an issue if you found a bug, if you either want to see a new feature or wish to suggest an improvement, or even if you simply have a question.

Please check the contribution status if you want to get involved.

License information

This project, including this README, distributes under GNU General Public License v3 from the Free Software Foundation.

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see [http://www.gnu.org/licenses/].


Copyright (C) 2013 Nicolas Canceill