الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

[ تمت الإجابة ]ما هو أفضل Api Monitor تستخدمه

مغلق
بدأه AND في 6 أكتوبر 2008 · 5 رد · 4,042 مشاهدة · في أرشيف قسم Windows APIs
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

ما هو أفضل API Monitor تستخدمه

KAM من www.kakeeware.com

ApiMonitor من www.apimonitor.com

ApiMonitor من www.rohitab.com

FileMonitor+RegMonitor+مجموعة SysInternals من www.sysinternals.com

او غيرها

يرجى ذكر سبب التفضيل وذكر المزايا والعيوب

تم تعديل هذه المشاركة بواسطة AND في 6 أكتوبر 2008 في 17:14

#2

لم تذكرها كلها...بعضها بدون ترتيب

kerberos من Rustem Fasihov ليس له موقع

WinAPIOverride32 من Jacquelin POTIER الموقع http://jacquelin.potier.free.fr/winapioverride32/

Auto Debug من http://www.autodebug.com/

API Spy من vitaly evseenko الموقع http://www.matcode.com/apis32.htm

SpyStudio من http://www.nektra.com/products/spystudio/

وهناك اخرى...

d4baa0.gif
#3

وانت اخي محمد ماذا تفضل منها ؟

تختلف البرامج السابقة في كثير من المزايا وفي الاداء، سأعرض بعضها من وجهة نظر معينة:

XXXXXXXXXX

Points

SysInternals GroupKAMApiMonitorSpyStudioAPISpy32Auto Debug ProfessionalWinAPIOverride32ApiMonitor by rohitabReal TimeYESNONOYESNONONONOExplain ParametersYESSome of FunctionNONONONONONOBefor&After ParametersNONOYESYESNOYESNONODefine Exact API CallsNONONONOYESNOYESNOAbility to Extended (ADD New Dll & more Functions) NONOYESNONOAutoYESNOMonitor Multi ProcessYESNONOYESNONOYESYESLicense FreeFreeSharewareFreeSharewareSharewareFree under GPL Free[trrrrr]

ساشرح النقاط الموجودة في الجدول:

Real Time:

وهي ان تتم المراقبة وتعرض النتائج دون ان يؤثر ذلك بالتأخير الزمني على وظائف البرنامج و عمله،ومجموعة ال SysInternals و SpyStudio

يحققان هذا الشيء والحقيقية ان الSpyStudio يقوم فقط بعمل Hook لبروسس يعمل (ِِِOnly Attach Process) ولا يدعم مراقبة البرنامج في بداية تشغيله وهذا اعتبره احد العيوب الكبيرة فيه.

اما باقي البرامج فعلى حسب كثافة اختيار الدوال محل المراقبة وطبيعة عمل هذه الدوال يتم تاخيرها ،فمثلا عند اختيار مراقبة الدالة SendMessage وهي من الدوال الكثيفة الاستخدام في البرامج ذات الواجهة فسيمضي وقت اطول لعمل البرنامج المُراقب.

================================================================================

Explain Parameters :

يعكس شرح لبارامترات دوال ال API التي يتم عرضها ،كمثال(من برنامج KAM ):

771D9C30 kernel32.dll -> CreateFileA
aStr = 001C87C8 = C:\Documents and Settings\..\Cookies\index.dat
arg = C0000000 (-1073741824)
shareMode = [00000003] FILE_SHARE_READ | FILE_SHARE_WRITE
arg = 00000000 (0)
createDisp = [00000004] OPEN_ALWAYS
flagsAndAttr = [10000000]
handle = [00000000]

بينما في ApiMonitor :

PAnsiChar lpFileName: C:\Documents and Settings\..\Local Settings\History\History.IE5\index.dat
DWORD dwShareMode: 3 (0x3)
PSecurityAttributes lpSecurityAttributes: (null)
DWORD dwCreationDisposition: 4 (0x4)
DWORD dwFlagsAndAttributes: 268435456 (0x10000000)
THandle hTemplateFile: 0 (0x0)
DWORD dwDesiredAccess: 3221225472 (0xC0000000)

