
Strumento C++ che modifica le chiamate API di Windows per bypassare i controlli della dimensione della RAM nella sandbox, consentendo al malware di eludere il rilevamento in ambienti di analisi isolati.
Le sandbox sono comunemente utilizzate per analizzare malware. Esse forniscono un ambiente temporaneo, isolato e sicuro in cui osservare se un file sospetto presenta comportamenti malevoli. Tuttavia, gli sviluppatori di malware hanno anche sviluppato metodi per eludere le sandbox e gli ambienti di analisi. Un metodo consiste nell'effettuare controlli per determinare se la macchina su cui viene eseguito il malware è gestita da un utente reale. Uno di questi controlli è la dimensione della RAM. Se la dimensione della RAM è irrealisticamente piccola (es. 1GB), può indicare che la macchina è una sandbox. Se il malware rileva una sandbox, non eseguirà la sua reale attività malevola e potrebbe sembrare un file benigno.
L'API GetPhysicallyInstalledSystemMemory recupera la quantità di RAM fisicamente installata sul computer dalle tabelle firmware SMBIOS. Accetta un parametro PULONGLONG e restituisce TRUE se la funzione ha successo, impostando TotalMemoryInKilobytes su un valore diverso da zero. Se la funzione fallisce, restituisce FALSE.

La quantità di memoria fisica recuperata dalla funzione GetPhysicallyInstalledSystemMemory deve essere uguale o maggiore della quantità riportata dalla funzione GlobalMemoryStatusEx; se è inferiore, i dati SMBIOS sono malformati e la funzione fallisce con ERROR_INVALID_DATA. Dati SMBIOS malformati possono indicare un problema con il computer dell'utente.

Il registro rcx contiene il parametro TotalMemoryInKilobytes. Per sovrascrivere l'indirizzo di salto di GetPhysicallyInstalledSystemMemory, utilizzo i seguenti opcode: mov qword ptr ss:[rcx],4193B840. Questo sposta il valore 4193B840 (o 1.1 TB) in rcx. Quindi, l'istruzione ret viene utilizzata per estrarre l'indirizzo di ritorno dallo stack e saltarvi. Pertanto, ogni volta che GetPhysicallyInstalledSystemMemory viene chiamata, imposterà rcx al valore personalizzato.
