
Crea malware DRM anti-copia
Questo repository utilizza una tecnica per modificare la Import Address Table (IAT) di un programma, sostituendo i nomi delle funzioni importate con i rispettivi ordinali, ottenendo un binario che importa esclusivamente funzioni tramite ordinali.
Questa tecnica riduce le probabilità che il binario venga analizzato con successo dai sistemi sandbox, a causa della discrepanza nei valori ordinali sui diversi sistemi. Questo contrasto fa sì che il Windows Loader non riesca a individuare l'indirizzo corretto della funzione oppure recuperi una funzione errata, portando il binario a rompersi nell'ambiente sandbox. Infine, questa tecnica rende più difficile il reverse engineering del binario.
Questo repository include due progetti:
Legge un file PE dal disco e sovrascrive le funzioni importate per nome con i rispettivi valori ordinali. Il programma generato funzionerà solo su un sistema in cui le funzioni importate hanno gli stessi valori ordinali del sistema che lo ha generato.
TechTestBuilder.exe per generare mimikatzDRM.exe, che è mimikatz.exe ma con funzioni importate tramite ordinali.

mimikatzDRM.exe su un sistema diverso da quello usato per generarlo, verrà generato il seguente errore.

Questo progetto utilizza la tecnica DRM stessa alla prima esecuzione. Ciò significa che questo binario non può essere eseguito facilmente su altre macchine. OrdinalDRMBin.exe applica i seguenti passaggi:
Verifica se il programma locale ha funzioni importate per nome; in caso contrario, salta l'applicazione della patch IAT.
Legge se stesso dal disco e converte tutte le funzioni importate per nome in funzioni importate tramite ordinali.
Elimina se stesso dal disco.
Scrive la nuova immagine in cui tutte le funzioni sono importate tramite ordinale.
OrdinalDRMBin.exe senza essere stato eseguito. Nota che le funzioni sono importate per nome.

OrdinalDRMBin.exe dopo l'esecuzione. Nota che le funzioni ora sono importate tramite i loro ordinali.

Come già menzionato, i sistemi con gli stessi valori ordinali esatti per tutte le funzioni importate dell'implementazione generata potranno eseguire il binario protetto. Tuttavia, la probabilità che ciò accada può essere ridotta importando funzioni da DLL diverse. Lo stesso approccio utilizzato nel modulo IAT Camouflage può essere usato a questo scopo.