(هنا KAM أعطى شرح موسع مثل FILE_SHARE_READ | FILE_SHARE_WRITE و OPEN_ALWAYS ولم يكتفي فقط بعرض ارقام مما يغني عن الرجوع لشرح الدالة)

اما برامج SysInternals فهي متميزة بالتوضيح فمثلا برنامج FileMonitor يعطي تفصيل دقيق لما يجري على الملفات فقط:

post-77919-1223944612_thumb.jpg

فيعرض الكثير من المعلومات الدقيقة مثل (Create,Open,Close,Read,Write,Query Information,Set Infomation ....etc )

فمن ناحية Create اذا عرضها فيعني انشاء حقيقي للملف وليس المعنى العام لCreateFile الذي قد يعني انشاء او فتح ، فيميز بين Create و Open اضافة الى معلومات اخرى موسعة

================================================================================

Befor&After Parameters :

هذا يعني ان البرنامج يعرض بارامترات الدالة قبل استدعاءها وبعدها للحصول على قيمة بارمترات معينة لبعض الدوال التي تستخدمهذه البارامترات لتخزين نتائج بها ( WinAPIOverride32 لايعرض Befor&After Parameters الا انه يعرض Befor&After All Register )

================================================================================

Define Exact API Calls :

وتعني عرض الاستدعاء الحقيقي للبرنامج وألا تدخل الاستدعاءات الضمنية للدوال للتوضيح اكثر:

شغل برنامج KAM وقم بمراقبة برنامج KAM نفسه باختيار الدالة CreateFileA سيُعرض ما يلي:

KaKeeware Application Monitor 1.32, http://www.kakeeware.com

Creating process: name=C:\Documents and Settings\..\Desktop\kam_unpacked.exe, cmdline=
Opening process: 000003C0
Process is ready to be analyzed
Module ntdll.dll accessed at 7C900000
Module KERNEL32.dll accessed at 7C800000
Module PSAPI.DLL accessed at 76BF0000
Module RPCRT4.dll accessed at 77E70000
Module ADVAPI32.dll accessed at 77DD0000
Module USER32.dll accessed at 77D40000
Module GDI32.dll accessed at 77F10000
Module msvcrt.dll accessed at 77C10000
Module ole32.dll accessed at 774E0000
Module OLEAUT32.dll accessed at 77120000
Module SHLWAPI.dll accessed at 77F60000
Module SHELL32.dll accessed at 7C9C0000
Module COMCTL32.dll accessed at 773D0000
Module comdlg32.dll accessed at 763B0000
Module IMM32.dll accessed at 76390000
Module IMM32.dll accessed at 76390000
Module IMM32.dll accessed at 76390000
Module KERNEL32.dll accessed at 7C800000
Module GDI32.dll accessed at 77F10000
Module LPK.dll accessed at 629C0000
Module KERNEL32.dll accessed at 7C800000
Module KERNEL32.dll accessed at 7C800000
Module KERNEL32.dll accessed at 7C800000
Module KERNEL32.dll accessed at 7C800000
Module COMCTL32.dll accessed at 773D0000
Module KERNEL32.dll accessed at 7C800000
Module COMCTL32.dll accessed at 773D0000
Module LPK.dll accessed at 629C0000
Module KERNEL32.dll accessed at 7C800000
Module KERNEL32.dll accessed at 7C800000
Module LPK.dll accessed at 629C0000
Module KERNEL32.dll accessed at 7C800000
Module KERNEL32.dll accessed at 7C800000
Module RPCRT4.dll accessed at 77E70000
Module UxTheme.dll accessed at 5AD70000
Module UxTheme.dll accessed at 5AD70000
Module UxTheme.dll accessed at 5AD70000
Module UxTheme.dll accessed at 5AD70000
Module UxTheme.dll accessed at 5AD70000
Module UxTheme.dll accessed at 5AD70000
Module ntdll.dll accessed at 7C900000
Module IMM32.dll accessed at 76390000
Module KERNEL32.dll accessed at 7C800000
Module MSCTF.dll accessed at 74720000
00407FCD kernel32.dll -> CreateFileA
aStr = 0012FE7C = C:\Documents and Settings\..\Desktop\kam_unpacked.ini
arg = C0000000 (-1073741824)
shareMode = [00000000]
arg = 00000000 (0)
createDisp = [00000003] OPEN_EXISTING
flagsAndAttr = [00000000]
handle = [00000000]

