diff --git a/Config/config.yaml b/Config/config.yaml index 4830f82..462681b 100644 --- a/Config/config.yaml +++ b/Config/config.yaml @@ -26,9 +26,9 @@ analysis: rules_path: ".\\Scanners\\Yara\\rules\\LitterBox.yar" timeout: 120 - threatcheck: + checkplz: enabled: true - tool_path: ".\\Scanners\\ThreatCheck\\CheckPlz.exe" + tool_path: ".\\Scanners\\CheckPlz\\CheckPlz.exe" command: "{tool_path} -m -r -f {file_path}" timeout: 120 diff --git a/Scanners/ThreatCheck/CheckPlz.exe b/Scanners/CheckPlz/CheckPlz.exe similarity index 100% rename from Scanners/ThreatCheck/CheckPlz.exe rename to Scanners/CheckPlz/CheckPlz.exe diff --git a/app/analyzers/manager.py b/app/analyzers/manager.py index 1d032e9..07f2d47 100644 --- a/app/analyzers/manager.py +++ b/app/analyzers/manager.py @@ -1,6 +1,6 @@ # app/analyzers/manager.py from .static.yara_analyzer import YaraStaticAnalyzer -from .static.threatcheck_analyzer import ThreatCheckAnalyzer +from .static.checkplz_analyzer import CheckPlzAnalyzer from .dynamic.yara_analyzer import YaraDynamicAnalyzer from .dynamic.pe_sieve_analyzer import PESieveAnalyzer from .dynamic.moneta_analyzer import MonetaAnalyzer @@ -22,8 +22,8 @@ class AnalysisManager: # Static analyzers if self.config['analysis']['static']['yara']['enabled']: self.static_analyzers['yara'] = YaraStaticAnalyzer(self.config) - if self.config['analysis']['static']['threatcheck']['enabled']: - self.static_analyzers['threatcheck'] = ThreatCheckAnalyzer(self.config) + if self.config['analysis']['static']['checkplz']['enabled']: + self.static_analyzers['checkplz'] = CheckPlzAnalyzer(self.config) # Dynamic analyzers if self.config['analysis']['dynamic']['yara']['enabled']: diff --git a/app/analyzers/static/threatcheck_analyzer.py b/app/analyzers/static/checkplz_analyzer.py similarity index 95% rename from app/analyzers/static/threatcheck_analyzer.py rename to app/analyzers/static/checkplz_analyzer.py index 4892778..01fba86 100644 --- a/app/analyzers/static/threatcheck_analyzer.py +++ b/app/analyzers/static/checkplz_analyzer.py @@ -1,17 +1,17 @@ -# app/analyzers/static/threatcheck_analyzer.py +# app/analyzers/static/checkplz_analyzer.py import subprocess import re import os from .base import StaticAnalyzer -class ThreatCheckAnalyzer(StaticAnalyzer): +class CheckPlzAnalyzer(StaticAnalyzer): def analyze(self, file_path): """ Analyzes a file using ThreatCheck tool specified in the config. """ try: - tool_config = self.config['analysis']['static']['threatcheck'] + tool_config = self.config['analysis']['static']['checkplz'] command = tool_config['command'].format( tool_path=os.path.abspath(tool_config['tool_path']), file_path=os.path.abspath(file_path) @@ -33,7 +33,7 @@ class ThreatCheckAnalyzer(StaticAnalyzer): 'status': 'completed' if process.returncode == 0 else 'failed', 'scan_info': { 'target': file_path, - 'tool': 'ThreatCheck' + 'tool': 'CheckPlz' }, 'findings': results, 'errors': stderr if stderr else None diff --git a/app/static/js/results.js b/app/static/js/results.js index f2a3a14..0be916b 100644 --- a/app/static/js/results.js +++ b/app/static/js/results.js @@ -636,12 +636,12 @@ const tools = { } }, - threatcheck: { + checkplz: { element: document.getElementById('threatCheckResults'), statsElement: document.getElementById('threatCheckStats'), render: (results) => { if (results.status === 'error') { - tools.threatcheck.element.innerHTML = ` + tools.checkplz.element.innerHTML = `
@@ -658,7 +658,7 @@ const tools = { const isClean = !findings.initial_threat && !scanResults.detection_offset; // Stats Section - tools.threatcheck.statsElement.innerHTML = ` + tools.checkplz.statsElement.innerHTML = `
Status
@@ -758,7 +758,7 @@ const tools = { } } - tools.threatcheck.element.innerHTML = html; + tools.checkplz.element.innerHTML = html; } }, @@ -1241,13 +1241,13 @@ const tools = { } // ThreatCheck results - if (results.threatcheck) { - const findings = results.threatcheck.findings || {}; + if (results.checkplz) { + const findings = results.checkplz.findings || {}; const hasDetection = findings.scan_results?.detection_offset; if (hasDetection) totalDetections++; rows.push(` - ThreatCheck + CheckPlz ${hasDetection ? 'Suspicious' : 'Clean'} diff --git a/app/templates/results.html b/app/templates/results.html index 77e0248..bee11b6 100644 --- a/app/templates/results.html +++ b/app/templates/results.html @@ -44,7 +44,7 @@

{{ analysis_type|title }} Analysis

- 00:00 +
@@ -132,10 +132,10 @@ Summary {% else %} {% endif %}
@@ -212,7 +212,7 @@
-

ThreatCheck Scan Results

+

CheckPlz Scan Results

Windows Defender signature detection results.

diff --git a/run.py b/run.py index 52b7b51..df315c9 100644 --- a/run.py +++ b/run.py @@ -16,7 +16,7 @@ app.name = 'LitterBox' if __name__ == '__main__': if not is_running_as_admin(): - print("This script requires administrative privileges. Please run as an administrator.") + print("[!] This script requires administrative privileges. Please run as an administrator.") exit(1) app.run(