تقييم الموضوع :
  • 1 أصوات - بمعدل 5
  • 1
  • 2
  • 3
  • 4
  • 5
[سلسلة ادوات المبرمج] {1} - اداة مراقبة الريجستري RegFromApp
#1
بسم الله الرحمن الرحيم

والصلاة والسلام على اشرف الخلق محمد وعلى اله الطيبين والطاهرين

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


--


مقدمة عن السلسلة


نرحب بكم في سلسلة دروس جديدة تحت مسمى [سلسلة ادوات المبرمج] ومن الاسم يتضح ان السلسلة تشرح بعض الادوات التي تساعد المبرمج في اداة عمله.

من عادتي ان اقوم بكتابة عنوانين المقالات في النوت باد قبل كتابة المقالات وهذا اسلوب من اساليب التخطيط < سأقوم بعمل سلسلة لاحقة لكيفية التخطيط لمشاريعك بشكل سليم.


المهم ، تتكون هذه السلسة من 3 مقالات :-

[سلسلة ادوات المبرمج] {1} - اداة مراقبة الريجستري RegFromApp
[سلسلة ادوات المبرمج] {2} - اداة تحليل صفحات الويب HAPXPathFinder
[سلسلة ادوات المبرمج] {3} - اداة تحليل طلبات الويب Live Http Header
[سلسلة ادوات المبرمج] {4} - اداة تحليل البرامج ++Spy

اعلم ان هناك سلسلة لم اكملها وهي [سلسلة التحكم] وأنا لم انسى ذلك ، لكني بحاجة الى معلومات اكثر لكيفيات تخطي الحمايات ليصبح المقال الخامس موسوعة علمية ومرجع كبير .

المهم نتابع معا هذه المقالة الرائعة








ماهي أداة RegFromApp


كلنا يعلم ماهو الRegistry وكيف يعمل ، حيث ان الRegistry مساحة لحفظ اعدادات الوندوز وحتى اعدادات بعض البرامج ، ويتطلب تغيير هذه الاعدادات معرفة مفاتيح القيم للوصول اليها وتعديلها.

--

الان هذا الخيار يقوم بإظهار رموز الدرايفرات :-



فلو قمت بتفعيله ، سيقوم الوندوز بعرض رموز الدرايفرات :-



واما لو قمت بإلغاء تفعيله ، لن تظهر الرموز :-



--

طيب لو طلب منك العميل ان تقوم بإلغاء تفعيل هذا الخيار برمجيا (بالكود) فكيف ستفوم بفعل ذلك ؟

طبعا اغلبنا يعرف الفئات والدوال التي تتعامل مع الريجستري ، ولهذا الكل يعرف انه لابد لنا من معرفة مفتاح هذا الخيار لكي نغيره قيمته ، فكيف نعرف المفتاح ؟


هناك طريقتين :-

1- البحث في قوقل
2- استخدام اداة RegFromApp


طبعا لن نتحدث عن الطريقة الاولى لأن الكل يعرف يبحث في قوقل .









استخدام اداة RegFromApp

اولا علينا تنزيل الاداة من موقعها وهي اداة مجانية :

RegFromApp

والان اتبع الشرح المصور:-


الان يجب ان نذهب لذلك الاعداد


نشيل علامة الصح من على الاعداد ثم نضغط OK وهكذا سيقوم الوندوز بتغيير قيم الربجستري لهذا الاعداد

الان نذهب لأداتنا عشان نشوف ايش هي القيم الي غيرها الوندوز ، طبعا بتنزل لآخر الاداة دائما وبتلاقي :

اللون الازرق : مسار المفتاح
اللون الاخضر : اسم المفتاح
اللون الاحمر : قيمة المفتاح ونوعه


الان من الافضل أن نذهب للريجستري لكي نرى المفتاح وقيمته بشكل افضل :



نرى ان نوع المتاح هو DWORD وهذا يعني ان القيمة هي عبارة عن byte ، والان سنقوم بتغيير هذه القيمة "برمجيا" بواسطة السي شارب









تعديل قيم الريجستري


طبعا اغلبكم عارف كيف يغير قيمة بالريجستري ، وتكون على الطريقة التالية :-

PHP كود :
//[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer]
            //"ShowDriveLettersFirst"=dword:00000002

            
byte date 0x00000002
            
Microsoft.Win32.RegistryKey key =  Microsoft.Win32.Registry.CurrentUser.OpenSubKey(
                        @
"Software\Microsoft\Windows\CurrentVersion\Explorer"true);
            
key.SetValue("ShowDriveLettersFirst"dateMicrosoft.Win32.RegistryValueKind.DWord); 


فقط انا اريد ان اوضح لماذا كتبت 0x فالبعض قد لايعلم وظيفتها . محرر الكود في السي شارب لايدعم كتابة الارقام بالنظام Hex ، فلو قررت كتابة هذا الرقم في المحرر لن يسمح لي بذلك :

PHP كود :
//HEX value
            
int hexValue 0C;  //<< Error 

طيب مالعمل ، انا اريد ان اقوم بوضع قيمة Hex داخل هذا المتغير !! اصحابنا في الفيجوال بيسك يستخدمون البادئة H& ولكن نحن في السي شارب لدينا البادئة 0x ، فالان هذا الكود لن يعطي خطا :-

