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

أضف قيما للروجيستري بدون الإعتماد على دوال API

بدأه The Hidden Ghost في 11 سبتمبر 2012 · 4 رد · 732 مشاهدة · في لغة C و ++C
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع
NogSa.png

إن الحمد لله نحمده ونستعينه ونستغفره ، ونعوذ بالله من شرور أنفسنا وسيئات أعمالنا ،

من يهده الله فلا مضل له ومن يضلل فلا هادي له ، وأشهد أن لا إلـه إلا الله وحده لا شريك له وأشهد

أن محمـدا عبده ورسوله صلى الله عليه وعلى آله وصحبه وسلم تسليما كثيرا إلى يوم الدين .

أما بعد ، فأهدي سلامي لكل أعضاء وزوار منتدانا الحبيب

smile.gif .

لو أمعنا النظر مليا في الطريقة المثلى للكاتبة أو القراءة في الروجيستري ، لوجدنا حلا وحيدا ألا وهو اللجوء إلى دوال

API ، لكن يبقى السؤال المطروح : هل يمكننا استعمال طريقة أسهل دون اللجوء إلى الدالة

التي توفرها لنا مكتبة الويندوز (windows.h)؟

للإجابة على هذا السؤال البسيط يكفي أن نفتح الشاشة السوداء المقفرة التي لا زالت وما تزال تذهلنا

بخفاياها وأسرارها .

X9h09.png

بعد هذه الخطوة المتواضعة ، نكتب REG /? * don't write the text after the star symbol

h8Ck0.png

توضح لك هذه الكتابة عزيزي المشاهد كيفية استعمال هذا الأمر الخاص باستعمال الروجيستري والذي يندرج ضمن

ما يسمى بأوامر الدوس Les commandes du DOS

وبالنسبة لنا سنتطرق إلى الأمر الثاني أي REG ADD والخاص بإظافة القيم للروجيستري سواء أ كانت

من النوع النصي أم الرقمي ...

تابع معي عزيزي المشاهد هذه الخطوة الأقل تواضعا من الأولى :

NV63V.png

لقد ساعدتنا شاشة الدوس في فهم هذا الأمر ومنحتنا عددا لا يستهان به من الأمثلة ليسهل استيعاب هذا الأمر جيدا .

ولكي أبسط هذه الكتابات الطويلة ، سأحاول شرح مضمون هذا writing . لإظافة قيمة للروجيستري يكفي أن نحدد

مسار المفتاح المراد إظافة القيمة إليه فمثلا لدينا أربعة رؤوس للمسارات و أقصد هنا :

Principal KEY

HKLM => HKEY LOCAL MACHINE

HKCU => HKEY CURRENT USER

HKCR => HKEY CLASSES ROOT

HKU => HKEY USERS

HKCC => HKEY CURRENT CONFIG

بعد كتابة المفاتيح الرئيسية نكتب مسار المفتاح كاملا كما هو موضح في الأمثلة أعلاه ، بعد هذه المرحلة نكتب اسم

القيمة المراد إظافتها إلى المفتاح يعني خلف الباراميتر v/ بعدها نحدد نمط القيمة أي mode بعد الباراميتر t/

ومن بين هذه الأنماط :

REG_SZ => قيمة نصية

REG_DWORD => قيمة رقمية

REG_BINARY => قيمة تقبل النظام الثنائي أي 0 و 1

هذه هي الأنماط المشهورة ولمن أراد التوسع في هذا المجال فأمه مايكروسوفت في الذمة + أنا لا أعرف الأنماط كلها

بعد هذه الخطوة نحدد القيمة خلف البارامتر d/ . وفي الأخير نستعمل الباراميتر f/ لكي نتجاوز الرسالة التي تظهر عقب

وجود القيمة التي نريد إظافتها سابقا .

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

كود سورس لبرنامج بلغة السي :

Pt5LZ.pngcOfHo.png

1
rS3eY.png
#2

كنت أقول منذ عام ... يكفي أن تتعلم أوامر الدوس .. ومحتويات الريجستري .. ودوال الAPI حتى تتمكن من التحكم في كل شيء في الجهاز ببرنامج صغير ...

بارك الله فيك ... ستُغرق المنتدى على هذا المنوال .. بالأمثلة التطبيقية ... يجب أن تضع دروساً للسباحة ...laugh.gif

ثابر وإلى الأمام يا بطل ..

#3

نعم الروجيستري هو قلب النظام إن صح التعبير smile.gif + شكرا خويا مصطفى على المرور الجميل laugh.gif

rS3eY.png
#4

موضوع جميل أخي حمزة, بارك الله فيك :)

إضافة بسيطة :

لحذف قيمة من الريجستري نكتب :

reg delete hkcu\software\intel /v MM

حيث

reg delete : تعني أمر بحذف قيمة من الريجستري.

hkcu\software\intel : مسار المفتاح المُراد حذفه

/v MM : اسم القيمة التي نريد حذفها.

كمثال بسيط :

1. إضافة قيمة إلى الريجستري تعمل على إصلاح إدراة المهام Task Manager :

reg add hkcu\Software\Microsoft\Windows\CurrentVersion\policies\system /v DisableTaskMgr /t reg_dword /d 0

2. إضافة قيمة إلى الريجستري تعمل على إصلاح أداة الريجستري Registry Tools :

reg add hkcu\Software\Microsoft\Windows\CurrentVersion\Policies\System\ /v Disableregistrytools

/t reg_dword /d 0

القيمة 0 تعني إصلاح و القيمة 1 تعني تعطيل.

يمكننا أيضا, صناعة فيروس يعمل على إعادة تشغيل الجهاز بشكل دائم أو عند وقت محدد.

لتنفيذ هذه الأوامر في لغة C نستخدم الدالة system.

2
#5

شكرا على الإضافة أخي أحمد كنت أنتظر ردك بفارغ الصبر smile.gif

rS3eY.png

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