Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CallObfuscator — विशिष्ट विंडोज APIs को भिन्न APIs से अस्पष्ट करें | Kitploit
उपकरण/GitHubGitHub/d35ha/callobfuscator
रक्षात्मक उपकरणस्थैतिक विश्लेषणगतिशील विश्लेषण (सैंडबॉक्सिंग)आईडीएस/आईपीएस से बचनारिवर्स इंजीनियरिंगमालवेयर विश्लेषणबाइनरी विश्लेषण
GitHubd35ha/callobfuscator

CallObfuscator

विशिष्ट विंडोज APIs को भिन्न APIs से अस्पष्ट करें

रिपॉजिटरी देखें
1.0k1745 साल पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

CallObfuscator

PE आयातों को स्थैतिक/गतिशील विश्लेषण उपकरणों से अस्पष्ट (छिपाएं) करें।

सिद्धांत

यह काफी सीधा है, मान लें कि मैंने VirtualProtect का उपयोग किया है और मैं इसे Sleep से अस्पष्ट करना चाहता हूँ, उपकरण IAT में हेरफेर करेगा ताकि VirtualProtect की ओर इशारा करने वाला थंक इसके बजाय Sleep की ओर इशारा करेगा, अब फ़ाइल निष्पादित करने पर, विंडोज लोडर VirtualProtect के बजाय Sleep लोड करेगा, और निष्पादन को प्रवेश बिंदु पर ले जाएगा, वहाँ से निष्पादन शेलकोड की ओर पुनर्निर्देशित किया जाएगा, जिसे उपकरण ने पहले रखा था, ताकि VirtualProtect का पता खोजा जा सके और इसका उपयोग Sleep के पते को बदलने के लिए किया जा सके जिसे लोडर ने पहले निर्धारित किया था।

उपयोग कैसे करें

  • इसे सीधे एक लाइब्रेरी के रूप में शामिल किया जा सकता है, निम्नलिखित स्निपेट देखें (उदाहरण पर आधारित), साथ ही आप cli.cpp पर एक नज़र डाल सकते हैं।
root@kitploit:~
#include <cobf.hpp>

int main() {
	cobf obf_file = cobf("sample.exe");
	obf_file.load_pe();
	obf_file.obf_sym("kernel32.dll", "SetLastError", "Beep");
	obf_file.obf_sym("kernel32.dll", "GetLastError", "GetACP");
	obf_file.generate("sample_obfuscated.exe");
	obf_file.unload_pe();
	return 0;
};
  • इसका उपयोग कमांड लाइन टूल के रूप में भी किया जा सकता है, इसे इनपुट PE पथ, आउटपुट PE पथ और वैकल्पिक रूप से कॉन्फ़िगरेशन फ़ाइल का पथ (डिफ़ॉल्ट config.ini है) प्रदान करके।
    cobf.exe <input file> <out file> [config file]
    कॉन्फ़िगरेशन फ़ाइल में आवश्यक अस्पष्टताएँ होती हैं (dlls, symbols, ...)।
    यहाँ कॉन्फ़िगरेशन फ़ाइल सामग्री का एक टेम्पलेट है
root@kitploit:~
; Template for the config file:
; 	* Sections can be written as:
; 		[dll_name]
; 		old_sym=new_sym
;	* The dll name is case insensitive, but 
;	the old and the new symbols are not.
; 	* You can use the wildcard on both the
; 	dll name and the old symbol.
; 	* You can use '#' at the start of
; 	the old or the new symbol to flag 
; 	an ordinal.
;	* The new symbol should be exported
;	by the dll so the windows loader can resolve it.
; For example:
; 	* Obfuscating all of the symbols
;	imported from user32.dll with ordinal 1600.
[user32.dll]
*=#1600
;	* Obfuscating symbols imported from both
;	kernel32.dll and kernelbase.dll with Sleep.
[kernel*.dll]
*=Sleep
;	* Obfuscating fprintf with exit.
[*]
fprintf=exit

उदाहरण

इस कोड नमूने को बनाएँ

root@kitploit:~
#include <windows.h>
#include <stdio.h>

int main() {
	SetLastError(5);
	printf("Last error is %d\n", GetLastError());
	return 0;
};

इसे बनाने के बाद, kernel32 आयात इस प्रकार दिखते हैं

pic1

अब दोनों SetLastError और GetLastError को Beep और GetACP से अस्पष्ट करें (वास्तव में kernel32 से कोई भी API ठीक होगा, भले ही वह आयातित न हो)।
उपयोग किए गए कॉन्फ़िगरेशन हैं

root@kitploit:~
[kernel32.dll]
SetLastError=Beep
GetLastError=GetACP

यहाँ आउटपुट है (आप ऊपर दिखाए अनुसार सीधे लाइब्रेरी का उपयोग भी कर सकते हैं)।

pic2

फिर से kernel32 आयातों पर एक नज़र डालते हैं

pic3

SetLastError या GetLastError का कोई अस्तित्व नहीं है
एक पुष्टि कि दोनों फ़ाइलें ठीक से काम करेंगी

pic4

प्रभाव

IDA HexRays Decompiler

pic5

IDA Debugger

pic6

Ghidra

pic7

ApiMonitor

pic8

ऐसा इसलिए है क्योंकि सभी स्थैतिक विश्लेषण उपकरण IAT पर लिखे गए API नाम पर निर्भर करते हैं, जिसे दिखाए अनुसार हेरफेर किया जा सकता है।
ApiMonitor के लिए, IAT हुकिंग का उपयोग करने के कारण, वही समस्या मौजूद है।

दूसरी ओर, x64dbg जैसे उपकरणों के लिए, दिखाए गए API नाम केवल वास्तव में कॉल किए गए पर निर्भर करेंगे (IAT पर लिखे गए पर नहीं)।

pic9

अतिरिक्त

  • मेमोरी से अस्पष्ट PE को डंप करने से यह डी-ऑबफस्केट नहीं होगा, क्योंकि हेरफेर किया गया IAT वही रहेगा।
  • इस उपकरण का मुख्य उद्देश्य विश्लेषण प्रक्रिया को गड़बड़ करना है (इसे धीमा बनाना)।
  • कोई भी आयातित प्रतीक (नाम या ऑर्डिनल द्वारा) को दूसरे प्रतीक (नाम या ऑर्डिनल) से अस्पष्ट किया जा सकता है।
  • शेलकोड को पहले TLS कॉलबैक के रूप में निष्पादित किया जाता है ताकि प्रवेश बिंदु निष्पादित होने से पहले अन्य TLS कॉलबैक के लिए आवश्यक अस्पष्ट प्रतीकों को संसाधित किया जा सके।
  • शेलकोड को c कोड के रूप में भेजा जाता है, जो उपकरण के संकलित होने पर उत्पन्न होता है ताकि इसे संपादित करना आसान हो।
  • अस्पष्ट प्रतीक नामों को हैश द्वारा हल किया जाता है, सीधे नाम से नहीं।
  • उपकरण रिलोकेशन को अक्षम करता है और किसी भी डीबग प्रतीकों को हटा देता है।
  • उपकरण शेलकोड और अन्य आवश्यक डेटा रखने के लिए .cobf नामक एक नया rwx अनुभाग बनाता है।
  • इसका उपयोग एक ही अस्पष्ट PE पर कई बार किया जा सकता है।
  • केवल Windows 10 x64 पर परीक्षण किया गया।
  • स्रोत प्राप्त करें: git clone https://github.com/d35ha/CallObfuscator.
  • बायनेरिज़ रिलीज़ अनुभाग से डाउनलोड करें।

TODO

  • शेलकोड अस्पष्टता (संभवतः obfusion के साथ)।
  • विलंब-लोड किए गए प्रतीकों का समर्थन।
  • निर्मित अनुभाग आकार को कम करें।
  • संकलन समय हैशिंग।
  • बेहतर परीक्षण।
टूल डाउनलोड करें