This commit is contained in:
Zeecka
2026-01-02 20:51:44 +01:00
parent e5c0ac55ef
commit 2e602959ce
13 changed files with 24 additions and 17 deletions
+3 -1
View File
@@ -28,7 +28,9 @@ class SubprocessAnalyzer(ABC):
img: str img: str
make_folder: bool = True make_folder: bool = True
def __init__(self, name: str, input_img: Path, output_dir: Path, has_archive: bool = False): def __init__(
self, name: str, input_img: Path, output_dir: Path, has_archive: bool = False
) -> None:
self.name = name self.name = name
self.input_img = input_img self.input_img = input_img
self.img = f"../{self.input_img.name}" self.img = f"../{self.input_img.name}"
+1 -1
View File
@@ -11,7 +11,7 @@ from .base_analyzer import SubprocessAnalyzer
class BinwalkAnalyzer(SubprocessAnalyzer): class BinwalkAnalyzer(SubprocessAnalyzer):
"""Analyzer for binwalk.""" """Analyzer for binwalk."""
def __init__(self, *args): def __init__(self, *args) -> None:
super().__init__("binwalk", *args, has_archive=True) super().__init__("binwalk", *args, has_archive=True)
self.cmd = ["binwalk", "--matryoshka", "-e", self.img, "--run-as=root"] self.cmd = ["binwalk", "--matryoshka", "-e", self.img, "--run-as=root"]
self.make_folder = False # Binwalk already create its own folder self.make_folder = False # Binwalk already create its own folder
+1 -1
View File
@@ -15,7 +15,7 @@ from .base_analyzer import SubprocessAnalyzer
class DecomposerAnalyzer(SubprocessAnalyzer): class DecomposerAnalyzer(SubprocessAnalyzer):
"""Analyzer for bits decomposer.""" """Analyzer for bits decomposer."""
def __init__(self, *args): def __init__(self, *args: Any) -> None:
super().__init__("decomposer", *args) super().__init__("decomposer", *args)
def get_results(self, _: Optional[str] = None) -> dict[str, Any]: def get_results(self, _: Optional[str] = None) -> dict[str, Any]:
+2 -1
View File
@@ -4,6 +4,7 @@
"""Exiftool Analyzer for Image Submissions.""" """Exiftool Analyzer for Image Submissions."""
from pathlib import Path from pathlib import Path
from typing import Any
from .base_analyzer import SubprocessAnalyzer from .base_analyzer import SubprocessAnalyzer
@@ -11,7 +12,7 @@ from .base_analyzer import SubprocessAnalyzer
class ExiftoolAnalyzer(SubprocessAnalyzer): class ExiftoolAnalyzer(SubprocessAnalyzer):
"""Analyzer for exiftool.""" """Analyzer for exiftool."""
def __init__(self, *args): def __init__(self, *args: Any) -> None:
super().__init__("exiftool", *args) super().__init__("exiftool", *args)
self.cmd = ["exiftool", "-a", "-u", "-g1", self.img] self.cmd = ["exiftool", "-a", "-u", "-g1", self.img]
+2 -1
View File
@@ -4,6 +4,7 @@
"""Foremost Analyzer for Image Submissions.""" """Foremost Analyzer for Image Submissions."""
from pathlib import Path from pathlib import Path
from typing import Any
from .base_analyzer import SubprocessAnalyzer from .base_analyzer import SubprocessAnalyzer
@@ -11,7 +12,7 @@ from .base_analyzer import SubprocessAnalyzer
class ForemostAnalyzer(SubprocessAnalyzer): class ForemostAnalyzer(SubprocessAnalyzer):
"""Analyzer for foremost.""" """Analyzer for foremost."""
def __init__(self, *args): def __init__(self, *args: Any) -> None:
super().__init__("foremost", *args, has_archive=True) super().__init__("foremost", *args, has_archive=True)
self.cmd = ["foremost", "-o", str(self.get_extracted_dir()), "-i", self.img] self.cmd = ["foremost", "-o", str(self.get_extracted_dir()), "-i", self.img]
+1 -1
View File
@@ -17,7 +17,7 @@ class ResizeAnalyzer(SubprocessAnalyzer):
png: PNG png: PNG
def __init__(self, *args): def __init__(self, *args: Any) -> None:
super().__init__("image_resize", *args, has_archive=True) super().__init__("image_resize", *args, has_archive=True)
def _lookup_crc(self) -> List[PNG]: def _lookup_crc(self) -> List[PNG]:
+1 -1
View File
@@ -12,7 +12,7 @@ from .base_analyzer import SubprocessAnalyzer
class OpenStegoAnalyzer(SubprocessAnalyzer): class OpenStegoAnalyzer(SubprocessAnalyzer):
"""Analyzer for openstego.""" """Analyzer for openstego."""
def __init__(self, *args): def __init__(self, *args: Any) -> None:
super().__init__("openstego", *args, has_archive=True) super().__init__("openstego", *args, has_archive=True)
self.algo = 0 self.algo = 0
+2 -2
View File
@@ -4,7 +4,7 @@
"""Outguess Analyzer for Image Submissions.""" """Outguess Analyzer for Image Submissions."""
from pathlib import Path from pathlib import Path
from typing import Optional from typing import Any, Optional
from .base_analyzer import SubprocessAnalyzer from .base_analyzer import SubprocessAnalyzer
@@ -12,7 +12,7 @@ from .base_analyzer import SubprocessAnalyzer
class OutguessAnalyzer(SubprocessAnalyzer): class OutguessAnalyzer(SubprocessAnalyzer):
"""Analyzer for outguess.""" """Analyzer for outguess."""
def __init__(self, *args): def __init__(self, *args: Any) -> None:
super().__init__("outguess", *args, has_archive=True) super().__init__("outguess", *args, has_archive=True)
def build_cmd(self, password: Optional[str] = None) -> list[str]: def build_cmd(self, password: Optional[str] = None) -> list[str]:
+2 -1
View File
@@ -4,6 +4,7 @@
"""Pngcheck Analyzer for Image Submissions.""" """Pngcheck Analyzer for Image Submissions."""
from pathlib import Path from pathlib import Path
from typing import Any
from .base_analyzer import SubprocessAnalyzer from .base_analyzer import SubprocessAnalyzer
@@ -11,7 +12,7 @@ from .base_analyzer import SubprocessAnalyzer
class PngcheckAnalyzer(SubprocessAnalyzer): class PngcheckAnalyzer(SubprocessAnalyzer):
"""Analyzer for pngcheck.""" """Analyzer for pngcheck."""
def __init__(self, *args): def __init__(self, *args: Any) -> None:
super().__init__("pngcheck", *args) super().__init__("pngcheck", *args)
self.cmd = ["pngcheck", "-v", self.img] self.cmd = ["pngcheck", "-v", self.img]
+2 -2
View File
@@ -5,7 +5,7 @@
import re import re
from pathlib import Path from pathlib import Path
from typing import Optional from typing import Any, Optional
from .base_analyzer import SubprocessAnalyzer from .base_analyzer import SubprocessAnalyzer
@@ -13,7 +13,7 @@ from .base_analyzer import SubprocessAnalyzer
class SteghideAnalyzer(SubprocessAnalyzer): class SteghideAnalyzer(SubprocessAnalyzer):
"""Analyzer for steghide.""" """Analyzer for steghide."""
def __init__(self, *args): def __init__(self, *args: Any) -> None:
super().__init__("steghide", *args, has_archive=True) super().__init__("steghide", *args, has_archive=True)
def build_cmd(self, password: Optional[str] = None) -> list[str]: def build_cmd(self, password: Optional[str] = None) -> list[str]:
+2 -1
View File
@@ -4,6 +4,7 @@
"""Strings Analyzer for Image Submissions.""" """Strings Analyzer for Image Submissions."""
from pathlib import Path from pathlib import Path
from typing import Any
from .base_analyzer import SubprocessAnalyzer from .base_analyzer import SubprocessAnalyzer
@@ -11,7 +12,7 @@ from .base_analyzer import SubprocessAnalyzer
class StringsAnalyzer(SubprocessAnalyzer): class StringsAnalyzer(SubprocessAnalyzer):
"""Analyzer for strings.""" """Analyzer for strings."""
def __init__(self, *args): def __init__(self, *args: Any) -> None:
super().__init__("strings", *args) super().__init__("strings", *args)
self.cmd = ["strings", self.img] self.cmd = ["strings", self.img]
+2 -2
View File
@@ -4,7 +4,7 @@
"""<toolname> Analyzer for Image Submissions.""" """<toolname> Analyzer for Image Submissions."""
from pathlib import Path from pathlib import Path
from typing import Optional from typing import Any, Optional
from .base_analyzer import SubprocessAnalyzer from .base_analyzer import SubprocessAnalyzer
@@ -12,7 +12,7 @@ from .base_analyzer import SubprocessAnalyzer
class TemplateAnalyze(SubprocessAnalyzer): class TemplateAnalyze(SubprocessAnalyzer):
"""Analyzer for <toolname>.""" """Analyzer for <toolname>."""
def __init__(self, *args): def __init__(self, *args: Any) -> None:
super().__init__("<toolname>", *args, has_archive=True) super().__init__("<toolname>", *args, has_archive=True)
def build_cmd(self, password: Optional[str] = None) -> list[str]: def build_cmd(self, password: Optional[str] = None) -> list[str]:
+3 -2
View File
@@ -4,6 +4,7 @@
"""Strings Analyzer for Image Submissions.""" """Strings Analyzer for Image Submissions."""
from pathlib import Path from pathlib import Path
from typing import Any
from .base_analyzer import SubprocessAnalyzer from .base_analyzer import SubprocessAnalyzer
@@ -11,8 +12,8 @@ from .base_analyzer import SubprocessAnalyzer
class ZstegAnalyzer(SubprocessAnalyzer): class ZstegAnalyzer(SubprocessAnalyzer):
"""Analyzer for zsteg.""" """Analyzer for zsteg."""
def __init__(self, *args, **kwargs): def __init__(self, *args: Any) -> None:
super().__init__("zsteg", *args, **kwargs) super().__init__("zsteg", *args)
self.cmd = ["zsteg", self.img] self.cmd = ["zsteg", self.img]
def is_error(self, returncode: int, stdout: str, stderr: str, zip_exist: bool) -> bool: def is_error(self, returncode: int, stdout: str, stderr: str, zip_exist: bool) -> bool: