From 25d2437807a04ec982a098c38843d20541bbbe7c Mon Sep 17 00:00:00 2001 From: B3i4hu <64459585+B3i4hu@users.noreply.github.com> Date: Thu, 11 Dec 2025 22:07:11 +0800 Subject: [PATCH] [FIX] Fixed multiple bugs (#2783) * Clean up doRollover method by removing debug logs Removed debug logging statements from doRollover method. * Improve error handling in analysis manager Added exception handling for guest manager status updates. * Add msiexec.exe to Archive analysis package paths * Add msiexec.exe to Zip analysis package paths * Update lib/cuckoo/core/analysis_manager.py Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --------- Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --- analyzer/windows/modules/packages/archive.py | 1 + analyzer/windows/modules/packages/zip.py | 1 + lib/cuckoo/core/analysis_manager.py | 14 +++++++++----- utils/process.py | 5 +---- 4 files changed, 12 insertions(+), 9 deletions(-) diff --git a/analyzer/windows/modules/packages/archive.py b/analyzer/windows/modules/packages/archive.py index 95264d281ca..0f046b2ae9d 100644 --- a/analyzer/windows/modules/packages/archive.py +++ b/analyzer/windows/modules/packages/archive.py @@ -35,6 +35,7 @@ class Archive(Package): """Archive analysis package.""" PATHS = [ + ("SystemRoot", "system32", "msiexec.exe"), ("SystemRoot", "system32", "cmd.exe"), ("SystemRoot", "system32", "wscript.exe"), ("SystemRoot", "system32", "rundll32.exe"), diff --git a/analyzer/windows/modules/packages/zip.py b/analyzer/windows/modules/packages/zip.py index eb995218287..f129dee37b4 100644 --- a/analyzer/windows/modules/packages/zip.py +++ b/analyzer/windows/modules/packages/zip.py @@ -35,6 +35,7 @@ class Zip(Package): """Zip analysis package.""" PATHS = [ + ("SystemRoot", "system32", "msiexec.exe"), ("SystemRoot", "system32", "cmd.exe"), ("SystemRoot", "system32", "wscript.exe"), ("SystemRoot", "system32", "rundll32.exe"), diff --git a/lib/cuckoo/core/analysis_manager.py b/lib/cuckoo/core/analysis_manager.py index fcd0ea8f120..16ae6a4c69b 100644 --- a/lib/cuckoo/core/analysis_manager.py +++ b/lib/cuckoo/core/analysis_manager.py @@ -422,11 +422,15 @@ def run_analysis_on_guest(self) -> None: options["clock"] = self.db.update_clock(self.task.id) self.db.guest_set_status(self.task.id, "starting") guest_manager.start_analysis(options) - if guest_manager.get_status_from_db() == "starting": - guest_manager.set_status_in_db("running") - guest_manager.wait_for_completion() - - guest_manager.set_status_in_db("stopping") + + try: + if guest_manager.get_status_from_db() == "starting": + guest_manager.set_status_in_db("running") + guest_manager.wait_for_completion() + guest_manager.set_status_in_db("stopping") + except Exception as e: + guest_manager.set_status_in_db("failed") + self.log.exception(f"Unknown exception waiting for guest completion: {e}") return diff --git a/utils/process.py b/utils/process.py index 63a55348657..84e6edd5d3d 100644 --- a/utils/process.py +++ b/utils/process.py @@ -225,12 +225,9 @@ def doRollover(self): Override doRollover to force close the old handler before creating a new one. """ if self.stream: - logging.debug("Flushing log stream...") self.stream.flush() - logging.debug("Closing log stream...") self.stream.close() - logging.debug("Log stream closed.") - logging.handlers.TimedRotatingFileHandler.doRollover(self) + super().doRollover() def init_logging(debug=False):