diff --git a/README.md b/README.md
index 97224cf..fda0ada 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,91 @@
-# TruePolyglot
+Truepolyglot is polyglot file generator project. This means that the
+generated file is composed of several file formats. The same file can be
+opened as a ZIP file and as a PDF file for example. The idea of this
+project comes from work of [Ange Albertini](https://github.com/corkami),
+[International Journal of Proof-of-Concept or Get The Fuck
+Out](https://www.alchemistowl.org/pocorgtfo/pocorgtfo07.pdf) and [Julia
+Wolf](https://www.troopers.de/wp-content/uploads/2011/04/TR11_Wolf_OMG_PDF.pdf)
+that explain how we can build a polyglot file.\
+Polyglot file can be fastidious to build, even more if you want to
+respect correctly file format. That's why I decided to build a tool to
+generate them.\
+My main motivation was the technical challenge.
-See webiste at https://truepolyglot.hackade.org
+## Features and versions ##
+
+ Description Version
+ --------------------------------------------------------------------------------------------------------- -------------
+ Build a polyglot file valid as PDF and ZIP format and that can be opened with 7Zip and Windows Explorer POC
+ Add a stream object in PDF part POC
+ Polyglot file checked without warning with [pdftocairo](https://poppler.freedesktop.org/) >= 1.0
+ Polyglot file checked without warning with [caradoc](https://github.com/ANSSI-FR/caradoc) >= 1.0
+ Rebuild PDF Xref Table >= 1.0
+ Stream object with correct length header value >= 1.0
+ Format "zippdf", file without offset after Zip data >= 1.1
+ Polyglot file keep original PDF version >= 1.1.1
+ Add "szippdf" format without offset before and after Zip data >= 1.2
+ Fix /Length stream object value and PDF offset for szippdf format >= 1.2.1
+ PDF object numbers reorder after insertion >= 1.3
+
+## Polyglot file compatibility ##
+
+ Software Formats status
+ ------------------ ------------------------- -----------------------------
+ Acrobat Reader pdfzip, zippdf OK
+ Acrobat Reader szippdf __KO__
+ Sumatra PDF pdfzip, zippdf, szippdf OK
+ Edge pdfzip, zippdf, szippdf OK
+ Firefox pdfzip, zippdf, szippdf OK
+ 7zip pdfzip, zippdf __OK with warning__
+ 7zip szippdf OK
+ Explorer Windows pdfzip, zippdf, szippdf OK
+ Info-ZIP (unzip) pdfzip, zippdf, szippdf OK
+ Evince pdfzip, zippdf, szippdf OK
+ pdftocairo -pdf pdfzip, zippdf, szippdf OK
+ caradoc stats pdfzip OK
+ java szippdf OK
+
+## Examples ##
+
+ PDF input file Zip input file Format Polyglot Comment
+ ---------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------
+ [doc.pdf](/samples/pdfzip/poc1/doc.pdf) [archive.zip](/samples/pdfzip/poc1/archive.zip) pdfzip [polyglot.pdf](/samples/pdfzip/poc1/polyglot.pdf) PDF/ZIP polyglot - 122 Ko
+ [orwell\_1984.pdf](/samples/pdfzip/poc2/orwell_1984.pdf) [file-FILE5\_32.zip](/samples/pdfzip/poc2/file-FILE5_32.zip) pdfzip [polyglot.pdf](/samples/pdfzip/poc2/polyglot.pdf) PDF/ZIP polyglot - 1.3 Mo
+ [x86asm.pdf](/samples/pdfzip/poc3/x86asm.pdf) [fasmw17304.zip](/samples/pdfzip/poc3/fasmw17304.zip) pdfzip [polyglot.pdf](/samples/pdfzip/poc3/polyglot.pdf) PDF/ZIP polyglot - 1.8 Mo
+ [doc.pdf](/samples/zippdf/poc4/doc.pdf) [archive.zip](/samples/zippdf/poc4/archive.zip) zippdf [polyglot.pdf](/samples/zippdf/poc4/polyglot.pdf) PDF/ZIP polyglot - 112 Ko
+ [electronics.pdf](/samples/szippdf/poc5/electronics.pdf) [hello\_world.jar](/samples/szippdf/poc5/hello_world.jar) szippdf [polyglot.pdf](/samples/szippdf/poc5/polyglot.pdf) PDF/JAR polyglot - 778 Ko
+ [hexinator.pdf](/samples/pdfzip/poc6/hexinator.pdf) [eicar.zip](/samples/pdfzip/poc6/eicar.zip) ([scan virustotal.com](https://www.virustotal.com/#/file/2174e17e6b03bb398666c128e6ab0a27d4ad6f7d7922127fe828e07aa94ab79d/detection)) pdfzip [polyglot.pdf](/samples/pdfzip/poc6/polyglot.pdf) ([scan virustotal.com](https://www.virustotal.com/#/file/f6fef31e3b03164bb3bdf35af0521f9fc0c518a9e0f1aa9f8b60ac936201591a/detection)) PDF/ZIP polyglot with Eicar test in Zip - 2.9 Mo
+
+## Usage ##
+
+ usage: truepolyglot format [options] output-file
+
+ Generate a polyglot file.
+
+ Formats availables:
+ * pdfzip: Generate a file valid as PDF and ZIP. The format is closest to PDF.
+ * zippdf: Generate a file valid as ZIP and PDF. The format is closest to ZIP.
+ * szippdf: Generate a file valid as ZIP and PDF. The format is strictly a ZIP. Archive is modified.
+
+ positional arguments:
+ {pdfzip,zippdf,szippdf}
+ Output polyglot format
+ output_file Output polyglot file path
+
+ optional arguments:
+ -h, --help show this help message and exit
+ --pdffile PDFFILE PDF input file
+ --zipfile ZIPFILE ZIP input file
+ --verbose {none,error,info,debug}
+ Verbosity level (default: info)
+
+ TruePolyglot v1.3
+
+## Code ##
+
+ git clone https://git.hackade.org/truepolyglot.git/
+ Download [truepolyglot-1.3.tar.gz](https://git.hackade.org/truepolyglot.git/snapshot/truepolyglot-1.3.tar.gz)
+
+## Contact ##
+
+[truepolyglot@hackade.org](mailtp:truepolyglot@hackade.org)
diff --git a/caradoc b/caradoc
deleted file mode 100755
index 97cc119..0000000
Binary files a/caradoc and /dev/null differ
diff --git a/pdfcat b/tests/pdfcat
similarity index 98%
rename from pdfcat
rename to tests/pdfcat
index 115eda7..68a9c6e 100755
--- a/pdfcat
+++ b/tests/pdfcat
@@ -23,6 +23,10 @@ EXAMPLES
# see https://github.com/mstamy2/PyPDF2/LICENSE
from __future__ import print_function
+
+import sys
+sys.path.append("../")
+
import argparse
from PdfFileTransformer.PyPDF2.pagerange import PAGE_RANGE_HELP
diff --git a/website/css/styles.css b/website/css/styles.css
deleted file mode 100644
index adc9728..0000000
--- a/website/css/styles.css
+++ /dev/null
@@ -1,63 +0,0 @@
-html {
- background-color: black;
- font-family: Consolas,monaco,monospace;
- color: #92D050;
-}
-body {
- background-color: black;
- font-family: Consolas,monaco,monospace;
- color: #92D050;
-}
-td {
- background-color: black;
- font-family: Consolas,monaco,monospace;
- color: #92D050;
-}
-th {
- background-color: black;
- font-family: Consolas,monaco,monospace;
- color: #92D050;
-}
-h1 {
- color: white;
-}
-a:link {
- color: #47B8C7;
-}
-a:visited {
- color: #47B8C7;
-}
-a:active {
- color: #47B8C7;
-}
-table {
- border-collapse: collapse;
-}
-table, th, td {
- border: 1px solid white;
-}
-th {
- background-color: #92D050;
- color: black;
-}
-th {
- padding-left: 0.5em;
- padding-right: 0.5em;
- padding-top: 0.5em;
- padding-bottom: 0.5em;
-}
-td {
- padding-left: 0.5em;
- padding-right: 0.5em;
- padding-bottom: 0.5em;
- padding-top: 0.5em;
- text-align: left;
-}
-
-.font_reduce {
- font-size: 75%;
-}
-
-.warning {
- color: #ffb833;
-}
diff --git a/website/css/styles2.css b/website/css/styles2.css
deleted file mode 100644
index 56ef7e5..0000000
--- a/website/css/styles2.css
+++ /dev/null
@@ -1,61 +0,0 @@
-html {
- background-color: black;
- font-family: Consolas,monaco,monospace;
- color: #92D050;
-}
-body {
- background-color: black;
- font-family: Consolas,monaco,monospace;
- color: #92D050;
-}
-td {
- background-color: black;
- font-family: Consolas,monaco,monospace;
- color: #92D050;
-}
-th {
- background-color: black;
- font-family: Consolas,monaco,monospace;
- color: #92D050;
-}
-a:link {
- color: #47B8C7;
-}
-a:visited {
- color: #47B8C7;
-}
-a:active {
- color: #47B8C7;
-}
-table {
- border-collapse: collapse;
-}
-table, th, td {
- border: 1px solid white;
-}
-th {
- background-color: #92D050;
- color: black;
-}
-th {
- padding-left: 0.5em;
- padding-right: 0.5em;
- padding-top: 0.5em;
- padding-bottom: 0.5em;
-}
-td {
- padding-left: 0.5em;
- padding-right: 0.5em;
- padding-bottom: 0.5em;
- padding-top: 0.5em;
- text-align: left;
-}
-th a:link {
- color: black;
-}
-th a:visited {
- color: black;
-}
-th a:active {
- color: black;
-}
diff --git a/website/favicon.ico b/website/favicon.ico
deleted file mode 100644
index 0ea93ea..0000000
Binary files a/website/favicon.ico and /dev/null differ
diff --git a/website/gen_pocs.sh b/website/gen_pocs.sh
deleted file mode 100755
index a62e112..0000000
--- a/website/gen_pocs.sh
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/bash
-
-find -type f -name 'polyglot.pdf' -delete
-
-mkdir -p ./samples/pdfzip/poc1/
-../truepolyglot pdfzip --pdffile ./samples/pdfzip/poc1/doc.pdf --zipfile ./samples/pdfzip/poc1/archive.zip ./samples/pdfzip/poc1/polyglot.pdf
-
-mkdir -p ./samples/pdfzip/poc2/
-../truepolyglot pdfzip --pdffile ./samples/pdfzip/poc2/orwell_1984.pdf --zipfile ./samples/pdfzip/poc2/file-FILE5_32.zip ./samples/pdfzip/poc2/polyglot.pdf
-
-mkdir -p ./samples/pdfzip/poc3/
-../truepolyglot pdfzip --pdffile ./samples/pdfzip/poc3/x86asm.pdf --zipfile ./samples/pdfzip/poc3/fasmw17304.zip ./samples/pdfzip/poc3/polyglot.pdf
-
-mkdir -p ./samples/zippdf/poc4/
-../truepolyglot zippdf --pdffile ./samples/zippdf/poc4/doc.pdf --zipfile ./samples/zippdf/poc4/archive.zip ./samples/zippdf/poc4/polyglot.pdf
-
-mkdir -p ./samples/szippdf/poc5/
-../truepolyglot szippdf --pdffile ./samples/szippdf/poc5/electronics.pdf --zipfile ./samples/szippdf/poc5/hello_world.jar ./samples/szippdf/poc5/polyglot.pdf
-
-mkdir -p ./samples/pdfzip/poc6/
-../truepolyglot pdfzip --pdffile ./samples/pdfzip/poc6/hexinator.pdf --zipfile ./samples/pdfzip/poc6/eicar.zip ./samples/pdfzip/poc6/polyglot.pdf
diff --git a/website/index.html b/website/index.html
deleted file mode 100644
index d6861a8..0000000
--- a/website/index.html
+++ /dev/null
@@ -1,251 +0,0 @@
-
-
-
-
-
-
- TruePolyglot
-
-
-
-
-
-
-
-
-
-
TruePolyglot
-Truepolyglot is polyglot file generator project.
-This means that the generated file is composed of several file formats. The same file can be opened as a ZIP file and as a PDF file for example.
-The idea of this project comes from work of Ange Albertini, International Journal of Proof-of-Concept or Get The Fuck Out and Julia Wolf that explain how we can build a polyglot file.
-Polyglot file can be fastidious to build, even more if you want to respect correctly file format. That's why I decided to build a tool to generate them.
-My main motivation was the technical challenge.
-
-
-
Features and changelog
-
-
-
-
Description
-
Version
-
-
-
Build a polyglot file valid as PDF and ZIP format and that can be opened with 7Zip and Windows Explorer
-
POC
-
-
-
Add a stream object in PDF part
-
POC
-
-
-
Polyglot file checked without warning with pdftocairo
-
>= 1.0
-
-
-
Polyglot file checked without warning with caradoc
-
>= 1.0
-
-
-
Rebuild PDF Xref Table
-
>= 1.0
-
-
-
Stream object with correct length header value
-
>= 1.0
-
-
-
Format "zippdf", file without offset after Zip data
-
>= 1.1
-
-
-
Polyglot file keep original PDF version
-
>= 1.1.1
-
-
-
Add "szippdf" format without offset before and after Zip data
-
>= 1.2
-
-
-
Fix /Length stream object value and PDF offset for szippdf format
-usage: truepolyglot format [options] output-file
-
-Generate a polyglot file.
-
-Formats availables:
-* pdfzip: Generate a file valid as PDF and ZIP. The format is closest to PDF.
-* zippdf: Generate a file valid as ZIP and PDF. The format is closest to ZIP.
-* szippdf: Generate a file valid as ZIP and PDF. The format is strictly a ZIP. Archive is modified.
-
-positional arguments:
- {pdfzip,zippdf,szippdf}
- Output polyglot format
- output_file Output polyglot file path
-
-optional arguments:
- -h, --help show this help message and exit
- --pdffile PDFFILE PDF input file
- --zipfile ZIPFILE ZIP input file
- --verbose {none,error,info,debug}
- Verbosity level (default: info)
-
-TruePolyglot v1.3
-