pdfalyzer 1.16.11__tar.gz → 1.16.12__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of pdfalyzer might be problematic. Click here for more details.
- {pdfalyzer-1.16.11 → pdfalyzer-1.16.12}/CHANGELOG.md +3 -0
- {pdfalyzer-1.16.11 → pdfalyzer-1.16.12}/PKG-INFO +13 -6
- {pdfalyzer-1.16.11 → pdfalyzer-1.16.12}/README.md +9 -2
- {pdfalyzer-1.16.11 → pdfalyzer-1.16.12}/pyproject.toml +7 -3
- {pdfalyzer-1.16.11 → pdfalyzer-1.16.12}/.pdfalyzer.example +0 -0
- {pdfalyzer-1.16.11 → pdfalyzer-1.16.12}/LICENSE +0 -0
- {pdfalyzer-1.16.11 → pdfalyzer-1.16.12}/pdfalyzer/__init__.py +0 -0
- {pdfalyzer-1.16.11 → pdfalyzer-1.16.12}/pdfalyzer/__main__.py +0 -0
- {pdfalyzer-1.16.11 → pdfalyzer-1.16.12}/pdfalyzer/binary/binary_scanner.py +0 -0
- {pdfalyzer-1.16.11 → pdfalyzer-1.16.12}/pdfalyzer/config.py +0 -0
- {pdfalyzer-1.16.11 → pdfalyzer-1.16.12}/pdfalyzer/decorators/document_model_printer.py +0 -0
- {pdfalyzer-1.16.11 → pdfalyzer-1.16.12}/pdfalyzer/decorators/indeterminate_node.py +0 -0
- {pdfalyzer-1.16.11 → pdfalyzer-1.16.12}/pdfalyzer/decorators/pdf_object_properties.py +0 -0
- {pdfalyzer-1.16.11 → pdfalyzer-1.16.12}/pdfalyzer/decorators/pdf_tree_node.py +0 -0
- {pdfalyzer-1.16.11 → pdfalyzer-1.16.12}/pdfalyzer/decorators/pdf_tree_verifier.py +0 -0
- {pdfalyzer-1.16.11 → pdfalyzer-1.16.12}/pdfalyzer/detection/constants/binary_regexes.py +0 -0
- {pdfalyzer-1.16.11 → pdfalyzer-1.16.12}/pdfalyzer/detection/constants/javascript_reserved_keywords.py +0 -0
- {pdfalyzer-1.16.11 → pdfalyzer-1.16.12}/pdfalyzer/detection/javascript_hunter.py +0 -0
- {pdfalyzer-1.16.11 → pdfalyzer-1.16.12}/pdfalyzer/detection/yaralyzer_helper.py +0 -0
- {pdfalyzer-1.16.11 → pdfalyzer-1.16.12}/pdfalyzer/font_info.py +0 -0
- {pdfalyzer-1.16.11 → pdfalyzer-1.16.12}/pdfalyzer/helpers/dict_helper.py +0 -0
- {pdfalyzer-1.16.11 → pdfalyzer-1.16.12}/pdfalyzer/helpers/filesystem_helper.py +0 -0
- {pdfalyzer-1.16.11 → pdfalyzer-1.16.12}/pdfalyzer/helpers/number_helper.py +0 -0
- {pdfalyzer-1.16.11 → pdfalyzer-1.16.12}/pdfalyzer/helpers/pdf_object_helper.py +0 -0
- {pdfalyzer-1.16.11 → pdfalyzer-1.16.12}/pdfalyzer/helpers/rich_text_helper.py +0 -0
- {pdfalyzer-1.16.11 → pdfalyzer-1.16.12}/pdfalyzer/helpers/string_helper.py +0 -0
- {pdfalyzer-1.16.11 → pdfalyzer-1.16.12}/pdfalyzer/output/character_mapping.py +0 -0
- {pdfalyzer-1.16.11 → pdfalyzer-1.16.12}/pdfalyzer/output/layout.py +0 -0
- {pdfalyzer-1.16.11 → pdfalyzer-1.16.12}/pdfalyzer/output/pdfalyzer_presenter.py +0 -0
- {pdfalyzer-1.16.11 → pdfalyzer-1.16.12}/pdfalyzer/output/styles/node_colors.py +0 -0
- {pdfalyzer-1.16.11 → pdfalyzer-1.16.12}/pdfalyzer/output/styles/rich_theme.py +0 -0
- {pdfalyzer-1.16.11 → pdfalyzer-1.16.12}/pdfalyzer/output/tables/decoding_stats_table.py +0 -0
- {pdfalyzer-1.16.11 → pdfalyzer-1.16.12}/pdfalyzer/output/tables/font_summary_table.py +0 -0
- {pdfalyzer-1.16.11 → pdfalyzer-1.16.12}/pdfalyzer/output/tables/pdf_node_rich_table.py +0 -0
- {pdfalyzer-1.16.11 → pdfalyzer-1.16.12}/pdfalyzer/output/tables/stream_objects_table.py +0 -0
- {pdfalyzer-1.16.11 → pdfalyzer-1.16.12}/pdfalyzer/pdf_object_relationship.py +0 -0
- {pdfalyzer-1.16.11 → pdfalyzer-1.16.12}/pdfalyzer/pdfalyzer.py +0 -0
- {pdfalyzer-1.16.11 → pdfalyzer-1.16.12}/pdfalyzer/util/adobe_strings.py +0 -0
- {pdfalyzer-1.16.11 → pdfalyzer-1.16.12}/pdfalyzer/util/argument_parser.py +0 -0
- {pdfalyzer-1.16.11 → pdfalyzer-1.16.12}/pdfalyzer/util/debugging.py +0 -0
- {pdfalyzer-1.16.11 → pdfalyzer-1.16.12}/pdfalyzer/util/exceptions.py +0 -0
- {pdfalyzer-1.16.11 → pdfalyzer-1.16.12}/pdfalyzer/util/pdf_parser_manager.py +0 -0
- {pdfalyzer-1.16.11 → pdfalyzer-1.16.12}/pdfalyzer/yara_rules/PDF.yara +0 -0
- {pdfalyzer-1.16.11 → pdfalyzer-1.16.12}/pdfalyzer/yara_rules/PDF_binary_stream.yara +0 -0
- {pdfalyzer-1.16.11 → pdfalyzer-1.16.12}/pdfalyzer/yara_rules/__init.py__ +0 -0
- {pdfalyzer-1.16.11 → pdfalyzer-1.16.12}/pdfalyzer/yara_rules/didier_stevens.yara +0 -0
- {pdfalyzer-1.16.11 → pdfalyzer-1.16.12}/pdfalyzer/yara_rules/lprat.static_file_analysis.yara +0 -0
- {pdfalyzer-1.16.11 → pdfalyzer-1.16.12}/pdfalyzer/yara_rules/pdf_malware.yara +0 -0
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: pdfalyzer
|
|
3
|
-
Version: 1.16.
|
|
3
|
+
Version: 1.16.12
|
|
4
4
|
Summary: PDF analysis tool. Scan a PDF with YARA rules, visualize its inner tree-like data structure in living color (lots of colors), force decodes of suspicious font binaries, and more.
|
|
5
5
|
Home-page: https://github.com/michelcrypt4d4mus/pdfalyzer
|
|
6
6
|
License: GPL-3.0-or-later
|
|
7
|
-
Keywords: ascii art,binary,color,cybersecurity,DFIR,encoding,font,infosec,maldoc,malicious pdf,malware,malware analysis,pdf,pdfs,pdf analysis,pypdf,threat assessment,visualization,yara
|
|
7
|
+
Keywords: ascii art,binary,color,cybersecurity,DFIR,encoding,font,infosec,maldoc,malicious pdf,malware,malware analysis,pdf,pdfs,pdf analysis,pypdf,threat assessment,threat hunting,threat intelligence,threat research,threatintel,visualization,yara
|
|
8
8
|
Author: Michel de Cryptadamus
|
|
9
9
|
Author-email: michel@cryptadamus.com
|
|
10
|
-
Requires-Python: >=3.9.2,<4.0
|
|
10
|
+
Requires-Python: >=3.9.2,<4.0
|
|
11
11
|
Classifier: Development Status :: 5 - Production/Stable
|
|
12
12
|
Classifier: Environment :: Console
|
|
13
13
|
Classifier: Intended Audience :: Information Technology
|
|
@@ -23,7 +23,7 @@ Classifier: Topic :: Artistic Software
|
|
|
23
23
|
Classifier: Topic :: Scientific/Engineering :: Visualization
|
|
24
24
|
Classifier: Topic :: Security
|
|
25
25
|
Requires-Dist: anytree (>=2.13,<3.0)
|
|
26
|
-
Requires-Dist: pypdf (>=
|
|
26
|
+
Requires-Dist: pypdf (>=6.0.0,<7.0.0)
|
|
27
27
|
Requires-Dist: yaralyzer (>=1.0.4,<2.0.0)
|
|
28
28
|
Project-URL: Changelog, https://github.com/michelcrypt4d4mus/pdfalyzer/blob/master/CHANGELOG.md
|
|
29
29
|
Project-URL: Documentation, https://github.com/michelcrypt4d4mus/pdfalyzer
|
|
@@ -65,10 +65,12 @@ If you're looking for one of these things this may be the tool for you.
|
|
|
65
65
|
### What It Don't Do
|
|
66
66
|
This tool is mostly for examining/working with a PDF's data and logical structure. As such it doesn't have much to offer as far as extracting text, rendering[^3], writing, etc. etc.
|
|
67
67
|
|
|
68
|
+
If you suspect you are dealing with a malcious PDF you can safely run `pdfalyze` on it; embedded javascript etc. will not be executed. If you want to actually look at the contents of a suspect PDF you can use [`dangerzone`](https://dangerzone.rocks/) to sanitize the contents with extreme prejudice before opening it.
|
|
69
|
+
|
|
68
70
|
-------------
|
|
69
71
|
|
|
70
72
|
# Installation
|
|
71
|
-
|
|
73
|
+
#### All Platforms
|
|
72
74
|
Installation with [pipx](https://pypa.github.io/pipx/)[^4] is preferred though `pip3` / `pip` should also work.
|
|
73
75
|
```sh
|
|
74
76
|
pipx install pdfalyzer
|
|
@@ -76,7 +78,12 @@ pipx install pdfalyzer
|
|
|
76
78
|
|
|
77
79
|
See [PyPDF installation notes](https://github.com/py-pdf/pypdf#installation) about `PyCryptodome` if you plan to `pdfalyze` any files that use AES encryption.
|
|
78
80
|
|
|
79
|
-
|
|
81
|
+
#### macOS Homebrew
|
|
82
|
+
If you are on macOS and use `homebrew` someone out there was kind enough to make [The Pdfalyzer available via homebrew](https://formulae.brew.sh/formula/pdfalyzer) so this should work:
|
|
83
|
+
|
|
84
|
+
```sh
|
|
85
|
+
brew install pdfalyzer
|
|
86
|
+
```
|
|
80
87
|
|
|
81
88
|
### Troubleshooting
|
|
82
89
|
1. If you used `pip3` instead of `pipx` and have an issue you should try to install with `pipx`.
|
|
@@ -33,10 +33,12 @@ If you're looking for one of these things this may be the tool for you.
|
|
|
33
33
|
### What It Don't Do
|
|
34
34
|
This tool is mostly for examining/working with a PDF's data and logical structure. As such it doesn't have much to offer as far as extracting text, rendering[^3], writing, etc. etc.
|
|
35
35
|
|
|
36
|
+
If you suspect you are dealing with a malcious PDF you can safely run `pdfalyze` on it; embedded javascript etc. will not be executed. If you want to actually look at the contents of a suspect PDF you can use [`dangerzone`](https://dangerzone.rocks/) to sanitize the contents with extreme prejudice before opening it.
|
|
37
|
+
|
|
36
38
|
-------------
|
|
37
39
|
|
|
38
40
|
# Installation
|
|
39
|
-
|
|
41
|
+
#### All Platforms
|
|
40
42
|
Installation with [pipx](https://pypa.github.io/pipx/)[^4] is preferred though `pip3` / `pip` should also work.
|
|
41
43
|
```sh
|
|
42
44
|
pipx install pdfalyzer
|
|
@@ -44,7 +46,12 @@ pipx install pdfalyzer
|
|
|
44
46
|
|
|
45
47
|
See [PyPDF installation notes](https://github.com/py-pdf/pypdf#installation) about `PyCryptodome` if you plan to `pdfalyze` any files that use AES encryption.
|
|
46
48
|
|
|
47
|
-
|
|
49
|
+
#### macOS Homebrew
|
|
50
|
+
If you are on macOS and use `homebrew` someone out there was kind enough to make [The Pdfalyzer available via homebrew](https://formulae.brew.sh/formula/pdfalyzer) so this should work:
|
|
51
|
+
|
|
52
|
+
```sh
|
|
53
|
+
brew install pdfalyzer
|
|
54
|
+
```
|
|
48
55
|
|
|
49
56
|
### Troubleshooting
|
|
50
57
|
1. If you used `pip3` instead of `pipx` and have an issue you should try to install with `pipx`.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "pdfalyzer"
|
|
3
|
-
version = "1.16.
|
|
3
|
+
version = "1.16.12"
|
|
4
4
|
description = "PDF analysis tool. Scan a PDF with YARA rules, visualize its inner tree-like data structure in living color (lots of colors), force decodes of suspicious font binaries, and more."
|
|
5
5
|
authors = ["Michel de Cryptadamus <michel@cryptadamus.com>"]
|
|
6
6
|
license = "GPL-3.0-or-later"
|
|
@@ -49,6 +49,10 @@ keywords = [
|
|
|
49
49
|
"pdf analysis",
|
|
50
50
|
"pypdf",
|
|
51
51
|
"threat assessment",
|
|
52
|
+
"threat hunting",
|
|
53
|
+
"threat intelligence",
|
|
54
|
+
"threat research",
|
|
55
|
+
"threatintel",
|
|
52
56
|
"visualization",
|
|
53
57
|
"yara"
|
|
54
58
|
]
|
|
@@ -62,9 +66,9 @@ packages = [
|
|
|
62
66
|
# Dependencies #
|
|
63
67
|
#####################
|
|
64
68
|
[tool.poetry.dependencies]
|
|
65
|
-
python = "^3.9.2"
|
|
69
|
+
python = "^3.9,>=3.9.2"
|
|
66
70
|
anytree = "~=2.13"
|
|
67
|
-
pypdf = "^
|
|
71
|
+
pypdf = "^6.0.0"
|
|
68
72
|
yaralyzer = "^1.0.4"
|
|
69
73
|
|
|
70
74
|
[tool.poetry.group.dev.dependencies]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pdfalyzer-1.16.11 → pdfalyzer-1.16.12}/pdfalyzer/yara_rules/lprat.static_file_analysis.yara
RENAMED
|
File without changes
|
|
File without changes
|