Снова брут [Delphi]

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by brain, 25 Jun 2011.

  1. brain

    brain Elder - Старейшина

    Joined:
    4 Jul 2010
    Messages:
    249
    Likes Received:
    90
    Reputations:
    33
    del.
     
    #1 brain, 25 Jun 2011
    Last edited: 28 Jul 2011
  2. ZdezBilYa

    ZdezBilYa Elder - Старейшина

    Joined:
    29 Aug 2008
    Messages:
    198
    Likes Received:
    75
    Reputations:
    19
    синхронизация не при чем. это ошибка доступа к памяти

    возможно код в потоке

    Code:
    for ii:=0 to Form1.listbox1.count -1 do
    выполняется раньше, чем код основной

    Code:
    Form1.ListBox1.Items.LoadFromFile('login.txt');
    попробуйте загружать в листбоксы перед запуском потока
     
  3. ZdezBilYa

    ZdezBilYa Elder - Старейшина

    Joined:
    29 Aug 2008
    Messages:
    198
    Likes Received:
    75
    Reputations:
    19
    Пошагово выполняйте программу:
    курсор на строку Data := TStringList.Create;
    F4
    стартуете как обычно. как выполнение доходит до этой строки, программа остановится
    дальше, нажимая F8, пошагово выполняете код, можете смотреть значения всех переменных, наведя на них курсор
    и так, идя по коду, в какой-то момент наткнетесь на строку, где возникает ошибка
     
    1 person likes this.
  4. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    мдауж. логики ноль в ваших мыслях
    ***
    Data.Add('password='+Form1.listbox2.items); // тут вы обращаетесь к Data
    ***
    Data.Free; // а тут вы убиваете его при этом не выходя из двух вложенных циклов.

    Так что просто тупо перенеси Data.Free; в любое место после циклов. Если ты хотел таким образом сделать очистку, то очистка это Clear
     
    1 person likes this.
  5. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    if pos('http://www.site.ru/moodle/message/index.php',s) <> 0 then
    begin
    ShowMessage('GOOD');
    // заносишь куда хочешь результат
    end;
     
  6. t3cHn0iD

    t3cHn0iD Banned

    Joined:
    6 Apr 2009
    Messages:
    313
    Likes Received:
    63
    Reputations:
    66
    Проверка на гуд будет следующей

    if pos('http://www.site.ru/moodle/message/index.php',s) <> 0 then
    begin
    Form1.Memo1.lines.add('Good: ' +username+ ':' + password + '');
    else
    Form1.Memo1.lines.add('Bad: ' +username+ ':' + password + '');
    end;

    Пробуйте
     
  7. xophet

    xophet Member

    Joined:
    16 Apr 2011
    Messages:
    617
    Likes Received:
    49
    Reputations:
    5
    а надо так:
    Code:
                   if pos('http://www.site.ru/moodle/message/index.php',s) <> 0 then
                   begin
                      ShowMessage('GOOD');
                      [B]Synchronize[/B](Form1.Memo2.Lines.Add('good login:'+Form1.listbox1.items[ii]));
                      [B]Synchronize[/B](Form1.Memo2.Lines.Add('good pass:'+Form1.listbox2.items[i]));
                      end;
     
  8. t3cHn0iD

    t3cHn0iD Banned

    Joined:
    6 Apr 2009
    Messages:
    313
    Likes Received:
    63
    Reputations:
    66
    Я цикл перебора по одному списку реализовывал:

    for i:=0 to TSource.Count-1 do
    begin
    username:=TSource.Names;
    password:=TSource.ValueFromIndex;

    TSource - это TStringList;

    Ну а запрос сам такой:

    try
    BrutePage:=http.post('http://www.site.com/login.php', postdata);
    except
    end;
    if Pos('ERROR: You have entered an invalid username or password.',BrutePage)<>0 then
    Result:=1
    else
    Result:=0;
    Synchronize(sync);

    используйте блок try except, как я указал выше
    Переменную Result объявляем в private

    И процедура синхронизации:

    procedure TNewThread.Sync;
    begin
    case Result of
    0:
    begin
    Form1.Memo1.lines.add('Good: ' +username+ ':' + password + '');
    end;
    1:
    begin
    Form1.Memo1.lines.add('Bad: ' +username+ ':' + password + '
    end;
    end;
    end;
     
    #8 t3cHn0iD, 25 Jun 2011
    Last edited: 25 Jun 2011
  9. xophet

    xophet Member

    Joined:
    16 Apr 2011
    Messages:
    617
    Likes Received:
    49
    Reputations:
    5
    А ты уверен, что написав процедуру с именем Sync ты проводишь синхронизацию?

    /showpost.php?p=2724881&postcount=15

    ругань пропускай, а про контролы почитай))
     
  10. Chrome~

    Chrome~ Elder - Старейшина

    Joined:
    13 Dec 2008
    Messages:
    937
    Likes Received:
    162
    Reputations:
    27
    Это не ошибка а исключение, которое генерирует сам Indy. Помести блок кода работы с Indy в try...except и отключи внутренний отладчик Delphi либо запускай прогу не с помощью F9, а с помощью самого exe файла.
     
  11. Chrome~

    Chrome~ Elder - Старейшина

    Joined:
    13 Dec 2008
    Messages:
    937
    Likes Received:
    162
    Reputations:
    27
    Значит ты не все учел в своем бруте. На твоем изображении Indy генерирует исключение из за того, что получил в ответ от сервера код 404. Это означает, что такой страницы на сервере не существует. Пересмотри в своей программе, куда именно ты отправляешь запросы.
     
  12. xmadstyle

    xmadstyle Member

    Joined:
    29 Aug 2008
    Messages:
    91
    Likes Received:
    53
    Reputations:
    24
    Slesh довольно четко объяснил:
    Это значит там где у тебя Data.Clear; пиши Data.Free;
    А перед строками:
    Data.Add('password='+Form1.listbox2.items);
    Data.Add('testcookies=1');
    пиши Data.Clear;