
أداة C++ تقوم بتصحيح استدعاءات واجهة برمجة تطبيقات ويندوز لتجاوز فحوصات حجم ذاكرة الوصول العشوائي (RAM) في بيئة الحماية (sandbox)، مما يمكّن البرامج الضارة من التهرب من الكشف في بيئات التحليل المعزولة.
تُستخدم صناديق الرمل عادةً لتحليل البرامج الضارة. فهي توفر بيئة مؤقتة ومعزولة وآمنة يمكن من خلالها ملاحظة ما إذا كان الملف المشبوه يُظهر أي سلوك ضار. ومع ذلك، طور مطورو البرامج الضارة أيضًا طرقًا للتهرب من صناديق الرمل وبيئات التحليل. إحدى هذه الطرق هي إجراء فحوصات لتحديد ما إذا كان الجهاز الذي يتم تشغيل البرنامج الضار عليه يُدار من قبل مستخدم حقيقي. أحد هذه الفحوصات هو حجم ذاكرة الوصول العشوائي (RAM). إذا كان حجم ذاكرة الوصول العشوائي صغيرًا بشكل غير واقعي (على سبيل المثال، 1 جيجابايت)، فقد يشير ذلك إلى أن الجهاز هو صندوق رمل. إذا اكتشف البرنامج الضار وجود صندوق رمل، فلن ينفذ سلوكه الضار الحقيقي وقد يبدو كملف غير ضار.
تقوم واجهة برمجة التطبيقات GetPhysicallyInstalledSystemMemory باسترداد مقدار ذاكرة الوصول العشوائي المثبتة فعليًا على الكمبيوتر من جداول البرامج الثابتة SMBIOS. تأخذ معلمة من نوع PULONGLONG وتُرجع TRUE إذا نجحت الدالة، مع تعيين TotalMemoryInKilobytes إلى قيمة غير صفرية. إذا فشلت الدالة، فإنها تُرجع FALSE.

يجب أن تكون كمية الذاكرة الفعلية المستردة بواسطة دالة GetPhysicallyInstalledSystemMemory مساوية أو أكبر من الكمية المبلغ عنها بواسطة دالة GlobalMemoryStatusEx؛ إذا كانت أقل، فإن بيانات SMBIOS تكون مشوهة وتفشل الدالة مع ERROR_INVALID_DATA، قد تشير بيانات SMBIOS المشوهة إلى وجود مشكلة في جهاز المستخدم.

يحمل المسجل rcx المعامل TotalMemoryInKilobytes. لتجاوز عنوان القفز لـ GetPhysicallyInstalledSystemMemory، أستخدم الأوبكود التالية: mov qword ptr ss:[rcx],4193B840. هذا ينقل القيمة 4193B840 (أو 1.1 تيرابايت) إلى rcx. ثم يتم استخدام تعليمة ret لإخراج عنوان الإرجاع من المكدس والقفز إليه. لذلك، كلما تم استدعاء GetPhysicallyInstalledSystemMemory، سيتم تعيين rcx إلى القيمة المخصصة.
