Создание класса "Троян"
| |
Neo | Дата: Пятница, 14.12.2012, 15:18 | Сообщение # 1 |
Модератор
Зарегистрирован: 04.05.2010
Группа: Модераторы
Сообщений: 317
Статус: Offline
| Всем привет! Вот недавно опять увидел вопрос по поводу глючности компонениа TServerSocket.Мне надоело возиться с этим и по сему я предлагаю написать свой класс,используя только WinSock и WinApi.Только небольшое условие,не использовать наследование))) Один класс должен уметь создавать как сервер,так и клиент,а также поддерживать опцию бэкконекта,двустороннюю передачю данных(ну клиент шлёт команду,сервер выполняет и шлёт клиенту статус выполнения).А ещё желательно заюзать передаччу патока,чтобы скрины слать. Ну что давайте сделаем его? Каждый распределит какой метод он будет писать. А потом на его основе напишем свою программу удалённого администрирования от DelfCode))) (не троян,т.к мы не пишем вредоносное ПО)
Сообщение отредактировал Neo - Пятница, 14.12.2012, 15:19 |
|
| |
Don_Diego | Дата: Пятница, 14.12.2012, 22:04 | Сообщение # 2 |
Продвинутый
Зарегистрирован: 16.04.2012
Группа: Пользователи
Сообщений: 253
Статус: Offline
| Neo, в сетевых протоколах не сильно силен, но готов помозговать над 1-2 функциями, желательно не напрямую связанных с сетью. Но все это будет как дождусь товарища xXxSh@dowxXx и допишем тоже одну штучку... Там уже финишная прямая Да, и в таком случае лучше обменяться скайпом (в аське уже пол года не сижу).
Или давай с тобой закончим один небольшой проект, просто не хочется забрасывать почти готовую софтинку.
Сообщение отредактировал Don_Diego - Пятница, 14.12.2012, 22:10 |
|
| |
oke | Дата: Суббота, 15.12.2012, 18:15 | Сообщение # 3 |
Постоянный
Зарегистрирован: 15.01.2012
Группа: Пользователи
Сообщений: 124
Статус: Offline
| а что если использовать код в ring0 - это же будет вообще классно
|
|
| |
xXxSh@dowxXx | Дата: Воскресенье, 16.12.2012, 09:43 | Сообщение # 4 |
Авторитетный
Зарегистрирован: 22.01.2012
Группа: Модераторы
Сообщений: 702
Статус: Offline
| Quote (oke) а что если использовать код в ring0 - это же будет вообще классно Да ring0 это всегда интересно, вот только зачем оно нам сейчас, на начальном этапе так сказать, да и вобще для администрирования такие кардинальные меры не обязательны я думаю...
Quote (Neo) Один класс должен уметь создавать как сервер,так и клиент вот выкладываю тогда на обозрение один из примеров, валялся у меня в исходниках, когда то давно откопал в нете, может вполне неплохо сойти за основу? Доступно только для пользователей
add
Вобще если речь идет о программе удаленного администрирования, а не какого нибудь онлайн-чата, то мне кажется придется разделить клиент с сервером, что бы на удаленной машине была только серверная часть, а все остальное, потоки и прочее нужно оставить, разве нет, или мы хотим что то иное написать?
Сообщение отредактировал dolphin - Воскресенье, 16.12.2012, 14:44 |
|
| |
XSPY | Дата: Воскресенье, 16.12.2012, 20:55 | Сообщение # 5 |
Продвинутый
Зарегистрирован: 28.01.2010
Группа: Пользователи
Сообщений: 263
Статус: Offline
| Готов поучаствовать,но хочу поинтересоватся- какой класс будет RAT? если поигратся и не слишком сложный (типа спайнета\экстрима),то можно,но если для промышленных масштабов и паблега,то нужно серьезно подойти к вопросу (и тут не только r0 надо будет,но и инжекты,и сплойты и прочие)
|
|
| |
C@T | Дата: Понедельник, 17.12.2012, 04:04 | Сообщение # 6 |
Авторитетный
Зарегистрирован: 06.03.2010
Группа: Модераторы
Сообщений: 265
Статус: Offline
| ага, еще предлагаю сделать управление через промежуточный сервер, так что бы не нужна была выделенка
Quote (xXxSh@dowxXx) Вобще если речь идет о программе удаленного администрирования, а не какого нибудь онлайн-чата, то мне кажется придется разделить клиент с сервером, что бы на удаленной машине была только серверная часть, а все остальное, потоки и прочее нужно оставить, разве нет, или мы хотим что то иное написать?
поддерживаю, удобней будет сделать 2 класса клиент и сервер которые просто создают соединение и могут передавать друг другу данные, а если уже хотим усложнить задачу, например сделать удаленное администрирование то наследуем класс удаленного рабочего стола от наших классов для соединения(клиент и сервер соответственно)
|
|
| |
Neo | Дата: Понедельник, 17.12.2012, 06:13 | Сообщение # 7 |
Модератор
Зарегистрирован: 04.05.2010
Группа: Модераторы
Сообщений: 317
Статус: Offline
| Quote (C@T) удобней будет сделать 2 класса клиент и сервер которые просто создают соединение и могут передавать друг другу данные Не,давайте сделаем лучше один класс,в конструкторе которого будем указывать,что это будет,сервер или клиент. А насчёт наследования я согласен.
|
|
| |
XSPY | Дата: Понедельник, 17.12.2012, 18:48 | Сообщение # 8 |
Продвинутый
Зарегистрирован: 28.01.2010
Группа: Пользователи
Сообщений: 263
Статус: Offline
| Neo, нету смысла-запалят его и всё-придется переписывать весь клиент... А позволь вопрос-Quote (Neo) Не,давайте сделаем лучше один класс,в конструкторе которого будем указывать,что это будет,сервер или клиент. А насчёт наследования я согласен. я немного не понял как ты при конструировании будешь указывать свойства... как они будут извлекатся и настраиватся?вот это я не понял пока...
|
|
| |
Neo | Дата: Понедельник, 17.12.2012, 19:24 | Сообщение # 9 |
Модератор
Зарегистрирован: 04.05.2010
Группа: Модераторы
Сообщений: 317
Статус: Offline
| Quote (XSPY) как ты при конструировании будешь указывать свойства Ну мы напишем конструктор инициализации.Меня вот волнует другой вопрос - связь сервера с клиентом. Вот допустим,нам нужно чётко знать,выполнил ли сервер команду или произошла ошибка,чтобы не было ощющения,что мы посылаем сигналы в космос .Ну дак вот,создадим мы на сервере слушающий сокет,он принял от команду от клиента,выполнил её,а потом он должен от измениться с слушающего на посылающий,чтобы послать ответ,а у клиента посылающий сокет должет измениться на слушающий.Причём если кто-то изменится с запаздыванием,то связь нарушится.Нужна какая-то что ли чёткая синхрошизачия. Ведь не хочется же использовать дополнительные порты и сокеты. Как можно решить эту проблему?
Сообщение отредактировал Neo - Понедельник, 17.12.2012, 19:26 |
|
| |
xXxSh@dowxXx | Дата: Понедельник, 17.12.2012, 21:20 | Сообщение # 10 |
Авторитетный
Зарегистрирован: 22.01.2012
Группа: Модераторы
Сообщений: 702
Статус: Offline
| Quote (Neo) Как можно решить эту проблему? По моему только созданием на клиенте дополнительного слушающего порта ибо все эти манипуляции и шаманство с изменением сокета отправителя на слушающий могут к куче ошибок привезти... а чем Вам мешает один дополнительный порт? будет два на сервере и два на клиенте, и никаких проблем.
|
|
| |
Neo | Дата: Понедельник, 27.05.2013, 10:50 | Сообщение # 11 |
Модератор
Зарегистрирован: 04.05.2010
Группа: Модераторы
Сообщений: 317
Статус: Offline
| Ну что,все готовы? Предлагаю для начала собраться в скайпе и обсудить некоторые вопросы,касающиеся способу разработки.Ведь очень важно сначала продумать алгоритм действия программы.А также распределим кто какие методы будет реализовывать. Пока обязательный функционал должен быть следующий: 1) поддержка работы с файлами 2) поддержка работы с реестром 3) удалённый рабочий стол.VNC или тупо скринить потом решим) 4) промежуточный сервер. 5) ну,и на закуску, превращение сервера в проксик. Я понимаю,что,наверное,это уже для обитателей данного форума наскучило,т.к чего только мы не написали!Но лично я до ума редко когда довожу проги.Добьюсь чего хотел и заброшу Наверное,не я один такой,так что давайте сделаем крутую прогу.Потом может,будем её продавать её,как Radmin)))) Будет,типа разработка от Delfcode TM)
Сообщение отредактировал Neo - Понедельник, 27.05.2013, 10:52 |
|
| |
Волк-1024 | Дата: Понедельник, 27.05.2013, 12:30 | Сообщение # 12 |
Авторитетный
Зарегистрирован: 24.07.2011
Группа: Модераторы
Сообщений: 469
Статус: Offline
| Форум фактически мертвый. 2-3 сообщения в неделю. Цитата (Neo) Добьюсь чего хотел и заброшу Нда... есть немного такое...
Цитата (Neo) так что давайте сделаем крутую прогу. Это... эммм... как-то странно звучит...
Pascal, C\C++, Assembler, Python
Сообщение отредактировал Волк-1024 - Понедельник, 27.05.2013, 12:30 |
|
| |
Neo | Дата: Понедельник, 27.05.2013, 13:06 | Сообщение # 13 |
Модератор
Зарегистрирован: 04.05.2010
Группа: Модераторы
Сообщений: 317
Статус: Offline
| Цитата (Волк-1024) Это... эммм... как-то странно звучит А что странного?
|
|
| |
Волк-1024 | Дата: Понедельник, 27.05.2013, 13:11 | Сообщение # 14 |
Авторитетный
Зарегистрирован: 24.07.2011
Группа: Модераторы
Сообщений: 469
Статус: Offline
| Это из разряда: "Давайте напишем супер игру и разбогатеем на ней"
Pascal, C\C++, Assembler, Python
|
|
| |
Don_Diego | Дата: Понедельник, 27.05.2013, 13:47 | Сообщение # 15 |
Продвинутый
Зарегистрирован: 16.04.2012
Группа: Пользователи
Сообщений: 253
Статус: Offline
| Все это очень нравится Но Волк-1024 прав - на форуме почти никого... Я хочу чтобы Вы Neo прочли ЛС.
|
|
| |
Волк-1024 | Дата: Понедельник, 27.05.2013, 16:44 | Сообщение # 16 |
Авторитетный
Зарегистрирован: 24.07.2011
Группа: Модераторы
Сообщений: 469
Статус: Offline
| Neo, Мы готовы обсудить всё в скайпе...
Pascal, C\C++, Assembler, Python
|
|
| |
Hargen | Дата: Вторник, 28.05.2013, 18:50 | Сообщение # 17 |
Участник
Зарегистрирован: 08.05.2013
Группа: Пользователи
Сообщений: 66
Статус: Offline
| Есть такой вариант - сделать функцию штампующую потоки и ей передавать параметры. Всего понадобтся три типа потоков: слушающий поток, поток ацептеного клиента, поток клиента - их можно занаследовать от базавого Относительно протокола- с кем- чем будет работать прога ? с хттп? Тут проще прикрутить событие OnRead в своей реализации В проекте я не прочь поучавствовать -------------------------------------------------------------------------------------------------------------------------------------------- -----Почти дописал, скоро выложу
Главное - не изобретать велосипед
Сообщение отредактировал Hargen - Среда, 29.05.2013, 18:44 |
|
| |
XSPY | Дата: Среда, 29.05.2013, 15:26 | Сообщение # 18 |
Продвинутый
Зарегистрирован: 28.01.2010
Группа: Пользователи
Сообщений: 263
Статус: Offline
| могу поделиться исходниками из троев-там готового море кода,кроме компонента от Нео =)
Я не крекер,а программист! Я не преступник-я свободный человек! Лучше один раз накодить,чем сто раз качать билды!
|
|
| |
Hargen | Дата: Четверг, 06.06.2013, 20:51 | Сообщение # 19 |
Участник
Зарегистрирован: 08.05.2013
Группа: Пользователи
Сообщений: 66
Статус: Offline
| Вот вариация исходника на винсок, осталось только доделать ацепт клиентов. Не Все пока дописал Вообще стоит улучшить и доделать сервер
Работать с ним так: 1- Создать интересующий сокет функцией create передав при этом свои параметры 2- указать свои onread+ executemethode/onaccept 3- Вызвать метод StartWork
п.с. Заранее спасибо тому кто поможет довести до ума или хотя бы попытается
Добавлено (03.06.2013, 18:23) --------------------------------------------- Обновленная вариация исходника на винсок,не все пока дописал, привел все к одному типу сокета, теперь весь работающий с ним код суйте в executemethode, подготовка сокета реализуется функцией Prepare, для нее параметром передается ссылка на подготавливающий код( типа TZSockMethode) работать с исходником так:
Доступно только для пользователей
Добавлено (06.06.2013, 13:13) --------------------------------------------- Скоро обновлю код, выросла одна проблема - из сокета данные могут читаться не полностью, нужно перечитать Григорьева - о чем не пишут в книгах по делфи (оч полезная книга, рекомендую почитать ), там есть такие примеры, прочие методы дописал.
Добавлено (06.06.2013, 20:51) --------------------------------------------- обещанное: Доступно только для пользователей скоро доделаю
Главное - не изобретать велосипед
Сообщение отредактировал Hargen - Четверг, 06.06.2013, 20:55 |
|
| |
ms301 | Дата: Вторник, 17.02.2015, 14:04 | Сообщение # 20 |
Постоянный
Зарегистрирован: 28.11.2012
Группа: Пользователи
Сообщений: 101
Статус: Offline
| Разработка прекратилась? (
|
|
| |
xXxSh@dowxXx | Дата: Вторник, 17.02.2015, 17:05 | Сообщение # 21 |
Авторитетный
Зарегистрирован: 22.01.2012
Группа: Модераторы
Сообщений: 702
Статус: Offline
| Цитата ms301 ( ) Разработка прекратилась? ( Честно говоря не вкурсе, а собственно что именно тебя интересует, задавай свой вопрос, так то там почти полноценный рабочий клиент - сервер, чуть подправить, довести до ума функционал, отладить прием и передачу информации и команд управления и все!
Я например клиент - сервер из того что нашел у себя в исходниках соединял даже со смартфоном, правда пришлось при этом еще и приложение под смарт пилить, но это уже совсем другая история
Сообщение отредактировал xXxSh@dowxXx - Вторник, 17.02.2015, 17:07 |
|
| |
ms301 | Дата: Вторник, 17.02.2015, 17:37 | Сообщение # 22 |
Постоянный
Зарегистрирован: 28.11.2012
Группа: Пользователи
Сообщений: 101
Статус: Offline
| Ну я просто щас немного в заблуждении - вставил код в XE7 - полно ошибок(Синтаксических - типа вместо Destructor = Destructot). --- Впринципе основное исправил - вот только с указателями пока справиться не могу
Сообщение отредактировал ms301 - Вторник, 17.02.2015, 17:46 |
|
| |
Волк-1024 | Дата: Вторник, 17.02.2015, 20:26 | Сообщение # 23 |
Авторитетный
Зарегистрирован: 24.07.2011
Группа: Модераторы
Сообщений: 469
Статус: Offline
| Цитата ms301 ( ) XE7 Уже XE7 есть? Фига себе они там штампуют их...Прямо как на конвейере.
Цитата ms301 ( ) Разработка прекратилась? Она вроде как и не начиналась.
И да, ребята, какой ещё нафиг класс-троян? Да ещё и на жалком Делфи - язык для подобного не предназначен. Самим-то не смешно?)
Pascal, C\C++, Assembler, Python
Сообщение отредактировал Волк-1024 - Вторник, 17.02.2015, 20:32 |
|
| |
ms301 | Дата: Вторник, 17.02.2015, 21:12 | Сообщение # 24 |
Постоянный
Зарегистрирован: 28.11.2012
Группа: Пользователи
Сообщений: 101
Статус: Offline
| Цитата Волк-1024 ( ) Уже XE7 есть? Фига себе они там штампуют их...Прямо как на конвейере. Уже XE8 beta есть Цитата Волк-1024 ( ) Она вроде как и не начиналась.
И да, ребята, какой ещё нафиг класс-троян? Да ещё и на жалком Делфи - язык для подобного не предназначен. Самим-то не смешно?) Ну почему же? Можно же потом этот класс и в Си экспортировать))
|
|
| |
XSPY | Дата: Среда, 18.02.2015, 19:12 | Сообщение # 25 |
Продвинутый
Зарегистрирован: 28.01.2010
Группа: Пользователи
Сообщений: 263
Статус: Offline
| Волк-1024, не смешно. можно хоть на брейнфаке сделать, тут вопрос иного поля) И да, Делфи далеко не жалок) Я вот например ощущаю, что ен будт делфи - не было бы годных БД и программ бухучета, не говоря уже о классных играх и тулзах!
Я не крекер,а программист! Я не преступник-я свободный человек! Лучше один раз накодить,чем сто раз качать билды!
|
|
| |
|