
एक C++ उपकरण जो Windows API कॉल को पैच करता है ताकि सैंडबॉक्स RAM आकार जांच को बायपास किया जा सके, जिससे मैलवेयर अलग-थलग विश्लेषण वातावरण में पता लगाने से बच सके।
सैंडबॉक्स का उपयोग आमतौर पर मैलवेयर के विश्लेषण के लिए किया जाता है। वे एक अस्थायी, पृथक और सुरक्षित वातावरण प्रदान करते हैं जिसमें यह देखा जा सकता है कि कोई संदिग्ध फ़ाइल दुर्भावनापूर्ण व्यवहार प्रदर्शित करती है या नहीं। हालाँकि, मैलवेयर डेवलपर्स ने सैंडबॉक्स और विश्लेषण वातावरण से बचने के तरीके भी विकसित किए हैं। ऐसा ही एक तरीका यह जांचना है कि जिस मशीन पर मैलवेयर चलाया जा रहा है, वह किसी वास्तविक उपयोगकर्ता द्वारा संचालित की जा रही है या नहीं। ऐसी ही एक जाँच RAM का आकार है। यदि RAM का आकार अवास्तविक रूप से छोटा है (जैसे, 1GB), तो यह संकेत दे सकता है कि मशीन एक सैंडबॉक्स है। यदि मैलवेयर को सैंडबॉक्स का पता चलता है, तो यह अपना वास्तविक दुर्भावनापूर्ण व्यवहार निष्पादित नहीं करेगा और एक हानिरहित फ़ाइल के रूप में दिखाई दे सकता है।
GetPhysicallyInstalledSystemMemory API कंप्यूटर पर भौतिक रूप से स्थापित RAM की मात्रा को SMBIOS फर्मवेयर तालिकाओं से प्राप्त करता है। यह एक PULONGLONG पैरामीटर लेता है और यदि फ़ंक्शन सफल होता है तो TRUE लौटाता है, TotalMemoryInKilobytes को एक गैर-शून्य मान पर सेट करता है। यदि फ़ंक्शन विफल होता है, तो यह FALSE लौटाता है।

GetPhysicallyInstalledSystemMemory फ़ंक्शन द्वारा प्राप्त भौतिक मेमोरी की मात्रा GlobalMemoryStatusEx फ़ंक्शन द्वारा रिपोर्ट की गई मात्रा के बराबर या उससे अधिक होनी चाहिए; यदि यह कम है, तो SMBIOS डेटा दूषित है और फ़ंक्शन ERROR_INVALID_DATA के साथ विफल हो जाता है। दूषित SMBIOS डेटा उपयोगकर्ता के कंप्यूटर में समस्या का संकेत दे सकता है।

रजिस्टर rcx में पैरामीटर TotalMemoryInKilobytes होता है। GetPhysicallyInstalledSystemMemory के जंप पते को ओवरराइट करने के लिए, मैं निम्नलिखित opcodes का उपयोग करता हूँ: mov qword ptr ss:[rcx],4193B840। यह rcx पर मान 4193B840 (या 1.1 TB) डालता है। फिर, रिटर्न एड्रेस को स्टैक से पॉप करने और उस पर जंप करने के लिए ret निर्देश का उपयोग किया जाता है। इसलिए, जब भी GetPhysicallyInstalledSystemMemory को कॉल किया जाता है, तो यह rcx को कस्टम मान पर सेट कर देगा।
