:: مطرود من قبل الإدارة ::
|
ناقش بينى وبينكم ولا تقولو لاحد :)
دوال ال API والحماية
ما هيا لو شرهتها فالموضوع يحتاج اشهر ولاكن لنفرض لنفرض مثلا ان لدينا برنامجين احداهما normal.exe (مثلا msn.exe) و الآخر nsm.exe (وهو ربما يكون virus)
كيف بامكاننا عن طريق مراقبة الدوال API ان نميز بين البرنامجين من حيث الاداء، بمعنى كيف يمكننا ان نكتشف عن طريق مراقبة دوال ال API ان nms.exe هو virus و ليس برنامج عادي؟
مثال آخر: لو تخيلنا انه يوجد في جهازي Trojan يستقبل اوامر عن بعد، مثلا امر الهجوم على جهاز آخر، اوامر التجسس على الجهاز، هل سنرى اشياء غريبه تحدث في ال API calls، ما اقصده بكلمة غريبه هواستدعاء هذه الدوال بشكل يدعو الى الريبة و الشك
كيف يمكن معرفة ما يحدث بالضبط، هل هناك برامج مخصصه ل معرفة ما يحدث؟
فكر
حسننا
http://www.geocities.com/SiliconValley/2072/prgw32rg.htm
http://www.codersource.net/win32_registry_operations.html
http://www.functionx.com/win32/
http://www.hal-pc.org/~johnnie2/windows.html
http://www.winprog.org/tutorial/
لمعرفة المزيد و التعمق فيها
بالنسبة للمعلومات التي تحتاجها عن الكمبيوتر , يمكن الحصول عليها عن طريق دوال API , دون الحاجه للحصول عليها من الريجيستري وقد رأيت امثله في المنتدى وعلى النت , مثلا الدالة GetSystemInfo تعيد بعض المعلومات عن المعالج
وللحصول مثلا على سرعة المعالج , يمكنك قياسها يدويا بهذا الشكل
كود PHP:
#include <windows.h> #include <iostream> using namespace std; inline unsigned long long GetCPUTick() { _asm rdtsc; } DWORD GetCPUSpeed(void) { const DWORD DELAYTIME = 125; unsigned long long Timer; DWORD PriorityClass = GetPriorityClass(GetCurrentProcess()); int ThreadPriority = GetThreadPriority(GetCurrentThread()); SetPriorityClass(GetCurrentProcess(), REALTIME_PRIORITY_CLASS); SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_TIME_CRITICAL); Sleep(1); Timer = GetCPUTick(); Sleep(DELAYTIME); Timer = GetCPUTick() - Timer; SetThreadPriority(GetCurrentThread(), ThreadPriority); SetPriorityClass(GetCurrentProcess(), PriorityClass); return Timer / (1000 * DELAYTIME); } void main(){ cout << " CPU Speed : " << GetCPUSpeed() << " MHz." << endl; }
بارك الله فيكم على الاستماع لى
|