
डायनेमिक इंडायरेक्ट सिस्कॉल्स का उपयोग करके कार्यान्वित रिफ्लेक्टिव x64 PE/DLL लोडर
Atlas एक रिफ्लेक्टिव x64 लोडर है जिसमें निम्नलिखित विशेषताएँ हैं:
Atlas को सही ढंग से काम करने के लिए निम्नलिखित पैरामीटर आवश्यक हैं:
Usage: atlas_x64.exe [Process name / PID] [Cleanup] [Server] [Port] [AtlasPatcher DLL] [DLL/PE to inject] <Entrypoint>
| पैरामीटर | विवरण |
|---|---|
| Name / PID | लक्ष्य प्रक्रिया का नाम या PID |
| Cleanup | बताता है कि क्या आप पूरा होने पर लक्ष्य प्रक्रिया से इंजेक्ट की गई DLLs को हटाना चाहते हैं (Cleanup मान के रूप में 1 या 0 समर्थित है) |
| Server | उस रिमोट सर्वर का IP पता जहाँ आपके पास DLLs हैं |
| Port | आपके सर्वर द्वारा उपयोग किया जाने वाला पोर्ट |
| AtlasPatcher DLL | आपके सर्वर पर होस्ट की गई AtlasPatcher DLL का नाम (डिफ़ॉल्ट रूप से atlas_patcher.dll) (संकलन के बाद आप DLL को /AtlasLdr/bin के अंतर्गत पा सकते हैं) |
| DLL/PE to inject | इंजेक्ट करने के लिए DLL या PE का नाम, जो आपके सर्वर पर होस्ट है |
| Entrypoint | एक वैकल्पिक तर्क; निर्यातित फ़ंक्शन का नाम जिसे आप DLL इंजेक्ट होने पर एंट्रीपॉइंट के रूप में उपयोग करना चाहते हैं |

लोडर का पारंपरिक दृष्टिकोण आमतौर पर एक इंजेक्टर पर निर्भर करता है जो लोडर युक्त DLL को हमारे लक्षित रिमोट प्रोसेस में इंजेक्ट करने के लिए ज़िम्मेदार होता है। इंजेक्ट होने के बाद, निष्पादन लोडर को स्थानांतरित कर दिया जाता है, जो दुर्भावनापूर्ण DLL को मैप करने के लिए ज़िम्मेदार होता है। इसके विपरीत, Atlas थोड़ा अलग दृष्टिकोण अपनाता है, संपूर्ण मैपिंग प्रक्रिया को अपने स्वयं के संदर्भ में निष्पादित करता है, सिवाय Import Address Table (IAT) पैचिंग के, जिसे स्थगित (deferred) कर दिया जाता है।
एक बार दुर्भावनापूर्ण DLL को Atlas संदर्भ में मैप कर लिया जाता है, तो इसे रिमोट प्रोसेस में पहले से आरक्षित मेमोरी में कॉपी कर दिया जाता है। इस बिंदु पर, दुर्भावनापूर्ण DLL रिमोट प्रोसेस में मैप हो जाती है, लेकिन IAT को पैच नहीं किया गया होता है। इसे ठीक करने के लिए, AtlasLdr न्यूनतम निर्भरताओं वाली एक DLL (atlas_patcher.dll) को दुर्भावनापूर्ण प्रोसेस में इंजेक्ट करता है, जो दुर्भावनापूर्ण DLL के IAT को पैच करने का ध्यान रखती है और फिर निष्पादन संदर्भ को उसमें स्थानांतरित कर देती है।
यह दृष्टिकोण रिमोट प्रोसेस में इंजेक्ट की जाने वाली लोडर DLL के आकार और जटिलता को कम करने में मदद करता है और इंजेक्टर के पकड़े जाने की संभावनाओं को न्यूनतम करता है, क्योंकि हम DLL को लोडर के साथ ही लोड कर सकते हैं।
Atlas को x86_64-w64-mingw32-g++ का उपयोग करके संकलित करने की आवश्यकता होती है। एक बार यह आपके सिस्टम पर आ जाए, तो प्रोजेक्ट फ़ोल्डर में बस make (या mingw32-make.exe) चलाएँ।
