From 5c0776d144fb6948e7115ed08b881363df239009 Mon Sep 17 00:00:00 2001 From: Memphis Marshall Date: Tue, 22 Jul 2025 23:36:31 +0800 Subject: [PATCH] Resolved problems listed in #86 --- aperisolve/analyzers/steghide.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/aperisolve/analyzers/steghide.py b/aperisolve/analyzers/steghide.py index 58a5f48..1f50f7a 100644 --- a/aperisolve/analyzers/steghide.py +++ b/aperisolve/analyzers/steghide.py @@ -61,9 +61,9 @@ def analyze_steghide( "steghide", "extract", "-sf", - "../" + str(image_name), + "../../" + str(image_name), "-xf", - str(embedded_filename), + str(embedded_file.name), ] if password: cmd_ext += ["-p", password] @@ -72,13 +72,19 @@ def analyze_steghide( data = subprocess.run( cmd_ext, - cwd=output_dir, + cwd=extracted_dir, capture_output=True, text=True, check=False, timeout=MAX_PENDING_TIME, ) - stderr += data.stderr + # Filter out lines that indicate success + stdout = [] + for line in data.stderr.split("\n"): + if line.startswith("wrote extracted data to \""): + stdout.append(line) + elif line: + stderr += line + "\n" # Zip extracted files zip_data = subprocess.run( @@ -94,7 +100,7 @@ def analyze_steghide( if len(stderr) > 0: err = { - "binwalk": { + "steghide": { "status": "error", "error": stderr, } @@ -110,7 +116,7 @@ def analyze_steghide( { "steghide": { "status": "ok", - "output": data.stdout.split("\n") if data else [], + "output": stdout, "download": f"/download/{output_dir.name}/steghide", } },