
x64dbg के साथ Amadey Loader का रिवर्स इंजीनियरिंग: डायनामिक API रिज़ॉल्यूशन, टोकन विशेषाधिकार वृद्धि, कीलॉगर हुक, क्लिपबोर्ड कैप्चर, और स्टीलर स्टेजिंग के लिए कमांड-लाइन का दुरुपयोग।
Amadey Loader नमूने को x64dbg में लोड किया गया था। एंट्री पॉइंट पर, लोडर GetProcAddressForCaller और VirtualAlloc की ओर इंगित करने वाले jmp thunks के माध्यम से गतिशील API रिज़ॉल्यूशन करता है। नीचे दिया गया डंप दृश्य लोडर के कीलॉगर और पर्सिस्टेंस रूटीन द्वारा उपयोग किए गए डिक्रिप्ट किए गए स्ट्रिंग्स और API नामों को प्रकट करता है।
jmp qword ptr ds:[] – गतिशील API लुकअप, स्थिर इम्पोर्ट से बचता है। jmp qword ptr ds:[] – अनपैक किए गए पेलोड / शेलकोड के लिए RWX मेमोरी आवंटित करता है। SetWindowsHookExW / CallNextHookEx / UnhookWindowsHookEx – कीलॉगर हुक श्रृंखला (WH_KEYBOARD_LL) GetForegroundWindow / GetWindowTextW / GetWindowThreadProcessId – प्रत्येक कीस्ट्रोक के साथ सक्रिय विंडो शीर्षक को कैप्चर करता है। GetKeyState / GetAsyncKeyState – कच्ची कुंजी स्थिति पोलिंग। GetUserObjectInformationW / wndProc /UnregisterClassW – छिपी हुई कीलॉगर विंडो के लिए विंडो क्लास हैंडलिंग। GetTickCount / timeGetTime / GetSystemTimeAsFileTime – बीकन अंतराल और कीस्ट्रोक बफ़रिंग के लिए उपयोग किए जाने वाले टाइमिंग रूटीन।
गतिशील API रिज़ॉल्यूशन: GetProcAddressForCaller स्थिर इम्पोर्ट विश्लेषण को बायपास करता है, जिससे सिग्नेचर-आधारित डिटेक्शन विफल हो जाता है। कीलॉगर की पुष्टि: SetWindowsHookExW + CallNextHookEx श्रृंखला वह क्लासिक निम्न-स्तरीय कीबोर्ड हुक है जिसका उपयोग सिस्टम-व्यापी रूप से प्रत्येक कीस्ट्रोक को इंटरसेप्ट करने के लिए किया जाता है। संदर्भ-जागरूक लॉगिंग: GetForegroundWindow + GetWindowTextW सक्रिय विंडो शीर्षक को कैप्चर करते हैं, जिससे प्रत्येक कीस्ट्रोक (उपयोगकर्ता नाम, पासवर्ड, चैट) को संदर्भ मिलता है। RWX आवंटन: VirtualAlloc का उपयोग अगले-चरण के पेलोड को मेमोरी में अनपैक करने और निष्पादित करने के लिए किया जाता है, जिससे डिस्क पर कोई निशान नहीं रहता। Amadey व्यवहार से मेल: यह API सेट Amadey के ज्ञात क्रेडेंशियल-चोरी और कीलॉगिंग व्यवहार के अनुरूप है।