Module ntdll.dll accessed at 7C900000
Module KERNEL32.dll accessed at 7C800000
Module USER32.dll accessed at 77D40000
Module GDI32.dll accessed at 77F10000
Module VERSION.dll accessed at 77C00000
Module ole32.dll accessed at 774E0000
Module msctfime.ime accessed at 755C0000
Module ntdll.dll accessed at 7C900000
Module msctfime.ime accessed at 755C0000
Module UxTheme.dll accessed at 5AD70000
Module KERNEL32.dll accessed at 7C800000
Module CLBCatQ.DLL accessed at 76FD0000
Module CLBCatQ.DLL accessed at 76FD0000
Module ole32.dll accessed at 774E0000
Module KERNEL32.dll accessed at 7C800000
Module ADVAPI32.dll accessed at 77DD0000
Module KERNEL32.dll accessed at 7C800000
Module ADVAPI32.dll accessed at 77DD0000
Module KERNEL32.dll accessed at 7C800000
Module KERNEL32.dll accessed at 7C800000
Module COMCTL32.dll accessed at 773D0000
Module KERNEL32.dll accessed at 7C800000
Module SHLWAPI.dll accessed at 77F60000
Module KERNEL32.dll accessed at 7C800000
Module KERNEL32.dll accessed at 7C800000
Module COMCTL32.dll accessed at 773D0000
Module RICHED20.dll accessed at 74E30000
Module COMCTL32.dll accessed at 773D0000
Module KERNEL32.dll accessed at 7C800000
Module KERNEL32.dll accessed at 7C800000
Module COMCTL32.dll accessed at 773D0000
Module KERNEL32.dll accessed at 7C800000
Module SHLWAPI.dll accessed at 77F60000
Module USER32.dll accessed at 77D40000
Module SHDOCVW.dll accessed at 77760000
Module SHELL32.dll accessed at 7C9C0000
Module ole32.dll accessed at 774E0000
Module ole32.dll accessed at 774E0000
Module ole32.dll accessed at 774E0000
Module SHELL32.dll accessed at 7C9C0000
Module WININET.dll accessed at 771B0000
Module Secur32.dll accessed at 77FE0000
Module SHELL32.dll accessed at 7C9C0000
Module KERNEL32.dll accessed at 7C800000
771D9C30 kernel32.dll -> CreateFileA
aStr = 001C8B70 = C:\Documents and Settings\..\Local Settings\Temporary Internet Files\Content.IE5\index.dat
arg = C0000000 (-1073741824)
shareMode = [00000003] FILE_SHARE_READ | FILE_SHARE_WRITE
arg = 00000000 (0)
createDisp = [00000004] OPEN_ALWAYS
flagsAndAttr = [10000000]
handle = [00000000]
771D94FE kernel32.dll -> CreateFileA
aStr = 001C8B70 = C:\Documents and Settings\..\Local Settings\Temporary Internet Files\Content.IE5\index.dat
arg = C0000000 (-1073741824)
shareMode = [00000003] FILE_SHARE_READ | FILE_SHARE_WRITE
arg = 00000000 (0)
createDisp = [00000004] OPEN_ALWAYS
flagsAndAttr = [10000000]
handle = [00000000]
771D9C30 kernel32.dll -> CreateFileA
aStr = 001C87C8 = C:\Documents and Settings\..\Cookies\index.dat
arg = C0000000 (-1073741824)
shareMode = [00000003] FILE_SHARE_READ | FILE_SHARE_WRITE
arg = 00000000 (0)
createDisp = [00000004] OPEN_ALWAYS
flagsAndAttr = [10000000]
handle = [00000000]
771D94FE kernel32.dll -> CreateFileA
aStr = 001C87C8 = C:\Documents and Settings\..\Cookies\index.dat
arg = C0000000 (-1073741824)
shareMode = [00000003] FILE_SHARE_READ | FILE_SHARE_WRITE
arg = 00000000 (0)
createDisp = [00000004] OPEN_ALWAYS
flagsAndAttr = [10000000]
handle = [00000000]
771D9C30 kernel32.dll -> CreateFileA
aStr = 001C8D78 = C:\Documents and Settings\..\Local Settings\History\History.IE5\index.dat
arg = C0000000 (-1073741824)
shareMode = [00000003] FILE_SHARE_READ | FILE_SHARE_WRITE
arg = 00000000 (0)
createDisp = [00000004] OPEN_ALWAYS
flagsAndAttr = [10000000]
handle = [00000000]
771D94FE kernel32.dll -> CreateFileA
aStr = 001C8D78 = C:\Documents and Settings\..\Local Settings\History\History.IE5\index.dat
arg = C0000000 (-1073741824)
shareMode = [00000003] FILE_SHARE_READ | FILE_SHARE_WRITE
arg = 00000000 (0)
createDisp = [00000004] OPEN_ALWAYS
flagsAndAttr = [10000000]
handle = [00000000]
Module KERNEL32.dll accessed at 7C800000
Module KERNEL32.dll accessed at 7C800000
Module KERNEL32.dll accessed at 7C800000
Module COMCTL32.dll accessed at 773D0000
Module KERNEL32.dll accessed at 7C800000
Module SHLWAPI.dll accessed at 77F60000
Module urlmon.dll accessed at 77260000
Module SHELL32.dll accessed at 7C9C0000
Module urlmon.dll accessed at 77260000
Module ole32.dll accessed at 774E0000
Module OLEAUT32.dll accessed at 77120000
Module OLEAUT32.dll accessed at 77120000
Module ole32.dll accessed at 774E0000
Module OLEAUT32.dll accessed at 77120000
Module urlmon.dll accessed at 77260000
Module KERNEL32.dll accessed at 7C800000
Module KERNEL32.dll accessed at 7C800000
Module COMCTL32.dll accessed at 773D0000
Module KERNEL32.dll accessed at 7C800000
Module SHLWAPI.dll accessed at 77F60000
Module KERNEL32.dll accessed at 7C800000
Module VERSION.dll accessed at 77C00000
Module SHELL32.dll accessed at 7C9C0000
Module MSHTML.dll accessed at 7D4A0000
Module urlmon.dll accessed at 77260000
Module OLEAUT32.dll accessed at 77120000
Module KERNEL32.dll accessed at 7C800000
Module KERNEL32.dll accessed at 7C800000
Module KERNEL32.dll accessed at 7C800000
Module COMCTL32.dll accessed at 773D0000
Module KERNEL32.dll accessed at 7C800000
Module OLEAUT32.dll accessed at 77120000
Module OLEAUT32.dll accessed at 77120000
Module ole32.dll accessed at 774E0000
Module KERNEL32.dll accessed at 7C800000
Module urlmon.dll accessed at 77260000
Module KERNEL32.dll accessed at 7C800000
Module KERNEL32.dll accessed at 7C800000
Module KERNEL32.dll accessed at 7C800000
Module KERNEL32.dll accessed at 7C800000
Module COMCTL32.dll accessed at 773D0000
Module KERNEL32.dll accessed at 7C800000
Module MLANG.dll accessed at 75CF0000
75D0CE4A kernel32.dll -> CreateFileA
aStr = 00127128 = C:\WINDOWS\system32\mlang.dat
arg = 80000000 (-2147483648)
shareMode = [00000001] FILE_SHARE_READ
arg = 00000000 (0)
createDisp = [00000003] OPEN_EXISTING
flagsAndAttr = [00000080] FILE_ATTRIBUTE_NORMAL
handle = [00000000]
75D07979 kernel32.dll -> CreateFileA
aStr = 00126FCC = C:\WINDOWS\fonts\ARIAL.TTF
arg = 80000000 (-2147483648)
shareMode = [00000001] FILE_SHARE_READ
arg = 00000000 (0)
createDisp = [00000003] OPEN_EXISTING
flagsAndAttr = [00000080] FILE_ATTRIBUTE_NORMAL
handle = [00000000]
75D07979 kernel32.dll -> CreateFileA
aStr = 00126FCC = C:\WINDOWS\fonts\ARIAL.TTF
arg = 80000000 (-2147483648)
shareMode = [00000001] FILE_SHARE_READ
arg = 00000000 (0)
createDisp = [00000003] OPEN_EXISTING
flagsAndAttr = [00000080] FILE_ATTRIBUTE_NORMAL
handle = [00000000]
75D07979 kernel32.dll -> CreateFileA
aStr = 00126FCC = C:\WINDOWS\fonts\ARIALBD.TTF
arg = 80000000 (-2147483648)
shareMode = [00000001] FILE_SHARE_READ
arg = 00000000 (0)
createDisp = [00000003] OPEN_EXISTING
flagsAndAttr = [00000080] FILE_ATTRIBUTE_NORMAL
handle = [00000000]
75D07979 kernel32.dll -> CreateFileA
aStr = 00126FCC = C:\WINDOWS\fonts\ARIALBI.TTF
arg = 80000000 (-2147483648)
shareMode = [00000001] FILE_SHARE_READ
arg = 00000000 (0)
createDisp = [00000003] OPEN_EXISTING
flagsAndAttr = [00000080] FILE_ATTRIBUTE_NORMAL
handle = [00000000]
75D07979 kernel32.dll -> CreateFileA
aStr = 00126FCC = C:\WINDOWS\fonts\ARIALI.TTF
arg = 80000000 (-2147483648)
shareMode = [00000001] FILE_SHARE_READ
arg = 00000000 (0)
createDisp = [00000003] OPEN_EXISTING
flagsAndAttr = [00000080] FILE_ATTRIBUTE_NORMAL
handle = [00000000]
75D07979 kernel32.dll -> CreateFileA
aStr = 00126FCC = C:\WINDOWS\fonts\COUR.TTF
arg = 80000000 (-2147483648)
shareMode = [00000001] FILE_SHARE_READ
arg = 00000000 (0)
createDisp = [00000003] OPEN_EXISTING
flagsAndAttr = [00000080] FILE_ATTRIBUTE_NORMAL
handle = [00000000]
75D07979 kernel32.dll -> CreateFileA
aStr = 00126FCC = C:\WINDOWS\fonts\COUR.TTF
arg = 80000000 (-2147483648)
shareMode = [00000001] FILE_SHARE_READ
arg = 00000000 (0)
createDisp = [00000003] OPEN_EXISTING
flagsAndAttr = [00000080] FILE_ATTRIBUTE_NORMAL
handle = [00000000]
75D07979 kernel32.dll -> CreateFileA
aStr = 00126FCC = C:\WINDOWS\fonts\COURBD.TTF
arg = 80000000 (-2147483648)
shareMode = [00000001] FILE_SHARE_READ
arg = 00000000 (0)
createDisp = [00000003] OPEN_EXISTING
flagsAndAttr = [00000080] FILE_ATTRIBUTE_NORMAL
handle = [00000000]
75D07979 kernel32.dll -> CreateFileA
aStr = 00126FCC = C:\WINDOWS\fonts\COURBI.TTF
arg = 80000000 (-2147483648)
shareMode = [00000001] FILE_SHARE_READ
arg = 00000000 (0)
createDisp = [00000003] OPEN_EXISTING
flagsAndAttr = [00000080] FILE_ATTRIBUTE_NORMAL
handle = [00000000]
75D07979 kernel32.dll -> CreateFileA
aStr = 00126FCC = C:\WINDOWS\fonts\COURI.TTF
arg = 80000000 (-2147483648)
shareMode = [00000001] FILE_SHARE_READ
arg = 00000000 (0)
createDisp = [00000003] OPEN_EXISTING
flagsAndAttr = [00000080] FILE_ATTRIBUTE_NORMAL
handle = [00000000]
75D07979 kernel32.dll -> CreateFileA
aStr = 00126FCC = C:\WINDOWS\fonts\LUCON.TTF
arg = 80000000 (-2147483648)
shareMode = [00000001] FILE_SHARE_READ
arg = 00000000 (0)
createDisp = [00000003] OPEN_EXISTING
flagsAndAttr = [00000080] FILE_ATTRIBUTE_NORMAL
handle = [00000000]

