• XSS.stack #1 – первый литературный журнал от юзеров форума

Создаём самый простой ICQ клиент на Delphi

..::TROYAN::..

floppy-диск
Пользователь
Регистрация
20.10.2008
Сообщения
4
Реакции
0
Пожалуйста, обратите внимание, что пользователь заблокирован
Привет!В этой теме ты поймёш как можно создать самый простой icq клиент на delphi с помощью компонента TICQClient.
В этой теме я буду постить уроки.
Начнём...

[Урок 1]
Для начало нужно скачать и установить необходимые нам для работы компоненты:
~ TICQClient версия 1.34 - самый последний компонент на сегодняшний день(после обновления протокола компоненты ниже версии не хотели просто подключатся...)
Скачать его можно здесь - http://webfile.ru/2303891
~ Компонент для украшения программы - http://webfile.ru/2303919
Теперь нужно эти компоненты установить.
Неумееш устанавливать?Тогда www.google.com тебе в помощь!
Здесь небуду описывать как устанавливать компоненты,тк эта статья не по установке компонентов а по созданию своего клиента!
После установки компонентнов кинь на форму два TEdit,один TCheckBox,одну TButton,и один TICQClient.
Расположи их так на форме как тебе удобно=)
Edit1 - Будет служить для ввода UIN'a.
Edit2 - Будет служить для ввода пароля.
CheckBox1 - это для того что бы убрать звёздочки там где будет пароль.
ICQClient1 - это самое нужное,тк без него мы несможем ни принять,ни отправить сообщения!
В событии OnLogin пропиши:
Код:
Form2.Show;
Form1.Hide;
Это если клиент законнектится на сервак без проблем,то первое окно скроется,и откроется окно где будут видны контакты.
Для принятия сообщений по событию OnMessageRecv пиши:
Код:
var
 i: integer;
begin
 Form3.Memo1.Lines.Add('('+DateToStr(NOW)+')'+' '+'от юина - '+UIN);
 Form3.Memo1.Lines.Add('');
 Form3.Memo1.Lines.Add(Msg);
 Form3.Memo1.Lines.Add('');
Пока нечего некомпилируй тк еще клиент неготов,нужно еще добавить окно для обмена сообщениями и т.д...

По событию кнопки OnClick пиши:
Код:
ICQClient1.UIN:=StrToInt(Edit1.Text);
ICQClient1.Password:=Edit2.Text;
ICQClient1.Login();
Это для подключения к серверу.
По событию CheckBox1 OnClick пиши:
Код:
if CheckBox1.State = cbChecked
  then
   begin
    Edit2.PasswordChar:=#0;
 end;
if CheckBox1.State = cbunChecked
  then
   begin
    Edit2.PasswordChar:='*';
   end;
Это для отображения пароля который скрыт под звёздачками...
Поздравляю!Окно для входа готово!
Теперь зайти в File=>New=>Form.
Так мы создадим форму для второго окна.
Кинь на вторую форму такие обьекты как:
TListBox,и два TButton.
По событию OnClick в Button1 пиши:
Код:
ExitProcess(0);
Это для закрытия клиента.Если закрыть просто форму нажав на крестик вверху то закроется просто форма а клиент будет в памяти.
Теперь клоцни по форме два раза и напиши это:
Код:
ListBox1.Items.LoadFromFile('p.inf');
И обязательно создай файло с именем p и разшерением .inf то при запуске клиента может выскачить матюк типо нет такого файла.И помести этот файл в папку вместе с прогой!!!)))
Теперь в ListBox1 по событию OnDblClick пиши:
Код:
Form3.Show;
Form3.mss.Caption:=Form2.ListBox1.Items.Strings[ListBox1.ItemIndex];
Это для открытия окна где можно переписываццо!
Теперь по событию OnClick второй кнопочГи пишем:
Код:
Form4.Show;
Откроется окно для добавления нового контакта.
Теперь переходим к 3й форме...
Заходи опять в File=>New=>Form...
ну и должно создатся 3е окно в котором мы будем весть переписку=)
Кинь на форму TAdvPage(у меня в исходнике ево имя - mss),и два TMemo.
В public добавь:
Код:
Sen;
потом под словом {$R *.dfm} пиши:
Код:
procedure TForm3.Send;
begin
 Form1.ICQ.SendMessage(StrToInt(MSS.Caption),MEmo2.Text);
 Memo1.Lines.Add('>>'+'('+TimeToStr(Now)+')'+MEmo2.Text);
 MEmo2.Clear;

