السلام عليكم ورحمة الله
تعلمنا في موضوع تعلم بناء هاك خاص بك جديد في الـvBulletin معظم طرق الاتصال بقاعدة البيانات واجراء الاستعلامات عليها وقد مهدنا لطريق البرمجة الخاصة بالـvBulletin ، موضوعنا اليوم سنتحدث فيه بتفاصيل اكبر عن بناء الهاكـ وبروئة عن قرب ،،، ليس بالضرورة ان تكن لك خبرة كبيرة او معلومات عن طرق برمجة الهاكات في نسخ الجيل الثالث ، يمكنك الانطلاق من هنا في برمجة هاكاتك الخاصة من خلال هذا الدرس والدروس التي سبقته ،
قبل ان ابداء معكم هنالك أشياء اساسية يجب ان تكن ملم بهاء جميع الهاكات او الـplugins يتم تخزينها في قاعدة بيانات المنتدى(في جدول يسمى plugins) ويتم إستدعاءها من قاعدة البيانات الى الصفحات عن طريق تقنية الـhook لكي يتم تنفيذ الاكواد في الاماكن التي اخترتها انت ، وتم تقسيم أي ملف من ملفات الـvBulletin الى عدة أماكن والتقسيم هذا ما يعرف بالـHook .
هنالك نقطة يجب ان تنتبه إليها هنالك أماكن كثيرة في ملفات الـvBulletin (لم يتم وضع Hooks لها وفي هذه الحالة يمكنك كتابة الكود الخاص بك يدويا في الملف المعني اذا الضرورة اقتضت ذلك ) ، حتى الان توجد حوالي اكثر من 500 hooks موزعه في الملفات ، هنالك شي آخر يجب ان تاخذه بعين الإعتبار لايمكنك تحديث اي استعلام او كود موجود مسبقا بالملف، بصورة اخرى اذا كان لديك هاك وتريد جلب نتائج أكثر عن طريق إستعلام قاعدة البيانات الموجود أصلا بالملف فلا يمكنك فعل ذلك إلا باضافة استعلام جديد خاص بك أي لايمكنك تحديث اي كود عن طريق الـHooks فقط يمكنك الاضافة، كفانا ثرثرة ولنبداء
أولاً:
تاكد بان نظام الـPlugins مفعل ، ويمكنكـ تفعيله من لوحة التحكم الخاصة بالمشرف العام وأسفل خيارات المنتدى.
قم بإضافة plugin جديد
http://www.yoursite.com/vb/admincp/plugin.php?do=add
سنقم بتعريف الحقول الاساسية :-
اسم المنتج او Product Name :
اسم المنتج الافتراضي سوف يكن تابع للـvBulletin ويمكنكـ إضافة Plugin يتبع لمنتج آخر اة هاكـ آخر ،
Hook Location:
كما قلت في الاعلى هناء مكان تنفيذ الكود الخاص بك ،
لتحديد الكود قم بالاتي :
أفتح ملف الـvBulletin الذي تود تنفيذ الكود الخاص بكـ فيه وقم بتحديد المكان المناسب له بعد ذلك قم بالبحث عن أقرب $hook وعادةً يكن شكله كالتالي :
كود PHP:
($hook = vBulletinHook::fetch_hook('showthread_start')) ? eval($hook) : false;
بعد الحصول على الهوك الاقرب يمكنك معرفة اسمه بالنظر الى المتغير الذي يتم تمريره في دالة عرض الهوك ، وفي المثال أعلاه اسم الهةك هو : 'showthread_start' ، هذا هو المكان الذي سوف يتم تنفيذ كود الـPHP الخاص بك ، لكي تضح لك الصورة بشكل أكبر قم بفتح ملف showthread وتقريبا في السطر رقم 88 سوف تجد الهوك ،
وهنالك سوف يتم التنفيذ، ومن القائمة المنسدلة قم بإختياره .
عنوان الهوكـ أو الـTitle :
قم باختيار اسم مناسب للـPlugin الخاص بك وراعي ان يكن الاسم بحروف انكليزية وسوف يتم تعريف هذا الاسم في ادارة البلوغنز.
كود الـPHP أو Plugin PHP Code:
ومن هنا تبداء المعاركـ
هنا صع الكةد الخاص بكـ ، والذي تود تنفيذه ،
إنتبه : لا ضرورة لكي تضع اوسمة البداية
قم بوضع الكود كما هو بصورة مباشرة . وهذه النقطة مهمة جداً.
تنشيط الـPlugin او Plugin is Active:
هذا الخيار يسمح لك بتشغيل / إيقاف البلوغنز الخاص بكـ
اذا اخترت نعم سوف يتم تنفيذ الكود ،
هذه ابسط صورة لكتابة الـPlugins ، وبكل تاكيد هنالك سوف اضع لكم الطريقه الثانية وهي الأكثر اعترافيه لكتابة الPlugins لانها تشمل كل شي تريدهـ .
وهي لا تختلف كثيرا عن الطريقه التي ذكرتها ،
كتابة الـPlugins كملف XML
لكي يسهل استيراده وتصديره لاصدقائكـ
الصورة النموزجيه للـPlugin :
كود PHP:
<?xml version="1.0" encoding="ISO-8859-1"?>
<plugins>
<plugin active="1">
<title>My First Hack</title>
<hookname>showthread_start</hookname>
<phpcode><![CDATA[
// هنا ضع الكود الخاص بك
]]></phpcode>
</plugin>
</plugins>
أحفظ الملف بامتداد XML ،
شرح للكود :
السطر
كود PHP:
<?xml version="1.0" encoding="ISO-8859-1"?>
تعريف عام للغة وترميز اللغة ، ولست بحاجة الى تغيره ، فقط يمكنك تغير الترميز اما البقة اتركها كما هي .
الوسم <plugin active="1"> يعني ان الـplugin نشط ومفعل.
الوسم <title>My First Hack</title>عنوان الـplugin .
الوسم <hookname>showthread_start</hookname> هو اسم الـHook او مكان تنفيذ الكود.
الوسم <phpcode><![CDATA[ ]]></phpcode> هو مكان الكود الخاص بكـ
الان تعلمت كيف تكتب Plugin خاص بك بطريقتين اختار اي واحده منهما واحبذ الطريقه الثانيه.
* هنالك شي مفيد للمطورين ومبرمجي الهاكات وانصحكـ به لكي تعرف الهوكس Hooks التي تم استدعائها ،
طبعا قبل ذلك قم بتفعيل وضع المعالجة او debug
يمكنكـ تفعيله بإضافة السطر التالي :
كود PHP:
$config['Misc']['debug'] = true;
في آخر سطر لملف الـconfig.php الخاص بمنتداكـ (تفعيله يتسبب بضغط زايد للسيرفر ولا انصحك بالتفعيل في المنتديات الكبيرة فقط في منتدى الاختبار الخاص بك أو في المنتدى المنتدى الموجود بجهازكـ) ،،،
بعد التفعيل سوف تلاحظ قائمة اسفل المنتدى توضح لك عدد الاستعلامات التي تم تنفيذها في قاعدة البيانات وتقم ايضا بجلب اسماء القوالب TEMPLATES التي تم إستدعائها في اي صفحة في المنتدى ، وفي لوحة التحكم ماخفي كان أعظم
،
قم بهذه الخطوات لكي يتم جلب اسماء الـHook التي تم إستدعائها واستخدامها في تلك الصفحة.
قم بفتح ملف class_hook.php الموجود داخل مجلد includes وابحث عن :
كود PHP:
function &fetch_hook($hookname)
{
وسوف تجدها تقريبا في السطر رقم 83
وأضف أسفلها مباشرة أضف:
كود PHP:
devdebug("تمت مناداة الهوكـ : $hookname");
بعد هذا الموضوع يمكنكـ الإنطلاق في كتابة أول الـPlugin الخاص بكـ ، أتمنى ان تكونو قد إستمتعم في هذا الموضوع وقد أوصلت لكم الفكرة الأساسية لبرمجة الـPlugin وقريبا سوف اكتب لكم موضوع مختصر لطريقة برمجة الـProduct ككل.وسوف يكن هنالك شرح عملي لبرمجه هاكـ متكامل إن شاء الله
تحياتي لكم يا روائع عصري
اخوكم محمد HaMaDa4eVeR
والسلام عليكم ورحمة الله