ستظهر استدعاءات كثيرة للدالة CreateFileAبينما في الحقيقة برنامج KAM يستدعي الدالة CreateFileA بشكل مباشر لمرة واحدة فقط ليقرأ محتويات الملف kam.ini والمشار اليه فوق باللون الازرق ولكن انظر الى استدعاءات الدالة باللون الاحمر بعدModule MLANG.dll accessed at 75CF0000هذه الاستدعاءات لا يطلبها البرنامج بشكل مباشر لكن MLANG.dll هي التي تطلبها في سياق(in Context) عملها داخل البرنامج

ولمن يستعملون الDebugger يماثل الامر الفرق بين وضع نقطة توقف(Break Point) للاستدعاء داخل البرنامج ووضع نقطة توقف للدالة في مصدرها (المنبع) اي وضع علامة توقف لل Export للدالة ، (لاحظ اختلاف العنوان Address ) :

post-77919-1223944499_thumb.jpg

وهكذا يتضح ان برامج ال API Monitors تقوم بعمل Hook للدوال في مصدرها اي في المكان الذي يتواجد فيه ال Export الخاص بدالة معينة

وهنا صراحة ارى مشكلة معينة وهي عدم دقة الحصول على الاستدعاءات المباشرة للبرنامج وظهور كثير من النتائج غير المشوشة للمُراقب في المتابعة ويستهلك الكثير من وقته وتركيزه للحصول على النتائج المباشرة لعملية المراقبة.