end;
Это процедура для отправки сообщения=)
Кликни теперь по форме и напиши это:
Код:
Form3.Caption:='['+MSS.Caption+']'+' - Сообщения';
Кликни по второй кнопке и напиши слудущее:
Код:
Form3.Close;
Это для закрытия окна=)
Теперь в Memo1 в собитии OnKeyPress пиши:
Код:
if key = #13 then
send;
Теперь сообщения будут отправлятся по нажатию кнопки ентер=)
эх...)
ну теперь осталось последее...))
Создай еще одну форму и кинь туда TEdit и TButton.
Кликни по кнопке два раза и впиши=) :
PHP:
Form2.ListBox1.Items.Add(Form4.Edit1.Text);
Form2.ListBox1.Items.SaveToFile('p.inf');
MessageBox(0,'Контакт добавлен','Ок...',0);
Form4.Close;[/code]
:eek::eek::eek:
Всё!)))Мучения закончились,теперь можеш скомпилирывать,запустить и радыватся=)
гыыы
-------------------------------------------------------------------------
Скачать исходные коды клиента можно здесь - [url=http://webfile.ru/2304075]http://webfile.ru/2304075[/url]
-------------------------------------------------------------------------
Если возникли какието вопросы , то задаём их здесь=)
В дальнейшем буду выкладывать новые уроки здесь,т.к в этом уроке самое основное(залогинится,отправить,принять сообщение),а это для полноценного клиента мало!
Всё!Пока=)
© TROYAN
 
Да, только протокол постоянно меняют и рабочий TICQClient найти сложно, но можно самому разобраться что поменялось и исправить.

ЗЫ... после такой статьи пойдет волна icq-спамеров и брутеров.
 
Для С: libpurple(http://pidgin.im/),GnomeICU(http://gnomeicu.sourceforge.net/)
Для C# 2.0:Oscarlib(http://www.shaim.net/trac/oscarlib/)
Для Java:joscar(http://joust.kano.net/),Instant Messenger Lib(http://sourceforge.net/projects/ooimlib/),daim(https://daim.dev.java.net/)
 
вот еще опенсорсный клиент на делфях, там-же и компоненты под него
http://imadering.com/download.htm

зы. он уже не обновляеться, но протокол менялся после этого только 1-2 раза, вроде )
 
Ну он наверно тоже TICQClient использует!
да
клиент хуже от этого не становиться )
 
