[]()
Sandboxes are commonly used to analyze malware. They provide a temporary, isolated, and secure environment in which to observe whether a suspicious file exhibits any malicious behavior. However, [malware]( “malware” ) developers have also developed methods to evade sandboxes and [analysis]( “analysis” ) environments. One such method is to perform checks to determine whether the machine the malware is being executed on is being operated by a real user. One such check is the RAM size. If the RAM size is unrealistically small (e.g., 1GB), it may indicate that the machine is a sandbox. If the malware detects a sandbox, it will not execute its true malicious behavior and may appear to be a benign file
# Details
* The `GetPhysicallyInstalledSystemMemory` API retrieves the amount of RAM that is physically installed on the computer from the SMBIOS [firmware]( “firmware” ) tables. It takes a `PULONGLONG` parameter and returns `TRUE` if the function succeeds, setting the `TotalMemoryInKilobytes` to a nonzero value. If the function fails, it returns `FALSE`.
[]( “Bypass Malware Sandbox Evasion Ram check (4)” )[]() []( “Bypass Malware Sandbox Evasion Ram check (5)” )[]()
* The amount of physical [memory]( “memory” ) retrieved by the `GetPhysicallyInstalledSystemMemory` function must be equal to or greater than the amount reported by the `GlobalMemoryStatusEx` function; if it is less, the SMBIOS data is malformed and the function fails with `ERROR_INVALID_DATA`, [Malformed]( “Malformed” ) SMBIOS data may indicate a problem with the user’s computer .
[]( “Bypass Malware Sandbox Evasion Ram check (8)” )[]()
* The register `rcx` holds the parameter `TotalMemoryInKilobytes`. To overwrite the jump address of `GetPhysicallyInstalledSystemMemory`, I use the following opcodes: `mov qword ptr ss:[rcx],4193B840`. This moves the value `4193B840` (or 1.1 TB) to `rcx`. Then, the ret instruction is used to pop the return address off the stack and jump to it, Therefore, whenever `GetPhysicallyInstalledSystemMemory` is called, it will set `rcx` to the custom value.”
[]( “Bypass Malware Sandbox Evasion Ram check (9)” )[]()
**[Download Bypass-Sandbox-Evasion]( “Download Bypass-Sandbox-Evasion” )**Read More