उसी x64dbg सत्र पर एक नज़दीकी नज़र से पता चलता है कि Amadey Loader विंडोज़ API के दूसरे बैच को रिज़ॉल्व करता है जो प्रिविलेज एस्केलेशन, टोकन मैनिपुलेशन और प्रोसेस एन्यूमरेशन पर केंद्रित हैं। डिसअसेम्बली के शीर्ष पर VirtualAlloc thunk का उपयोग रिज़ॉल्व किए गए API तालिका के लिए मेमोरी आवंटित करने के लिए किया जाता है, जबकि नीचे दिया गया डंप दृश्य अपने पेलोड को निष्पादित करने से पहले SYSTEM-स्तरीय पहुँच तक एस्केलेट करने के लोडर के इरादे को उजागर करता है।
OpenProcessToken / DuplicateTokenEx / ImpersonateLoggedOnUser – प्रिविलेज एस्केलेशन के लिए टोकन डुप्लिकेशन और इम्पर्सोनेशन। LookupPrivilegeValueW / AdjustTokenPrivileges – SeDebugPrivilege और अन्य संवेदनशील विशेषाधिकारों को सक्षम करता है। GetTokenInformation / SetTokenInformation – वर्तमान प्रोसेस टोकन को पढ़ता और संशोधित करता है। OpenProcess / Process32FirstW / Process32NextW – उच्च-मूल्य लक्ष्यों (जैसे, lsass.exe, AV प्रोसेस) का पता लगाने के लिए प्रोसेस एन्यूमरेशन। CreateFileW / CreateToolhelp32Snapshot / Module32FirstW – फ़ाइल संचालन और मॉड्यूल एन्यूमरेशन के लिए उपयोग किया जाता है। RegCreateKeyExW / RegSetValueExW / पर्सिस्टेंस: Run कुंजियों के अंतर्गत RegCreateKeyExW + RegSetValueExW Amadey को रीबूट के बाद ऑटो-स्टार्ट होने देते हैं। GetProcAddress / LoadLibraryW / GetModuleHandleW – गतिशील API रिज़ॉल्यूशन। CreateProcessW / ShellExecuteExW / WinExec – अगले-चरण के पेलोड लॉन्च करता है। IsDebuggerPresent / CheckRemoteDebuggerPresent – एंटी-डीबगिंग जाँच।
टोकन प्रतिरूपण: DuplicateTokenEx + ImpersonateLoggedOnUser Amadey को उच्च विशेषाधिकारों (अक्सर SYSTEM) के साथ चलने की अनुमति देते हैं, जिससे सिस्टम पर पूर्ण नियंत्रण मिल जाता है। SeDebugPrivilege का दुरुपयोग: LookupPrivilegeValueW + AdjustTokenPrivileges SeDebugPrivilege को सक्षम करते हैं, जो lsass.exe जैसी संरक्षित प्रक्रियाओं में इंजेक्ट करने के लिए आवश्यक है। प्रक्रिया लक्ष्यीकरण: Process32FirstW / Process32NextW का उपयोग उच्च-मूल्य वाले लक्ष्यों (AV, ब्राउज़र, क्रेडेंशियल स्टोर) को सूचीबद्ध करने और चुनने के लिए किया जाता है। एंटी-डीबगिंग: IsDebuggerPresent + CheckRemoteDebuggerPresent विश्लेषण वातावरण का सक्रिय रूप से पता लगाते हैं और व्यवहार को समाप्त या परिवर्तित करते हैं। श्रृंखला निष्पादन: CreateProcessW / ShellExecuteExW Amadey की लोडर के रूप में भूमिका की पुष्टि करते हैं — यह अगले-चरण के पेलोड (जैसे Lumma Stealer, Vidar, या रैनसमवेयर) को ड्रॉप और निष्पादित करता है।

उसी x64dbg सत्र का तीसरा दृश्य दिखाता है कि Amadey Loader फ़ाइल I/O, टाइमर प्रबंधन और इनपुट/कीबोर्ड हैंडलिंग के लिए API का समाधान कर रहा है। डंप स्ट्रिंग्स के साथ मिलकर, यह एक ऐसे पेलोड की ओर संकेत करता है जो कीलॉगर/स्टीलर हाइब्रिड की तरह व्यवहार करता है — इनपुट कैप्चर करना, लॉग लिखना, और अपने फ़ुटप्रिंट को कम करने के लिए टाइमर की सफ़ाई करना।
jmp qword ptr ds:[] – कैप्चर किए गए डेटा / ड्रॉप किए गए पेलोड को डिस्क पर लिखता है। jmp qword ptr ds:[] – अतुल्यकालिक फ़ाइल लेखन (स्टील्थी लॉग फ़्लशिंग के लिए उपयोग किया जाता है)। jmp qword ptr ds:[] – बिखरा हुआ लेखन संचालन (खंडित पेलोड ड्रॉप के लिए उपयोग किया जाता है)। jmp qword ptr ds:[] – समय-आधारित निशानों को मिटाने के लिए टाइमर कतारों को हटाता है। SetSystemTime / SetLocalTime – संभावित टाइमस्टैम्प हेरफेर। SetWindowsHookEx / CallNextHookEx / UnhookWindowsHookEx – कीबोर्ड हुक श्रृंखला। GetForegroundWindow / GetWindowTextW / GetClassNameW – सक्रिय विंडो संदर्भ को कैप्चर करता है। GetSystemInfo / EnumWindows / EnumChildWindows – वातावरण गणना।
कीलॉगर की पुष्टि (सुदृढ़): SetWindowsHookEx, CallNextHookEx, ToUnicodeEx, और GetForegroundWindow का संयोजन एक पाठ्यपुस्तक कीलॉगर कार्यान्वयन है जो कीस्ट्रोक और उस विंडो दोनों को लॉग करता है जिसमें उन्हें टाइप किया गया था। स्टीलर व्यवहार: WriteFile + WriteFileEx + WriteFileGather इंगित करते हैं कि कैप्चर किया गया डेटा (कीस्ट्रोक, क्रेडेंशियल) पता लगाने से बचने के लिए खंडित, अतुल्यकालिक टुकड़ों में डिस्क पर लिखा जाता है। एंटी-फ़ोरेंसिक सफ़ाई: DeleteTimerQueue और SetSystemTime लोडर को अपने स्वयं के समय-संबंधी निशान मिटाने और संभावित रूप से फ़ाइल टाइमस्टैम्प को संशोधित करने में मदद करते हैं। सिंथेटिक इनपुट: SendInput + RegisterHotKey सुझाव देते हैं कि पेलोड कीस्ट्रोक भी इंजेक्ट कर सकता है — जो दृढ़ता या दूर से क्रियाओं को ट्रिगर करने के लिए उपयोगी है। Amadey पेलोड पैटर्न: यह API सेट पुष्टि करता है कि लोडर एक कीलॉगर/स्टीलर पेलोड (आमतौर पर Vidar, Lumma, या समान) को तैनात करने की तैयारी कर रहा है।