وهنا يتميز برنامج ال WinAPIOverride32 في عرض الاستدعاء المباشر للبرنامج مهملا باقي النتائج مما يعطي عرض دقيق ونقي لما يجري عند المراقبة

ايضا في كثير من الاحيان وفي ويندوز تستدعي دوال ال ANSI التي تنتهي ب A دوال ال Unicode التي تنتهي ب W

فمثلا اختيار كل من CreateFileA و CreateFileW للمراقبة سييعطي Duplicated Result ويؤخر في عملية المراقبة وتتصبح عملية مرهقة وصعبة

(ملاحظة هناك خيار لبرنامج ApiMonitor لتفادي هذه الحالة فقط ، الا ان WinAPIOverride32 يتجواز جميع ما سبق كما ذكر)

وهذه الميزة حاسمة عندي شخصيا في تفضيل WinAPIOverride32 على غيره.

================================================================================

Ability to Extended (ADD New Dll & more Functions) :

وهي القدرة على وضع مكتبات و Function جديدة لمراقبتها في فيما بعد كمثال وضع ملفات Dll الخاصة بياهو لمراقبتها !!

================================================================================

================================================================================

================================================================================

الان نظرة الى البرامج في الداخل:

SysInternals Group :

والتي تحتوي على برامج المراقبة التالية (FileMonitor+RegMonitor+ProcessMonitor+PortMonitor+DiskMonitor ) مجموعة متخصصة جدا في عملها FileMonitor اشهرها واكثرها استخداما تستطيع مراقبة اي نوع من الملفات تختاره وليس فقط الملفات التنفيذية وهو متوفر المصدر هو واخوه RegMonitor على الشبكة، وهي كثير التفاصيل الدقيقة الا ان هذه التفاصيل قد تصبح حشو زائد وكثرتها يسبب التشويش والبعد عن هدف معين اضافة الا ان هذه البرامج حالة خاصة فلا يمكن تعيين دالة بعينها لمراقبتها وانما تقوم بمراقبة عامة في تخصصها لكن وجدت ان هناك اختلاف كبير في نتائج File و Reg عند مراقبة برنامج مضغوط ونفس البرنامج بعد فك ضغطه حيث لم تعد تظهر نتائج عمليات حقيقية لبرنامج بعد فك ضغطه!!!!

KAM :

احد الخيارات المفضلة لدي جدا، فهو سريع وخفيف وهو اصغرها حجما وقليل المشاكل والاخطاء واقل الواجهات تعقيدا وبه شرح لبارامترات العديد من الدوال اضافة الى ترتيبه لأغراض الدوال في مجموعات معينة(Function Categories) بطريقة مرتبة تعطي فكرة عن اقسام هذه الدوال انظر الصورة المرفقة

وهو يعرض النتائج على شكل صفحة HTML مدعمة بالالوان مما يسهل عمليات البحث والنسخ وسرعة القراءة.

post-77919-1223944685_thumb.png

ApiMonitor :

مراقب جيد جدا يدعم عدد كبير من الدوال اضافة الى امكانيات توسيع هذه القائمة، به ميزة Show GetLastError لمعرفة نتيجة معينة بعد استدعاء دالة ما،بامكانه تصدير النتائج الى عدة هيئات (Excel,Xm,Html&txt)، وهو غير مجاني.

SpyStudio :

يراقب فقط العمليات التي تعمل في الويندوز حاليا ولا يمكنه مراقبة العمليات لحظة نشوءها ،وهو Real Time Monitor

وبه ميزة Wide Hooking التي تقوم بمراقبة دالة معينة لعدة عمليات مجتمعة، كما به (Function Categories) مثل نظيره السابق KAM

APISpy32 :

حاولت كثيرا مع هذا البرنامج الا انه في اغلب الاحيان لا يعمل ، قليل المزايا ،وقاعدة الدوال المعرفة لديه قليلة نسبيا

بصراحة هو عندي في آخر السلم،وفوق كل هذا غير مجاني.

Auto Debug Professional :

لا باس به ، يدعم GetLastError ويعرض الرسالة النصية الخاصة برمز هذا ال Error ،وايضا يعرض ال Exception code في حال حدوثها ويدعم مراقبة Remote Process متفردا بهذه النقطة عن باقي نظرائه ،ولكن به مشكلة وهي عند اختيار برنامج لمراقبته فانه يعرض فقط المكتبات الموجودة

في ال Import Table لهذا البرنامج فاذا كان الملف مضغوط فانه يقلل من عدد الدوال محل المراقبة كما نلا حظ في الصورة عند اختيار برنامج KAM وهو مضغوط

فانه يعرض ما يلي

post-77919-1223944755_thumb.png

ولكن بعد ان يعمل ويفك ضغط البرنامج في الذاكرة تصبح الخيارات

post-77919-1223944788_thumb.png

مما يحرم من اختيار دوال اخرى لمراقبنها عند بداية عمل البرنامج

WinAPIOverride32 :

