Skip to content

Use qemu screenshots config #2601

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Merged

Conversation

ChrisThibodeaux
Copy link
Contributor

No description provided.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hello @ChrisThibodeaux, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

Summary of Changes

Hello! Gemini or gemini-code-assist here, providing a summary of this pull request for ChrisThibodeaux and the reviewers.

This pull request primarily focuses on enhancing the QemuScreenshots auxiliary module by introducing a configuration option to control its execution. Previously, this module would always attempt to capture screenshots during analysis. With this change, users can now enable or disable the screenshot functionality via the system's configuration files, offering more flexibility.

In addition to the main change, the pull request also includes several minor but important fixes and standardizations within the installation scripts (installer/cape2.sh and extra/yara_installer.sh). These changes address issues like incorrect indentation in configuration file patching and standardize the installation paths for dependencies like Yara and Capa.

Highlights

  • Configurable QEMU Screenshots: The QemuScreenshots auxiliary module now respects a configuration option (enabled) to determine whether it should run, allowing users to easily toggle screenshot capture.
  • Installer Script Fixes and Standardization: Includes corrections for patching the Suricata configuration file's indentation and standardizes the installation paths for Yara and Capa dependencies within the main installer script.
  • Yara Installer Script Refactor: The script responsible for installing the yara-python dependency has been slightly refactored to improve how build and installation commands are executed relative to the project directory.

Changelog

Click here to see the changelog
  • extra/yara_installer.sh
    • Refactored the poetry commands for building and installing yara-python, removing the explicit cd /tmp/yara-python and using path arguments instead.
    • Changed the final cd command from cd .. to cd /tmp.
  • installer/cape2.sh
    • Corrected the indentation in the string literal used to patch the file-store section of the Suricata configuration (suricata.yaml) (Line 747).
    • Fixed the path used to execute the yara_installer.sh script, making it relative to the poetry working directory (extra/yara_installer.sh) (Line 800).
    • Updated the capa installation command to use the temporary path /tmp/capa instead of installing from the current directory (.) (Line 947).
  • modules/auxiliary/QemuScreenshots.py
    • Imported the Config class to load module-specific configuration (Line 15).
    • Added logic to read the enabled flag from the QemuScreenshots configuration section (Line 18, 62).
    • Made the do_run attribute of the main QemuScreenshots class dependent on the loaded enabled configuration (Line 63).
    • Removed the hardcoded self.do_run = True from the ScreenshotThread class constructor, allowing the main module's state to control the thread's execution (Line 79 removed).
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in issue comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist is currently in preview and may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments to provide feedback.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.


VM screen captured,
Config sets if it runs,
Analysis helps.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

The pull request introduces configuration support for the QemuScreenshots auxiliary module and includes some minor adjustments to installer scripts. The core change to enable configuration for QemuScreenshots is well-implemented and improves the module's flexibility. There is a necessary fix for the Suricata configuration patch and correct handling of the do_run flag in the QemuScreenshots module based on the new config. Overall, good progress, but a couple of points require attention.

Summary of Findings

  • Suricata YAML Patch Indentation: The patch to enable file-store in suricata.yaml includes a correction to the indentation, which is important for correct YAML parsing.
  • QemuScreenshots Configuration: The QemuScreenshots auxiliary module now correctly loads its configuration from auxiliary.conf, allowing it to be enabled or disabled via the enabled option. The do_run flag is correctly set based on this configuration.
  • Installer Script Paths: The installer scripts extra/yara_installer.sh and installer/cape2.sh use relative paths or incorporate cd commands within bash -c for installation. This relies on the execution context of the installer script, which is likely intended but worth noting. (No comment added due to severity settings).
  • Default Configuration Added: A default configuration section for QemuScreenshots has been added to auxiliary.conf.default. (No comment added due to severity settings).

Merge Readiness

The changes correctly implement configuration loading for the QemuScreenshots module and fix a potential issue in the Suricata configuration patch. The high severity issues identified (correct configuration loading and patch indentation) have been addressed by the changes themselves. The pull request appears to be in good shape. Please note that I am unable to approve the pull request directly; other reviewers should review and approve this code before merging.

@ChrisThibodeaux ChrisThibodeaux force-pushed the use-qemu-screenshots-config branch 2 times, most recently from 5087440 to e949cfc Compare May 19, 2025 21:51
@ChrisThibodeaux ChrisThibodeaux force-pushed the use-qemu-screenshots-config branch from e949cfc to 9ee7003 Compare May 19, 2025 21:54
@doomedraven doomedraven merged commit 3fd2a7e into kevoreilly:master May 25, 2025
2 of 3 checks passed
@ChrisThibodeaux ChrisThibodeaux deleted the use-qemu-screenshots-config branch May 27, 2025 03:26
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants