# मैलवेयर में उपयोग किए जाने वाले सामान्य API
जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ! HackTricks का समर्थन करने के अन्य तरीके: * यदि आप अपनी कंपनी का विज्ञापन **HackTricks** में देखना चाहते हैं या **HackTricks** को PDF में डाउनलोड करना चाहते हैं तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें! * [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें * [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह * **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** पर **फॉलो** करें। * **हैकिंग ट्रिक्स साझा करें** द्वारा PRs सबमिट करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos।
## सामान्य ### नेटवर्किंग | रॉ सॉकेट्स | WinAPI सॉकेट्स | | ------------- | -------------- | | socket() | WSAStratup() | | bind() | bind() | | listen() | listen() | | accept() | accept() | | connect() | connect() | | read()/recv() | recv() | | write() | send() | | shutdown() | WSACleanup() | ### स्थिरता | रजिस्ट्री | फ़ाइल | सेवा | | ---------------- | ------------- | ---------------------------- | | RegCreateKeyEx() | GetTempPath() | OpenSCManager | | RegOpenKeyEx() | CopyFile() | CreateService() | | RegSetValueEx() | CreateFile() | StartServiceCtrlDispatcher() | | RegDeleteKeyEx() | WriteFile() | | | RegGetValue() | ReadFile() | | ### एन्क्रिप्शन | नाम | | --------------------- | | WinCrypt | | CryptAcquireContext() | | CryptGenKey() | | CryptDeriveKey() | | CryptDecrypt() | | CryptReleaseContext() | ### एंटी-विश्लेषण/वीएम | फ़ंक्शन नाम | असेम्बली निर्देश | | --------------------------------------------------------- | --------------------- | | IsDebuggerPresent() | CPUID() | | GetSystemInfo() | IN() | | GlobalMemoryStatusEx() | | | GetVersion() | | | CreateToolhelp32Snapshot \[प्रक्रिया के चल रहे होने की जांच] | | | CreateFileW/A \[फ़ाइल मौजूद है कि नहीं देखें] | | ### छल | नाम | | | ------------------------ | -------------------------------------------------------------------------- | | VirtualAlloc | मेमोरी आवंटित करें (पैकर्स) | | VirtualProtect | मेमोरी अनुमति बदलें (पैकर एक खंड को क्रियान्वित करने की अनुमति देना) | | ReadProcessMemory | बाहरी प्रक्रियाओं में इंजेक्शन | | WriteProcessMemoryA/W | बाहरी प्रक्रियाओं में इंजेक्शन | | NtWriteVirtualMemory | | | CreateRemoteThread | DLL/प्रक्रिया इंजेक्शन... | | NtUnmapViewOfSection | | | QueueUserAPC | | | CreateProcessInternalA/W | | ### निष्पादन | फ़ंक्शन नाम | | ---------------- | | CreateProcessA/W | | ShellExecute | | WinExec | | ResumeThread | | NtResumeThread | ### विविध * GetAsyncKeyState() -- कुंजी लॉगिंग * SetWindowsHookEx -- कुंजी लॉगिंग * GetForeGroundWindow -- चल रहे विंडो का नाम प्राप्त करें (या ब्राउज़र से वेबसाइट) * LoadLibrary() -- लाइब्रेरी आयात * GetProcAddress() -- लाइब्रेरी आयात * CreateToolhelp32Snapshot() -- चल रही प्रक्रियाएँ सूचीबद्ध करें * GetDC() -- स्क्रीनशॉट * BitBlt() -- स्क्रीनशॉट * InternetOpen(), InternetOpenUrl(), InternetReadFile(), InternetWriteFile() -- इंटरनेट तक पहुंचें * FindResource(), LoadResource(), LockResource() -- कार्यक्रम के संसाधनों तक पहुंचें ## मैलवेयर तकनीकें ### DLL इंजेक्शन किसी अन्य प्रक्रिया में एक विचित्र DLL को निष्पादित करें 1. दुरुपयोगी DLL निष्पादित करने के लिए प्रक्रिया का पता लगाएं: CreateToolhelp32Snapshot, Process32First, Process32Next 2. प्रक्रिया खोलें: GetModuleHandle, GetProcAddress, OpenProcess 3. DLL के पथ को प्रक्रिया में लिखें: VirtualAllocEx, WriteProcessMemory 4. प्रक्रिया में एक धारात्मक DLL लोड करने वाली थ्रेड बनाएं: CreateRemoteThread, LoadLibrary उपयोग करने के अन्य फ़ंक्शन: NTCreateThreadEx, RtlCreateUserThread ### प्रतिबिम्बी DLL इंजेक्शन सामान्य Windows API कॉल किए बिना एक दुरुपयोगी DLL लोड करें।\ DLL प्रक्रिया के अंदर मैप किया जाता है, यह आयात पते हल करेगा, स्थानांतरणों को ठीक करेगा और DllMain फ़ंक्शन को कॉल करेगा। ### थ्रेड हाइजैकिंग प्रक्रिया से एक थ्रेड खोजें और उसे एक दुरुपयोगी DLL लोड करने के लिए बनाएं 1. लक्ष्य थ्रेड खोजें: CreateToolhelp32Snapshot, Thread32First, Thread32Next 2. थ्रेड खोलें: OpenThread 3. थ्रेड को रोकें: SuspendThread 4. पीड़ित प्रक्रिया में दुरुपयोगी DLL का पथ लिखें: VirtualAllocEx, WriteProcessMemory 5. लाइब्रेरी लोड करने वाले थ्रेड को फिर से चालू करें: ResumeThread ### पीई इंजेक्शन पोर्टेबल निष्पादन इंजेक्शन: एक्जीक्यूटेबल को पीड़ित प्रक्रिया की मेमोरी में लिखा जाएगा और वहां से निष्पादित किया जाएगा। ### प्रक्रिया होलोइंग मैलवेयर वास्तविक कोड को प्रक्रिया की मेमोरी से अनमैप करेगा और एक दुरुपयोगी बाइनरी लोड करेगा 1. एक नई प्रक्रिया बनाएं: CreateProcess 2. मेमोरी को अनमैप करें: ZwUnmapViewOfSection, NtUnmapViewOfSection 3. प्रक्रिया मेमोरी में दुरुपयोगी बाइनरी लिखें: VirtualAllocEc, WriteProcessMemory 4. प्रवेश बिंदु सेट करें और निष्पादित करें: SetThreadContext, ResumeThread ## हुकिंग * **SSDT** (**System Service Descriptor Table**) कर्नेल फ़ंक्शनों (ntoskrnl.exe) या GUI ड्राइवर (win32k.sys) को इंगित करता है ताकि उपयोगकर्ता प्रक्रियाएँ इन फ़ंक्शनों को कॉल कर सकें। * एक रूटकिट इन पॉइंटर को उसके नियंत्रण में अद्यतन कर सकता है * **IRP** (**I/O Request Packets**) एक घटक से दूसरे घटक तक डेटा टुकड़े भेजते हैं। कर्नेल में लगभग सभी चीजें IRPs का उपयोग करती हैं और प्रत्येक डिवाइस ऑब्ज