البرنامج المدجج بالكثير من المزايا ،يدعم GetLastError ويعرض الرسالة النصية الخاصة برمز هذا ال Error ، عمل Hook لبرامج NET.

و Hook لل COM ، وتصدير النتائج بعدة هيئات (Html,Txt,Xml,Csv)،والخاصية الكبيرة فيه عمل Overridig للدوال التي تمكن من

اختيار دالة معينة من ان تحل محل الدالة المُراقبة، اضافة الى ال Documentation الذي يزوده والمحتوي على معلومات قوية ومفيدة في هذا المجال

وفوق كل هذا فهو مفتوح المصدر تحت اتفاقية GPL ومُبرمَج بال ++C مما يفيد اصحاب هذه اللغة بالاستفادة من هذه الاكواد، والعديد من المزايا الاخرى وهو المفضل عندي صراحة.

ApiMonitor by rohitab :

يدعم GetLastError ، يدعم القيام بعمل Hook للدالة GetProcAddress ،يحتوي على IOCTL Decoder

لكنه يقوم بمراقبة الدوال بناء على API Categories ،ولا يمكن اختيار دالة معينة بعينها لمراقبتها فقط

post-77919-1223944872_thumb.jpg

والسؤال الاهم هل انت مهتم بهذه الادوات ؟

تم تعديل هذه المشاركة بواسطة AND في 14 أكتوبر 2008 في 22:32

#4
اقتباس
والسؤال الاهم هل انت مهتم بهذه الادوات ؟

حسب الحاجة أخي AND !

ربما لا يفي أي منهم بالغرض الذي اريده وأضطر الى كتابة واحد موجه فقط للغرض الذي اريده .

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#5

اهلا GM

أردت ان اسالك عن ال FileMonitor بما ان لديك خبرة في مواضيع ال Kernel كيف يتم بالضبط اقتناص

بالرجوع للسورس فتقريبا اي امر يحول الى ال Driver الخاص بالبرنامج ،يعني ان الDriver يقوم بالعمل الحقيقي

لكن عند فتح احد برامج ال kernel واختيار ال SSDT لا يظهر هناك اي Hook ، وكنت اتوقع وجوده على ZwCreateFile وأشقائه

وما اثار سؤالي حقيقة هو اظهاره لنتائج لا يمكن للباقي اظهارها مثلا :

فمثلا اذا قام برنامج بالعمل على مفتاح في الرجستري في HKLM\Software فيظهر في النتائج ملف Software.log المسؤول عن المفتاح السابق:

post-77919-1224099782_thumb.jpg

سؤال آخر : كما تعلم اذا اردنا برنامجنا ان يصل بدرايفر معين نستخدم IODeviceControl، ولكن ماذا بالعكس اذا اردنا ان ينقل الدرايفر قيمة معينة للبرنامج؟

#6

أهلا AND :

Filemon يقوم بعمل hook على الـFSD او الـFile-System Driver .

لكل نوع من الملفات يوجد نظام خاص لادارته (File-System) , مثلا اذا اردت التعامل مع ملف FAT32 ستتجه فورا الى الـdevice الخاص به والذي بدوره يتبع fastfat.sys أما عند التعامل مع ملفات NTFS فنتجه لـNtfs.sys .

طبعا العمل كـfilter-driver افضل واضمن في الحصول على النتائج من مجرد عمل hook على الـSDT .

اقتباس
سؤال آخر : كما تعلم اذا اردنا برنامجنا ان يصل بدرايفر معين نستخدم IODeviceControl، ولكن ماذا بالعكس اذا اردنا ان ينقل الدرايفر قيمة معينة للبرنامج؟

هناك طرق اخرى مثل استخدام الـEvents او SharedMemory (ستجد امثلة على CodeProject) .

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

هذا الموضوع مغلق.

مواضيع مشابهة