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

matthart1983/diskwatch

Rust·49 files·commit 4d7d771·scanned 54m 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?
threat-state: dangerouslive

FINDINGS ░▒▓

criticalRust process Command usagestd::process::Command can execute arbitrary shell commands. Malware uses it to drop payloads, exfiltrate data, or establish persistence.src/collect/devices.rs
    use std::process::Command;
    let Ok(out) = Command::new("/sbin/mount").output() else {
        return HashMap::new();
    };
+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.src/collect/io.rs
        let mut volume = [0u16; 50];
        let ok = unsafe {
            GetVolumeNameForVolumeMountPointW(
                wide.as_ptr(),
+3
criticalRust process Command usagestd::process::Command can execute arbitrary shell commands. Malware uses it to drop payloads, exfiltrate data, or establish persistence.src/collect/iokit.rs
pub fn collect() -> HashMap<String, IokitDeviceStats> {
    let Ok(out) = Command::new("ioreg")
        .args(["-c", "IOBlockStorageDriver", "-r", "-l", "-w", "0"])
        .output()
+8
criticalRust process Command usagestd::process::Command can execute arbitrary shell commands. Malware uses it to drop payloads, exfiltrate data, or establish persistence.src/collect/macos.rs
fn query(kind: ControllerKind, data_type: &str, protocol: &str) -> Vec<MacDevice> {
    let Ok(out) = Command::new("system_profiler")
        .args([data_type, "-json"])
        .output()
+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.src/collect/processes.rs
    // second call's return value, not the first's, decides the length.
    let needed = unsafe { libc::proc_listpids(darwin::PROC_ALL_PIDS, 0, std::ptr::null_mut(), 0) };
    if needed <= 0 {
       ...
+3
warningRust unsafe blockunsafe blocks bypass Rust's memory safety guarantees. Malware uses them for raw pointer manipulation, shellcode injection, or calling dangerous foreign functions.src/tabs/smart.rs
    // SAFETY: libc::geteuid is async-signal-safe and has no preconditions.
    unsafe { libc::geteuid() == 0 }
}
+3
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

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.

35 files scanned @ 4d7d771 | 9/25/2026 | heuristic scan — always review manually

risk by category
code execution25
network & exfiltration0
file system access0
obfuscation0
supply chain0
owasp / injection0
telemetry
files 35/49rules hit 7engine v6commit 4d7d771

github

matthart1983/diskwatch

Single-host, read-only disk diagnostics TUI.

Rust
465
26
132d
49 files
35 scanned(71%)
4d7d771

architecture░▒▓

entry (1) flagged (8) pkg (29)
64 nodes · 94 edgesscroll to zoom · click node to jump to finding