عرض مشاركة واحدة
قديم منذ /02-01-2013, 07:18 PM   #1
سآرة
.:: إدارية الأقـسـام العامـة ::.

الصورة الرمزية سآرة

سآرة غير متواجد حالياً

 رقم العضوية : 16
 تاريخ التسجيل : Oct 2012
 الجنس : ~ إنثى
 البلد : مصر
 المشاركات : 392
 النقاط : 75
 قوة التقييم : سآرة will become famous soon enough

شكراً: 13
تم شكره 6 مرة في 6 مشاركة
Talking التشفير بتحميل الدوال داخل بوينتر [ Dynamic Call ]

التشفير, الدوال, call, dynamic, بتحميل, بوينتر, داخل

التشفير بتحميل الدوال داخل بوينتر [ Dynamic Call ] SnipeR (69).gif
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركآته

تشفير إستدعاء الدوال بطريقة الـ Dynamic Call
C++ : Language

بدايتآ أي برنامج حماية ال Imports Table
وهي القائمة اللتي تحتوي على دوال ال api's المحملة في التطبيق

وعن طريقها تكشف برامج الحماية بعض الطرق الخبيثة وأيضا عن طريق الإستدعائات
فكيف نتخطى هذآ الشيئ هنالك عدت طرق بكل تأكيد لاكن طريقتنا هنا هي تحميل الدالة في وقت تشغيل البرنامج وتتم عن طريق تعريف

typedef للدالة

مثال دالة WriteProcessMemory

تعريفها من MSDN :
كود PHP:
BOOL WINAPI WriteProcessMemory(   _In_   HANDLE hProcess,   _In_   LPVOID lpBaseAddress,   _In_   L

PCVOID lpBuffer
,   _In_   SIZE_T nSize,   _Out_  SIZE_T *lpNumbe 
نقوم بتجهيز البوينتر لها عن طريق تعريفه في الجينيرال سكشن :
كود PHP:
typedef BOOL WINAPI xWriteProcessMemory)(HANDLE hProcess,LPVOID lpBaseAddress,LPCVOID lpBuffer,SIZE_T nSize,SIZE_T lpNumberOfBytesWritten); 
ثم تعريف المتغير اللذي سيحمل البوينتر
كود PHP:
overflow: auto">
 xWriteProcessMemory WriteProcessMemory

ثم نقوم بتأشيره للدالة
كود PHP:
WriteProcessMemory = (xWriteProcessMemory)GetProcAddress(LoadLibraryA("kernel32"),"WriteProcessMemory"); // x 
وعند الرغبة في إستدعاء الدالة يتم إستدعائها عن طريق المؤشر WriteProcessMemory اللذي قمنا بتعريفه وتمرير البارمترات له بكل بساطة

أتمنى أن تكون الطريقة مفيدة رغم معرفتها عند الأغلبية لكن في الإعادة إفادة لمن لايعرف الطريقة ولزيادة الخبرة

والسلام عليكم ورحمة الله وبركاته




hgjatdv fjpldg hg],hg ]hog f,dkjv F Dynamic Call D call dynamic






  رد مع اقتباس
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47