
15 Valve Anti-Cheat x86 स्कैन मॉड्यूल और steamservice.dll का बाइट-दर-बाइट C++20 पुनर्निर्माण, समानता परीक्षणों और एक पूर्ण तकनीकी लेख के साथ।
15 पारंपरिक x86 Valve Anti-Cheat (VAC) स्कैन मॉड्यूल और steamservice.dll का बाइट-दर-बाइट C++20 पुनर्निर्माण।
प्रत्येक पुनर्निर्मित वर्कर को मूल हस्ताक्षरित Valve बाइनरीज़ (../vac-research) के विरुद्ध सटीक 4232-बाइट आउटपुट समानता के लिए सत्यापित किया गया है, जिसमें मूल विचित्रताएँ, अनइनिशियलाइज़्ड स्टैक कचरा, और // valve bug, keep it के साथ चिह्नित बग शामिल हैं।
steamservice.dll, साझा मॉड्यूल SDK, सभी 15 स्कैनर, और Valve के बग्स का पूर्ण तकनीकी विश्लेषण:
| पथ | विवरण |
|---|---|
sdk/ | साझा मॉड्यूल रनटाइम: _runfunc@20, .vacini, RunDispatcher, BootstrapMain (172 इम्पोर्ट), ICE, रॉ RSA-512, MD5/CRC32, LZ4, PE/NT हेल्पर्स |
modules/ | 15 पुनर्निर्मित स्कैन मॉड्यूल (प्रति मॉड्यूल एक डायरेक्टरी) |
service/ | steamservice.dll का पुनर्निर्माण: IPC मॉड्यूल मैनेजर, VLV RSA-1024 हस्ताक्षर जाँच, मैनुअल मैपर (LoadModuleHiddenInternal), और 5-मिनट ETW प्रोसेस मॉनिटर |
tests/ | मूल DLLs के विरुद्ध लाइव और सिंथेटिक बाइट-दर-बाइट समानता सूट |
tools/ | मॉड्यूल ब्लॉब जनरेटर, वर्कर नोड इंस्पेक्टर, IDA एक्सपोर्ट और @orig सत्यापन स्क्रिप्ट |
| मॉड्यूल | वर्कर ID | सारांश |
|---|---|---|
boot_config | 0x06A79A9E | BCD रजिस्ट्री हाइव (HKLM\BCD00000000\Objects), testsigning / nointegritychecks, NX नीति, NTFS File ID |
cpuid | 0x023429C3 | CPU 0 एफ़िनिटी पिन और CPUID लीफ डंप (0x0, 0x40000000, 0x80000000) |
devices | 0x05EC50DC | SetupAPI के माध्यम से सक्रिय PCI और USB डिवाइस एन्यूमरेशन |
driver_inventory | 0x06ACD913, 0x06C2B5BB | सक्रिय ड्राइवर सेवाएँ बनाम \Driver ऑब्जेक्ट डायरेक्टरी + ड्राइवर फ़ाइलों का सामान्यीकृत MD5 |
image_scan | 0x0CDA6778, 0x09D3248C | डिस्क/मेमोरी PE स्कैनर (रिलोकेशन-हटाया गया MD5, आइकन, PDB, WinTrust, पैटर्न स्कैन) + थ्रेड प्रारंभ पते |
image_scan_threads | 0x05A52008, 0x0122C7DA | image_scan के समान .text, घुमाए गए कुंजियों और वर्कर ID के साथ निर्मित |
payload_executor | 0x0236ED5F | मेमोरी आवंटन, RSA पेलोड अनपैकर, PAGE_EXECUTE_READWRITE, और एंट्री कॉल |
process_file_identity | 0x0B2D8276, 0x0CA11165, 0x013B4330 | प्रोसेस डोज़ियर (SID, PEB32/64, cmdline, हैश), पूर्वज NTFS File ID श्रृंखला, डायरेक्टरी इन्वेंटरी |
process_memory_map | 0x06E048F4, 0x0DB55D3C | PEB->Ldr और वर्चुअल मेमोरी वॉक, पेज फोल्डिंग, रिलोकेशन-हटाया गया PE MD5, LZ4 रिपोर्ट टेल |
service_lookup | 0x0FA94991 | सेवा नाम हैश द्वारा ड्राइवर लुकअप, sysnative विस्तार, NTFS File ID |
shared_section | 0x0E3481C0, 0x06781BC4 | OpenFileMappingW और NT \ डायरेक्टरी वॉक के माध्यम से GUID पैटर्न द्वारा नामित सेक्शन लुकअप |
system_handles | 0x002F6DC7, 0x0929BC41 | Toolhelp स्नैपशॉट, 64-बिट हैंडल प्रकार मास्क, और छिपे हुए PID ब्रूट-फ़ोर्स (unPid -= 4) |
system_info | 0x0F8083A0, 0x0C2232C2 | OS सारांश, KUSER_SHARED_DATA, वॉल्यूम, और रॉ SSNs के लिए डिस्क पर ntdll.dll एक्सपोर्ट पार्सर |
target_handles | 0x08A9324E | WoW64 Heaven's Gate (0x33) प्रत्यक्ष x64 सिसकॉल्स जो गेम के हैंडल वाले प्रोसेस की खोज करते हैं |
timing_check | 0x0D8C40E1 | BootstrapMain के बिना लीगेसी मॉड्यूल: पैच किए गए .data स्टब के आसपास KUSER_SHARED_DATA टिक्स |
Visual Studio 2022 (Release | Win32) में vac.sln खोलें, या कमांड लाइन से पूर्ण समानता सूट बिल्ड और चलाएँ:
python tests/build_tests.py
python tests/parity/run_all.py
python tools/ida/fill_orig.py --check sdk modules service
run_all.py प्रत्येक वर्कर को मूल DLLs के विरुद्ध लाइव चलाता है (पहले मूल बाइनरी को स्वयं के विरुद्ध दो बार चलाकर OS शोर को फ़िल्टर करता है), ICE और RSA-512 सीलिंग सहित पूर्ण _runfunc@20 आउटपुट पैकेट सत्यापित करता है, और नियतात्मक फ़ज़/सिंथेटिक सूट निष्पादित करता है।