智能摘要 AI
本文讨论了如何利用沙箱环境分析恶意软件及其规避机制。恶意软件开发者通过检查RAM大小等手段识别沙箱,从而避免触发恶意行为。文中提出一种绕过方法:通过修改系统调用`GetPhysicallyInstalledSystemMemory`的结果,将其返回值设为大容量内存(如1.1TB),使恶意软件误以为运行于真实环境中。具体操作包括调用API获取物理内存信息,并使用汇编指令覆盖跳转地址以固定返回值。这一技术虽用于研究目的,但也警示用户需保持软件更新和加强安全防护,以防恶意软件攻击。
引言
在处理关于恶意软件的分析时,沙箱是一个非常重要的工具,它能提供一个独立的、隔离的和安全的环境,让我们观察和分析可疑文件是否具有恶意行为。但是,恶意软件的开发者们也在不断地研究如何绕过沙箱和分析环境。
绕过检查
其中一个方法是通过执行检查,来确定运行恶意软件的机器是否由真实用户操作。其中一个检查就是查看 RAM 的大小。如果 RAM 的大小不现实的小(例如 1GB),那么可能就表明该机器是沙盒环境。如果恶意软件检测到了沙箱,它就不会执行真正的恶意行为,这个文件看起来就像是一个良性文件。
操作方法
针对这种情况,我使用了以下操作,来尝试绕过这个检查。首先,我调用了API从SMBIOS固件的GetPhysicallyInstalledSystemMemory表中检索实际安装在计算机上的RAM量。它接受一个参数,如果函数成功执行,就将该参数设置为非零值。如果函数失败,则返回FALSE。检索到的物理内存总量必须等于或大于由GlobalMemoryStatusEx函数报告的量。如果小于,则SMBIOS数据格式错误,函数返回ERROR_INVALID_DATA。格式错误的SMBIOS数据可能表明用户计算机存在问题。
然后,我将参数TotalMemoryInKilobytes保存在寄存器rcx中。为了覆盖跳转地址GetPhysicallyInstalledSystemMemory,我使用了以下操作码:mov qword ptr ss:[rcx],4193B840。这会将值4193B840(或 1.1 TB)移动到rcx。最后,使用ret指令从堆栈中弹出返回地址并跳转到它,这样,无论GetPhysicallyInstalledSystemMemory何时被调用,它都会设置rcx为自定义值。





评论 (0)