PHP كود :
//HEX value
            
int hexValue 0x0C;  //<< No Error 

في الحقيقة بدل مانحاول اسناد قيمة بالهكس احدهم قال لي ، قم بتحويلها بالحاسبة الى النظام العشري مثلا 0C تساوي بانظام العشري 12 ، ولكن مادام السي شارب يدعم قيم الهكس باستعمال البادئة 0x اذن ليش تتعب نفسك وتحول القيم ؟؟


نرجع لكودنا:

PHP كود :
//[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer]
            //"ShowDriveLettersFirst"=dword:00000002

            
byte date 0x00000002
            
Microsoft.Win32.RegistryKey key =  Microsoft.Win32.Registry.CurrentUser.OpenSubKey(
                        @
"Software\Microsoft\Windows\CurrentVersion\Explorer"true);
            
key.SetValue("ShowDriveLettersFirst"dateMicrosoft.Win32.RegistryValueKind.DWord); 

تلاحظ كتبنا 0x00000002 بتسألني من وين جبت هذي القيمة ؟؟
كما ذكرنا سابقا الاداة جلبت لنا القيمة ولكن
تقدر تروح للريجستري وتشوف القيمة (افضل ان تراها من الريجتسري مباشرة) :

بما ان DWORD هي قيمة = بايت ، لذلك سويت متغير بايت والقيمة كما ظهرت لي .

الان نفذ البرنامج ، وروح My computer وسو Refresh والنتيجة :

تم اخفاء رموز الدرايفرات.


--


طيب الان تبي ترجع الوضع لحالته الطبيعية لازم ترجع القيمة الاصلية قبل التعديل.

مادام احنا عرفنا المفتاح ، مايحتاج نستخدم الاداة RegFromApp ، كل ماعليك هو وضع علامة الصح على الاعداد الي غيرناه :-


ثم تروح الريجستري وتسوي Refresh وتشوف القيمة الجديدة :-


الان عرفنا كل شيئ :-

1- قيمة المفتاح وهو مفعل (اظهار رموز الدرايفرات) = 0x00000000
2- قيمة المفتاح وهو غير مفعل (اخفاء رموز الدرايفرات) = 0x00000002


يعني الان بكل بساطة اذا تبي ترجع القيمة الاصلية ماعليك سوا تعديل كود ال data الى:

PHP كود :
byte date 0x00000000

بما ان 0x00000000 تساوي 0 ، فلإختصار الكود يمكننا كتابة صفر عادية :

PHP كود :
byte date 0

لكن الافضل دائما استخدام قيم الhex كما هي عشان لاتتخربط لو كانت لديك قيم كبيرة عليك تعديلها .

النتيجة :-

رجوع رموز الدرايفرات.








الخاتمة



في المرفقات ستجدون التطبيق :




شكرا للمتابعة واتمنى انكم استفدتهم من هذه المقالة ومع تمنياتي لكم بالتوفيق إن شاء الله


تحياتي - Done By Alshaki LLah


الملفات المرفقة
.rar   ShowHideDriveLetter.rar (الحجم : 50.67 ك ب / التحميلات : 76)
الرد }}}}
تم الشكر بواسطة: tariq2812 , Japan
#2
تسلم ايدك موضوع رائع جدا ومفيد
الرد }}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [سلسلة التعامل مع الويب] تحليل الصفحات باستخدام HtmlAgilityPack الشاكي لله 9 1,234 25-09-16, 12:19 PM
آخر رد: ابراهيم كركوكي
  [سلسلة التحكم] {2} - التحكم بواسطة Remoting الشاكي لله 6 3,420 22-06-16, 05:25 AM
آخر رد: last_warrior
  [سلسلة التحكم] {5} - التحكم بالمصباح بواسطة الـ USB و Arduino الشاكي لله 11 9,750 02-06-16, 11:28 AM
آخر رد: CLARO
  تجميعية مقالات [سلسلة التحكم] الشاكي لله 8 1,323 02-06-16, 11:25 AM
آخر رد: CLARO
  [سلسلة التحكم] {3} - خدمة الويب (Web Service) الشاكي لله 8 4,314 02-06-16, 11:25 AM
آخر رد: CLARO
  [سلسلة ادوات المبرمج] {2} - اداة تحليل صفحات الويب HAPXPathFinder الشاكي لله 9 1,994 02-06-16, 11:24 AM
آخر رد: CLARO
  [سلسلة التعامل مع الويب] - ارسال الطلبات HttpWebRequset الشاكي لله 14 4,821 02-06-16, 11:21 AM
آخر رد: CLARO
  [سلسلة التحكم] {1} - طرق التحكم في البرامج الشاكي لله 7 3,220 12-02-16, 10:16 PM
آخر رد: nani49
  [سلسلة التحكم] {6} - التحكم في البرامج بطريقة SendMessage الشاكي لله 3 1,131 12-02-16, 02:01 PM
آخر رد: nani49
  [سلسلة التحكم] {4} - التحكم عن بعد بواسطة خدمة الويب الشاكي لله 5 2,331 17-03-14, 09:46 PM
آخر رد: as206em

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم