Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CallObfuscator — إخفاء واجهات برمجة تطبيقات Windows محددة باستخدام واجهات برمجة تطبيقات مختلفة | Kitploit
أدوات/GitHubGitHub/d35ha/callobfuscator
أدوات دفاعيةالتحليل الثابتالتحليل الديناميكي (عزل)التهرب من IDS/IPSالهندسة العكسيةتحليل البرمجيات الخبيثةتحليل الملفات الثنائية
GitHubd35ha/callobfuscator

CallObfuscator

إخفاء واجهات برمجة تطبيقات Windows محددة باستخدام واجهات برمجة تطبيقات مختلفة

عرض المستودع
1.0k174منذ 5 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CallObfuscator

تعتيم (إخفاء) واردات PE عن أدوات التحليل الثابتة/الديناميكية.

النظرية

هذا واضح، لنقل أنني استخدمت VirtualProtect وأريد تعتيمه باستخدام Sleep، ستقوم الأداة بالتلاعب بـ IAT بحيث يشير الثنك الذي يشير إلى VirtualProtect بدلاً من ذلك إلى Sleep. الآن عند تنفيذ الملف، سيقوم محمل ويندوز بتحميل Sleep بدلاً من VirtualProtect، وينقل التنفيذ إلى نقطة الدخول، ومن هناك سيتم إعادة توجيه التنفيذ إلى شيل كود الذي وضعته الأداة مسبقًا، للعثور على عنوان 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]
    يحتوي ملف التهيئة على التعتيمات المطلوبة (مكتبات DLL، رموز، ...).
    إليك قالب لمحتوى ملف التهيئة
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 (في الواقع أي api من kernel32 سيكون مقبولاً حتى لو لم يتم استيراده على الإطلاق).
التهيئات المستخدمة هي

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

إليك الناتج (يمكنك أيضًا استخدام المكتبة مباشرة كما هو موضح أعلاه).

pic2

مرة أخرى دعنا نلقي نظرة على واردات kernel32

pic3

لا وجود لـ SetLastError أو GetLastError
تأكيد أن الملفين سيعملان بشكل صحيح

pic4

التأثير

مفكك HexRays الخاص بـ IDA

pic5

مصحح IDA

pic6

Ghidra

pic7

ApiMonitor

pic8

ذلك لأن جميع أدوات التحليل الثابتة تعتمد على اسم API المكتوب في IAT والذي يمكن التلاعب به كما هو موضح.
بالنسبة لـ ApiMonitor، بسبب استخدام ربط IAT، توجد نفس المشكلة.

على الجانب الآخر، بالنسبة لأدوات مثل x64dbg، فإن أسماء API المعروضة ستعتمد فقط على ما يتم استدعاؤه فعليًا (وليس ما هو مكتوب في IAT).

pic9

إضافي

  • تفريغ PE المُعمَّى من الذاكرة لن يزيل التعتيم، لأن IAT المُتلاعَب به سيبقى كما هو.
  • الغرض الرئيسي من هذه الأداة هو تعطيل عملية التحليل (جعلها أبطأ).
  • يمكن للمرء تعتيم أي رمز مستورد (بالاسم أو بالترتيب) برمز آخر (اسم أو ترتيب).
  • يتم تنفيذ الشيل كود كأول استدعاء راجع TLS لمعالجة الرموز المُعمَّاة اللازمة لاستدعاءات TLS الأخرى قبل تنفيذ نقطة الدخول.
  • يتم توزيع الشيل كود ككود C، يتم إنشاؤه عند تجميع الأداة لتسهيل تحريره.
  • يتم حل أسماء الرموز المُعمَّاة بواسطة الهاش وليس بالاسم مباشرة.
  • تقوم الأداة بتعطيل إعادة التموضع وتجريد أي رموز تصحيح.
  • تنشئ الأداة قسمًا جديدًا rwx باسم .cobf لاحتواء الشيل كود والبيانات الأخرى المطلوبة.
  • يمكن استخدامها عدة مرات على نفس PE المُعمَّى.
  • تم اختباره فقط على Windows 10 x64.
  • احصل على المصدر باستخدام git clone https://github.com/d35ha/CallObfuscator.
  • قم بتنزيل الثنائيات من قسم الإصدارات.

المهام المستقبلية

  • تعتيم الشيل كود (ربما باستخدام obfusion).
  • دعم الرموز المحملة بالتأخير.
  • تقليل حجم القسم المنشأ.
  • التجزئة في وقت الترجمة.
  • اختبار أفضل.
تنزيل الأداة