// Load driver via service SC_HANDLE hScm = OpenSCManager(...); CreateService(..., "cpuz143", ..., cpuz143.sys); StartService(...); // Send IOCTL DeviceIoControl(hDevice, 0x80002008, &input, ...); This paper is for educational and defensive research only. Do not deploy on production systems without authorization.
rule cpuz143_driver meta: description = "Detects cpuz143-x64.sys by embedded strings and export table" strings: $msr_table = 48 8D 15 ?? ?? ?? ?? 48 8D 0D ?? ?? ?? ?? E8 ?? ?? ?? ?? 83 F8 01 $cpuz_str = "CPU Driver v143" wide $ioctl_set = B8 04 20 00 80 BA 08 20 00 80 condition: $msr_table and $cpuz_str and $ioctl_set cpuz143-x64.sys
; cpuz143-x64.sys+0x2a4f cmp dword ptr [rdi+0Ch], 0DEADBEEFh jz short skip_check call msr_whitelist_check test al, al jz access_denied skip_check: wrmsr // Load driver via service SC_HANDLE hScm = OpenSCManager(
| IOCTL Code | Legitimate use | |------------|------------------------------------------| | 0x80002004 | Read MSR (Model Specific Register) | | 0x80002008 | Write MSR (only allowed if MSR is "safe")| | 0x80002010 | Read PCI config space (bus/dev/func) | | 0x80002014 | Map physical memory into user-mode | | 0x80002018 | Read physical memory (via mapping) | 48 8D 0D