
whoami का उपयोग किए बिना वर्तमान उपयोगकर्ता नाम प्राप्त करने के विभिन्न तरीके
whoami.exe या समान बाइनरी को कॉल किए बिना वर्तमान उपयोगकर्ता नाम प्राप्त करने के कुछ प्रयोग।
PEB संरचना से पर्यावरण चर प्राप्त करें और उपयोगकर्ता नाम खोजने के लिए इसे पार्स करें।
फ़ंक्शन NtQueryInformationProcess एक "PROCESS_BASIC_INFORMATION" संरचना लौटाता है जिसमें PEB आधार पते का एक पॉइंटर होता है।
PEB संरचना में एक पॉइंटर "ProcessParameters" होता है जो RTL_USER_PROCESS_PARAMETERS संरचना की ओर इशारा करता है।
उस संरचना से आप पर्यावरण चर के लिए एक पॉइंटर "Environment" और पर्यावरण चर के आकार के लिए एक पॉइंटर "EnvironmentSize" प्राप्त कर सकते हैं।
"EnvironmentSize" में इंगित बाइट्स की संख्या को "Environment" पते से UNICODE टेक्स्ट के रूप में पढ़कर, पर्यावरण चर को पार्स करें और "USERNAME" नामक एक को प्रिंट करें। यदि आप सभी env चर चाहते हैं, तो इस रिपॉजिटरी देखें।


एक टोकन तक पहुंच प्राप्त करें, उपयोगकर्ता के SID को स्ट्रिंग प्रारूप में खोजें और LookupAccountSid फ़ंक्शन का उपयोग करके इसका अनुवाद करें।
फ़ंक्शन NtOpenProcessToken वर्तमान प्रक्रिया से जुड़ा एक एक्सेस टोकन बनाता है।
फ़ंक्शन NtQueryInformationToken हमारे द्वारा बनाए गए टोकन से जानकारी प्राप्त करता है, "TOKEN_INFORMATION_CLASS" फ़ील्ड में "tokenUser" (1) मान का उपयोग करके हम उपयोगकर्ता नाम के बारे में जानकारी प्राप्त करते हैं जो पॉइंटर "TokenInformation" में संग्रहीत होती है।
फ़ंक्शन ConvertSidToStringSid उपयोगकर्ता नाम के SID को बाइनरी प्रारूप से स्ट्रिंग प्रारूप में बदलता है।
फ़ंक्शन LookupAccountSid SID को स्ट्रिंग प्रारूप में लेता है और उपयोगकर्ता नाम लौटाता है।


एक टोकन और एक Policy ऑब्जेक्ट तक पहुंच प्राप्त करें और LsaLookupSids फ़ंक्शन के साथ उपयोगकर्ता नाम प्राप्त करें।
फ़ंक्शन NtOpenProcessToken और NtQueryInformationToken का उपयोग विधि 2 की तरह किया जाता है, वे उपयोगकर्ता के SID को बाइनरी प्रारूप में एक पॉइंटर "TokenInformation" लौटाते हैं।
फ़ंक्शन LsaOpenPolicy वर्तमान सिस्टम में Policy ऑब्जेक्ट के लिए एक हैंडल बनाता है।
फ़ंक्शन LsaLookupSids SID के लिए एक पॉइंटर लेता है और उपयोगकर्ता नाम वाली एक LSA_TRANSLATED_NAME संरचना लौटाता है।


एक नेम्ड पाइप और एक द्वितीयक थ्रेड बनाएं, नेम्ड पाइप से लिखें और पढ़ें और अप्रलेखित फ़ंक्शन NpGetUsername से उपयोगकर्ता नाम प्राप्त करें।


यदि कंप्यूटर डोमेन से जुड़ा है तो CoCreateInstance फ़ंक्शन का उपयोग करके उपयोगकर्ता नाम प्राप्त करें, जैसा कि MSDN उदाहरण में है। यह ActiveDS.dll से ADSystemInfoClass क्लास और ADSystemInfo और IADsADSystemInfo इंटरफेस का उपयोग करता है, जो पहले से प्रोजेक्ट फ़ोल्डर में हैं इसलिए आपको DLL की आवश्यकता नहीं है।
यदि AD से कोई कनेक्शन नहीं है:

यदि कनेक्शन है:
