pdfalyzer 1.14.7__tar.gz → 1.14.8__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.14.7 → pdfalyzer-1.14.8}/CHANGELOG.md +3 -0
- {pdfalyzer-1.14.7 → pdfalyzer-1.14.8}/PKG-INFO +1 -1
- {pdfalyzer-1.14.7 → pdfalyzer-1.14.8}/pdfalyzer/__init__.py +1 -1
- {pdfalyzer-1.14.7 → pdfalyzer-1.14.8}/pdfalyzer/output/layout.py +4 -0
- {pdfalyzer-1.14.7 → pdfalyzer-1.14.8}/pdfalyzer/output/pdfalyzer_presenter.py +12 -3
- {pdfalyzer-1.14.7 → pdfalyzer-1.14.8}/pyproject.toml +1 -1
- {pdfalyzer-1.14.7 → pdfalyzer-1.14.8}/LICENSE +0 -0
- {pdfalyzer-1.14.7 → pdfalyzer-1.14.8}/README.md +0 -0
- {pdfalyzer-1.14.7 → pdfalyzer-1.14.8}/pdfalyzer/__main__.py +0 -0
- {pdfalyzer-1.14.7 → pdfalyzer-1.14.8}/pdfalyzer/binary/binary_scanner.py +0 -0
- {pdfalyzer-1.14.7 → pdfalyzer-1.14.8}/pdfalyzer/config.py +0 -0
- {pdfalyzer-1.14.7 → pdfalyzer-1.14.8}/pdfalyzer/decorators/document_model_printer.py +0 -0
- {pdfalyzer-1.14.7 → pdfalyzer-1.14.8}/pdfalyzer/decorators/indeterminate_node.py +0 -0
- {pdfalyzer-1.14.7 → pdfalyzer-1.14.8}/pdfalyzer/decorators/pdf_object_properties.py +0 -0
- {pdfalyzer-1.14.7 → pdfalyzer-1.14.8}/pdfalyzer/decorators/pdf_tree_node.py +0 -0
- {pdfalyzer-1.14.7 → pdfalyzer-1.14.8}/pdfalyzer/decorators/pdf_tree_verifier.py +0 -0
- {pdfalyzer-1.14.7 → pdfalyzer-1.14.8}/pdfalyzer/detection/constants/binary_regexes.py +0 -0
- {pdfalyzer-1.14.7 → pdfalyzer-1.14.8}/pdfalyzer/detection/constants/javascript_reserved_keywords.py +0 -0
- {pdfalyzer-1.14.7 → pdfalyzer-1.14.8}/pdfalyzer/detection/javascript_hunter.py +0 -0
- {pdfalyzer-1.14.7 → pdfalyzer-1.14.8}/pdfalyzer/detection/yaralyzer_helper.py +0 -0
- {pdfalyzer-1.14.7 → pdfalyzer-1.14.8}/pdfalyzer/font_info.py +0 -0
- {pdfalyzer-1.14.7 → pdfalyzer-1.14.8}/pdfalyzer/helpers/dict_helper.py +0 -0
- {pdfalyzer-1.14.7 → pdfalyzer-1.14.8}/pdfalyzer/helpers/number_helper.py +0 -0
- {pdfalyzer-1.14.7 → pdfalyzer-1.14.8}/pdfalyzer/helpers/pdf_object_helper.py +0 -0
- {pdfalyzer-1.14.7 → pdfalyzer-1.14.8}/pdfalyzer/helpers/rich_text_helper.py +0 -0
- {pdfalyzer-1.14.7 → pdfalyzer-1.14.8}/pdfalyzer/helpers/string_helper.py +0 -0
- {pdfalyzer-1.14.7 → pdfalyzer-1.14.8}/pdfalyzer/output/character_mapping.py +0 -0
- {pdfalyzer-1.14.7 → pdfalyzer-1.14.8}/pdfalyzer/output/styles/node_colors.py +0 -0
- {pdfalyzer-1.14.7 → pdfalyzer-1.14.8}/pdfalyzer/output/styles/rich_theme.py +0 -0
- {pdfalyzer-1.14.7 → pdfalyzer-1.14.8}/pdfalyzer/output/tables/decoding_stats_table.py +0 -0
- {pdfalyzer-1.14.7 → pdfalyzer-1.14.8}/pdfalyzer/output/tables/font_summary_table.py +0 -0
- {pdfalyzer-1.14.7 → pdfalyzer-1.14.8}/pdfalyzer/output/tables/pdf_node_rich_table.py +0 -0
- {pdfalyzer-1.14.7 → pdfalyzer-1.14.8}/pdfalyzer/output/tables/stream_objects_table.py +0 -0
- {pdfalyzer-1.14.7 → pdfalyzer-1.14.8}/pdfalyzer/pdf_object_relationship.py +0 -0
- {pdfalyzer-1.14.7 → pdfalyzer-1.14.8}/pdfalyzer/pdfalyzer.py +0 -0
- {pdfalyzer-1.14.7 → pdfalyzer-1.14.8}/pdfalyzer/util/adobe_strings.py +0 -0
- {pdfalyzer-1.14.7 → pdfalyzer-1.14.8}/pdfalyzer/util/argument_parser.py +0 -0
- {pdfalyzer-1.14.7 → pdfalyzer-1.14.8}/pdfalyzer/util/debugging.py +0 -0
- {pdfalyzer-1.14.7 → pdfalyzer-1.14.8}/pdfalyzer/util/exceptions.py +0 -0
- {pdfalyzer-1.14.7 → pdfalyzer-1.14.8}/pdfalyzer/util/pdf_parser_manager.py +0 -0
- {pdfalyzer-1.14.7 → pdfalyzer-1.14.8}/pdfalyzer/yara_rules/PDF.yara +0 -0
- {pdfalyzer-1.14.7 → pdfalyzer-1.14.8}/pdfalyzer/yara_rules/PDF_binary_stream.yara +0 -0
- {pdfalyzer-1.14.7 → pdfalyzer-1.14.8}/pdfalyzer/yara_rules/__init.py__ +0 -0
- {pdfalyzer-1.14.7 → pdfalyzer-1.14.8}/pdfalyzer/yara_rules/lprat.static_file_analysis.yara +0 -0
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
# NEXT RELEASE
|
|
2
2
|
|
|
3
|
+
### 1.14.8
|
|
4
|
+
* Handle internal YARA errors more gracefully with error messages instead of crashes (currently seeing `ERROR_TOO_MANY_RE_FIBERS` on macOS on some files for unknown reasons that we hope will go away eventually)
|
|
5
|
+
|
|
3
6
|
### 1.14.7
|
|
4
7
|
* Bump `yaralyzer` version to 0.9.4 (and thus bump `yara-python` to 4.3.0+)
|
|
5
8
|
* Remove unused imports, remove unused `requirements.txt` file.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: pdfalyzer
|
|
3
|
-
Version: 1.14.
|
|
3
|
+
Version: 1.14.8
|
|
4
4
|
Summary: A PDF analysis toolkit. Scan a PDF with relevant 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
|
|
@@ -72,7 +72,7 @@ def pdfalyze():
|
|
|
72
72
|
|
|
73
73
|
|
|
74
74
|
def pdfalyzer_show_color_theme() -> None:
|
|
75
|
-
"""Utility method to show pdfalyzer's color theme. Invocable with '
|
|
75
|
+
"""Utility method to show pdfalyzer's color theme. Invocable with 'pdfalyzer_show_color_theme'."""
|
|
76
76
|
console.print(Panel('The Pdfalyzer Color Theme', style='reverse'))
|
|
77
77
|
|
|
78
78
|
colors = [
|
|
@@ -65,5 +65,9 @@ def print_headline_panel(headline, style: str = ''):
|
|
|
65
65
|
_print_header_panel(headline, style, False, console_width())
|
|
66
66
|
|
|
67
67
|
|
|
68
|
+
def print_fatal_error_panel(headline):
|
|
69
|
+
print_headline_panel(headline, style='red blink')
|
|
70
|
+
|
|
71
|
+
|
|
68
72
|
def _print_header_panel(headline: str, style: str, expand: bool, width: int, padding: tuple = (0,)) -> None:
|
|
69
73
|
console.print(Panel(headline, style=style, expand=expand, width=width or subheading_width(), padding=padding))
|
|
@@ -4,6 +4,7 @@ Handles formatting of console text output for Pdfalyzer class.
|
|
|
4
4
|
from collections import defaultdict
|
|
5
5
|
from typing import Optional
|
|
6
6
|
|
|
7
|
+
import yara
|
|
7
8
|
from anytree import LevelOrderIter, RenderTree, SymlinkNode
|
|
8
9
|
from anytree.render import DoubleStyle
|
|
9
10
|
from rich.markup import escape
|
|
@@ -20,7 +21,8 @@ from pdfalyzer.config import PdfalyzerConfig
|
|
|
20
21
|
from pdfalyzer.decorators.pdf_tree_node import DECODE_FAILURE_LEN
|
|
21
22
|
from pdfalyzer.detection.yaralyzer_helper import get_bytes_yaralyzer, get_file_yaralyzer
|
|
22
23
|
from pdfalyzer.helpers.string_helper import pp
|
|
23
|
-
from pdfalyzer.output.layout import print_section_header, print_section_subheader,
|
|
24
|
+
from pdfalyzer.output.layout import (print_fatal_error_panel, print_section_header, print_section_subheader,
|
|
25
|
+
print_section_sub_subheader)
|
|
24
26
|
from pdfalyzer.output.tables.pdf_node_rich_table import generate_rich_tree, get_symlink_representation
|
|
25
27
|
from pdfalyzer.output.tables.stream_objects_table import stream_objects_table
|
|
26
28
|
from pdfalyzer.output.tables.decoding_stats_table import build_decoding_stats_table
|
|
@@ -124,8 +126,15 @@ class PdfalyzerPresenter:
|
|
|
124
126
|
def print_yara_results(self) -> None:
|
|
125
127
|
"""Scan the overall PDF and each individual binary stream in it with yara_rules/ files"""
|
|
126
128
|
print_section_header(f"YARA Scan of PDF rules for '{self.pdfalyzer.pdf_basename}'")
|
|
127
|
-
YaralyzerConfig.args.standalone_mode = True # TODO: this sucks
|
|
128
|
-
|
|
129
|
+
YaralyzerConfig.args.standalone_mode = True # TODO: using 'standalone mode' like this kind of sucks
|
|
130
|
+
|
|
131
|
+
try:
|
|
132
|
+
self.yaralyzer.yaralyze()
|
|
133
|
+
except yara.Error as e:
|
|
134
|
+
console.print_exception()
|
|
135
|
+
print_fatal_error_panel("Internal YARA error! YARA's error codes can be checked here: https://github.com/VirusTotal/yara/blob/master/libyara/include/yara/error.h")
|
|
136
|
+
return
|
|
137
|
+
|
|
129
138
|
YaralyzerConfig.args.standalone_mode = False
|
|
130
139
|
console.line(2)
|
|
131
140
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "pdfalyzer"
|
|
3
|
-
version = "1.14.
|
|
3
|
+
version = "1.14.8"
|
|
4
4
|
description = "A PDF analysis toolkit. Scan a PDF with relevant 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"
|
|
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.14.7 → pdfalyzer-1.14.8}/pdfalyzer/detection/constants/javascript_reserved_keywords.py
RENAMED
|
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
|