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

[ تمت الإجابة ]تحويل رسائل النظام إلى نصوص

مغلق
بدأه C++er في 10 ديسمبر 2009 · 4 رد · 1,493 مشاهدة · في أرشيف قسم Windows APIs
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اقصد بتحويل رسائل النظام إلى نصوص انه اذا تم استقبال الرقم 0x29 من خلال uMsg الموجود داخل الـ wndproc يتم تحويلها إلى النص WM_ALTTABACTIVE.

اخر ما توصلت اليه موجود فى هذا الموضوع، و هو ما لا اعرف كيف اقوم بتطبيقه.

يقوم كاتب المقاله بالتعامل مع رقم الرساله بإعتباره Atom ثم يقوم بتمريره إلى الداله NtUserGetAtomName ليتم العوده بنص الرساله.

توجد بعض النقاط التى لا افهمها و هم:

* الداله NtUserGetAtomName موجوده داخل win32k.sys و لم يتم عمل export. و لا يمكن تحميل هذا الملف من خلال LoadLibrary.

* كاتب المقاله يقول انه يستخدم الداله NtUserGetAtomName من خلال المكتبه user32.dll فكيف فعل ذلك؟

ارجو إن كان احد يعرف كيف اقوم بهذه العمليه ان يرشدنى.

سؤالين اخرين

1 - كيف يمكن استدعاء داله لم يتم عمل export لها، حاولت استخدام الداله GetProcAddress و لكنها تعمل فقط مع الدوال التى تم عمل export لها.

2 - بعض مكتبات النظام تستخدم دوال موجوده داخل drivers، فهل يمكن استدعاء تلك الدوال من خلال تحميلى لأحد المكتبات التى تستخدمها، و إن كان يمكن فكيف تتم تلك العمليه.

و الله ولى التوفيق

تم تعديل هذه المشاركة بواسطة Muhammad alaa في 10 ديسمبر 2009 في 09:42

مدونتي: C++ Tips and Tricks

#2

إطلع على هذا الموضوع

http://www.wasm.ru/article.php?article=hooks_inside

هناك مثال بالدلفي في نهاية الموضوع

الموضوع باللغة الروسية , ترجمة google لا بأس بها . او إنتظر أحد خبراء اللغة الروسية الموجودين في المنتدى

#3

بعد عمل بحث في النت وإعادة قراءة المقال الذي ذكرت كان هناك نقطة غفلنا عنها

اقتباس
For any of you who’d ever want to convert a registered message into a readable name, here’s the NSIS code. Replace 0xc0c3 with the message identifier and 0×7E41FA8E with user32!NtUserGetAtomName and you’re good to go

ركز على ما أشير له باللون الأزرق .

بإستخدام تلك الدالة فقط يمكن الحصول على إسم الـ message المسجلة بالدالة RegisterWindowMessage

http://msdn.microsoft.com/en-us/library/ms644947(VS.85).aspx

ستجد في هذه الصفحة commet بعنوان Inverse of RegisterWindowMessage (GetClipboardFormatName)

ستجد في الصفحة التي فيها المقال الذي أشرت إليه في موضوعك احد الردود يشير إلى الدالة GetClipboardFormatName .

في الصفحة التي أشرت إليها في ردي السابق هناك إشارة لتلك الدالة أيضاً .

ملخص : ما ذكر فقط حول الـ message المسجلة بالدالة RegisterWindowMessage .

لا أظن أن هناك طريقة مشابهه للحصول على أسماء الـ System Message ...

تم تعديل هذه المشاركة بواسطة YaSeenTA في 10 ديسمبر 2009 في 17:14

#4

شاهد المرفق

WM_MSG.zip

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#5
اقتباس
ركز على ما أشير له باللون الأزرق .

بإستخدام تلك الدالة فقط يمكن الحصول على إسم الـ message المسجلة بالدالة RegisterWindowMessage

يبدو ان تسرعى جعلنى اغفل عن هذه النقطه فشكرا لك اخ ياسين.

اخ Game: شكرا على الملف و لكن هذا ليس ما اريده، فكل ما اريده هو معرفة الرسائل بشكل ديناميكى.

اقتباس
لا أظن أن هناك طريقة مشابهه للحصول على أسماء الـ System Message

يوجد و لكنى لا اعرف كيف، إليكم هذا الموضوع و الذى يتكلم عن الرساله WM_NCUAHDRAWCAPTION، الرد الثانى يقال فيه:

اقتباس
acording to the large table of all the windows messages at BFA4AD60 in the

checked build of XPSP2 win32k.sys, message 0xAE is WM_NCUAHDRAWCAPTION and

message 0xAF is WM_NCUAHDRAWFRAME

هنا توقفت، لإنى لا اعرف كيف قام بمعرفة الرسائل من داخل win32k.sys

و شكرا لكم

و الله ولى التوفيق

مدونتي: C++ Tips and Tricks

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…