live · scanning repos
Scanrepo
github.com
DANGER
malware detected
github.com / Ironictw2st

Ironictw2st/TKModManager

Rust·70 files·commit 5dacb7d·scanned 1h ago·cached ✓
70/100
DANGEROUS
Sensitive capability combinations reachable from entry points. Do not run without review.

This repository contains patterns associated with malware. Do NOT run this code.

verdict accurate?
Created 7 days ago
Created 7 days ago
threat-state: dangerouslive

FINDINGS ░▒▓

warningRust unsafe blockunsafe blocks bypass Rust's memory safety guarantees. Malware uses them for raw pointer manipulation, shellcode injection, or calling dangerous foreign functions.crates/app/src/app.rs
pub fn app_icon() -> cpp_core::CppBox<QIcon> {
    unsafe {
        let pm = QPixmap::new();
        let bytes = include_bytes!("../icons/128x128.png");
+3
criticalRust process Command usagestd::process::Command can execute arbitrary shell commands. Malware uses it to drop payloads, exfiltrate data, or establish persistence.crates/app/src/app.rs
                    if let Ok(exe) = std::env::current_exe() {
                        let _ = std::process::Command::new(exe).spawn();
                    }
                    qt_core::QCoreApplicat...
+8
warningRust unsafe blockunsafe blocks bypass Rust's memory safety guarantees. Malware uses them for raw pointer manipulation, shellcode injection, or calling dangerous foreign functions.crates/app/src/details.rs
pub fn open_url(url: &str) {
    unsafe {
        QDesktopServices::open_url(&QUrl::new_1a(&qs(url)));
    }
+3
criticalRust process Command usagestd::process::Command can execute arbitrary shell commands. Malware uses it to drop payloads, exfiltrate data, or establish persistence.crates/app/src/details.rs
    let path = path.replace('/', "\\");
    let _ = std::process::Command::new("explorer").raw_arg(format!("/select,\"{path}\"")).spawn();
}
+8
warningRust unsafe blockunsafe blocks bypass Rust's memory safety guarantees. Malware uses them for raw pointer manipulation, shellcode injection, or calling dangerous foreign functions.crates/app/src/dialogs.rs
fn dialog(parent: &QBox<QMainWindow>, title: &str, width: i32, height: i32) -> (QBox<QDialog>, QBox<QVBoxLayout>) {
    unsafe {
        let d = QDialog::new_1a(parent);
        d.set_window_title(&qs...
+3
criticalRust process Command usagestd::process::Command can execute arbitrary shell commands. Malware uses it to drop payloads, exfiltrate data, or establish persistence.crates/core/src/fingerprint.rs
        .unwrap_or_else(|_| "powershell".into());
    let out = std::process::Command::new(ps)
        .args(["-NoProfile", "-NonInteractive", "-Command", &script])
        .creation_flags(CREATE_NO_W...
+8
infoSuspicious files are not reachable from entry pointsFlagged files exist but are not imported by any entry point. They may be dead code, tests, or attack payloads triggered by another mechanism.+2
infoSuspicious file in repoExecutable file (build.ps1) in repositoryscripts/build.ps1+2
infoSuspicious file in repoExecutable file (drag.ps1) in repositoryscripts/drag.ps1+2
infoSuspicious file in repoExecutable file (release.ps1) in repositoryscripts/release.ps1+2

Scores are heuristics. A “safe” verdict means no known-malicious patterns were found — clever malware can look boring. Wrong verdict? Flag it above; confirmed false positives become regression tests.

50 files scanned @ 5dacb7d | 9/25/2026 | heuristic scan — always review manually

risk by category
code execution25
network & exfiltration0
file system access0
obfuscation0
supply chain10
owasp / injection0
telemetry
files 50/70rules hit 10engine v6commit 5dacb7d

github

Ironictw2st/TKModManager

Mod manager and launcher for Total War: THREE KINGDOMS — profiles, load order, movie packs, script-extender injection, auto-update

Rust
1
0
7d
70 files
50 scanned(71%)
5dacb7d

architecture░▒▓

entry (0) flagged (18) pkg (53)
103 nodes · 125 edgesscroll to zoom · click node to jump to finding