я установил TICQClient весь пакет... но этого компонента не появилось =( еще нашол пару прикольных кодов, но там тоже TAdvPage нада =( можете точно сказать де его взять ? :help:
 
у меня есть работающий клиент на делфи..
хотя, хз что там сейчас после смены протоколов.
кому надо - могу отдать (это был дипломный проект, кажется 7 протокол, минимум функций гарантировано)

какие либы использовались- уже не помню. мучалась с форматом пакета долго - добилась работы.
Но все так убого, лишь бы проканало на защиту. Зачем еще кому-то не знаю..
Хотя, ....одно из применений- аська в локалке...
 
Судорожно извиняюсь, т.к. автор, вероятно, старался, но статья чушовая. Если человек смог корректно установить компонент, то он уж точно сможет найти FAQ по TIcqClient'у и скорее всего залезет в тему на асечке, где люди вплотную этим компонентом занимаются. И найдёт там 3-4 необходимых метода и свойства. А большего в статье и нету, зато теперь мне захотелось писать статьи по русскому языку для начинающих.

На мой взгляд, формошлёпство и кидание на форму компонента вкупе с копипастом обработчика кнопки ничего не даст, как вы считаете?
 
На мой взгляд, формошлёпство и кидание на форму компонента вкупе с копипастом обработчика кнопки ничего не даст, как вы считаете?
Ну так эта сама суть и есть всех ООП, ты просто точно написал/описал их свойство
В .NET (C# итд) тоже самое формошлепство
Сейчас проще брать питон, руби, короче скриптовые языки и их юзать в хек среде
Скорость кодинга раз в сто выше будет – ИМХО
Чего стоит один pyQt для создания гуи, а их среды разработки по удобству юзанья просто зашкаливают

зато теперь мне захотелось писать статьи по русскому языку для начинающих
По-русскому языку? Ты думаешь, что кому-то ЗДЕСЬ на форуме будет интересно как правильно ставить запятые в предложениях? %)))
уж лучше будь добр, потрать лучше время на изучение тех же уязвимостей, чтобы тебе не залили на твой блог/форум-движок шелл, и твой "грамотный ресурс" как правильно писать, не стал хорошо продаваемым траффом %)))

[offtop]
лучше пишите свои статьи по теме хакерства как умеете, как минимум, если статья интересная будет, или будут ошибки в ней, то точно подскажут гуру, что улучшить - так как ты и есть автор
естественно, если ты не автор статьи и осуждений не будет, так как что-то писать в теме копипаста это гуано-бред - ИМХО
Короче скил точно станет выше, если получишь большую львиную долю комментариев и чему-то других научишь, а это главное
Я тоже когда-то начинал и не мог вот так просто попасть в тиму(любую) так как знаний было ноль, но потом.. то что понимал брал и писал, меня вначале осуждали сильно(это везде на любом форуме), но потом мой скил рос, начинали предлагать вступить в тиму, потом уже без тестов предлагали вступить.. итд..
Так что статьи/обзоры (естественно СВОИ) это быстрый шаг попасть в приват – ИМХО
Набивание постов и копипаст чужих статей на пустые форумы, добавят только больше минусов в карму.. – ИМХО
[/offtop]
 
Ну так эта сама суть и есть всех ООП, ты просто точно написал/описал их свойство

Гениально! Суть ООП - в кидании кнопочки на форму? Или ты хочешь сказать, что эта кнопочка формошлёпу про наследование, полиморфизм и инкапсуляцию расскажет? Ох, сумлеваюсь..
Код:
Сейчас проще брать питон, руби, короче скриптовые языки и их юзать в хек среде
Скорость кодинга раз в сто выше будет – ИМХО

Извини, я хочу стать программистом, а не кодером, и скорость меня не прельщает. Если для тебя программирование ограничивается "хеком" - пожалуйста, у меня не так. И давайте не будем разводить холивар на тему какой язык лучше.. Для конкретно этой задачи замечательно подойдёт и делфи.

По-русскому языку? Ты думаешь, что кому-то ЗДЕСЬ на форуме будет интересно как правильно ставить запятые в предложениях? %)))

Я очень на это надеюсь. Уверен, здесь есть грамотные люди. Опять же, жизнь не ограничивается компьютером, язык нужен везде..

уж лучше будь добр, потрать лучше время на изучение тех же уязвимостей, чтобы тебе не залили на твой блог/форум-движок шелл, и твой "грамотный ресурс" как правильно писать, не стал хорошо продаваемым траффом %)))

Я лучше книжку почитаю, или про приёмы программирования какие-то, к примеру, и ресурса у меня нет.

Про последний [offtop], я вообще не понял, к чему это. Биография? У меня, кстати, есть несколько личных видеоуроков по паскалю, я их на хакере выкладывал, но никто особо не качал, там все С++ хотят. Наверное, на этот форум выложу их.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх