Подскажите Статьи (Delphi Спам)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by le-mon, 23 Feb 2010.

  1. Chrome~

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

    Joined:
    13 Dec 2008
    Messages:
    936
    Likes Received:
    162
    Reputations:
    27
    Люди, вы набиваете себе посты, разводя флуд. Перечитайте тему, им поймете о чем я.
    Дальше нужно сниффать пакеты, которые браузер отсылает серверу при отправке сообщения.
     
  2. RedFern.89

    RedFern.89 Member

    Joined:
    20 Jan 2010
    Messages:
    575
    Likes Received:
    48
    Reputations:
    0
    ну загружай страницу с написанием нового сообщения, выдирай от туда хэш, пойми его структуру, декодируй его, и отсылай с остальными параметрами. вот тебе пример отсылки сообщения)

    Code:
    function DecChas(chas: string): string;
    var
     Decchas : string;
     str : string;
     I : Integer;
     Len : integer;
    begin
    
     str := Copy(chas, 6, 12);
     Len := Length(str);
    
     For I := 0 To Length(str) -1 do
     begin
      Decchas := Decchas + str[len];
      Inc(len, -1);
     end;
    
     str := Copy(chas, 21, Length(chas) -5);
     str := str + Copy(chas, 5, 1);
    
     Len := Length(str);
    
     For I := 0 To Length(str) -1 do
     begin
       Decchas := Decchas + str[len];
       Inc(len, -1);
     end;
    
     Result := Decchas;
    end;
    
    
    ....
    
    
    function SendMessage(const ID, MsgText, MsgTitle: string): boolean;
    var
     ResponseText, Hash : string;
     Post : TStringList;
    begin
    
     Hash := HTTP.Get('http://vkontakte.ru/mail.php?act=a_write_box&to=' + id);
     Hash := Copy(Hash, Pos('decodehash', Hash) +12, Length(Hash));
     Delete(Hash, Pos(#39, Hash), Length(Hash));
     Post := TStringList.Create;
     Post.Add('act=sent');
     Post.Add('ajax=1');
     Post.Add('chas=' + DecChas(hash));
     Post.Add('to_id=' + id);
     Post.Add('title=' + AnsiToUTF8(MsgTitle));
     Post.Add('message=' + AnsiToUTF8(MsgText));
     Post.Add('from_box=1');
    
     HTTP.Request.Referer := 'http://vkontakte.ru/mail.php?act=a_write_box&to=' + id;
     ResponseText := HTTP.Post('http://vkontakte.ru/mail.php', Post);
    
     If Pos('отправлено', ResponseText) <> 0 Then Result := True else Result := False;
    
     Post.Free;
    end;
    
    //# Отрывки кода из моего компонента
     
  3. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22
    Плохой вопрос. Авторизовавшись на сайте ты должен какбэ сам понять что дальше делать, иначе не будут же каждый шаг тебе показывать.
     
  4. RDL_Rider

    RDL_Rider New Member

    Joined:
    21 Jun 2009
    Messages:
    100
    Likes Received:
    3
    Reputations:
    0
    Да хоть для космического спутника :D главное делать с умом.
     
  5. le-mon

    le-mon New Member

    Joined:
    11 Apr 2007
    Messages:
    50
    Likes Received:
    2
    Reputations:
    -5
    Пытаюсь отправить сообщения на http://otveti.mail.ru авторизацую прохожу успешно, но вот с отправкой бредятина какая то))

    как она должна выглядеть ? я пытался так:

    Code:
    procedure TForm5.btn2Click(Sender: TObject);
    var params,responseres:tstringlist;
    begin
    params:=TStringList.Create;
    responseres:=TStringList.Create;
    params.Add('action=authaddans');
    params.Add('ch=046d65b4c60aa1284e7e83ef3fc93');
    params.Add('qid=36881813');
    params.Add('f80325b38=1');
    params.Add('Body=Это Я =)');
    params.Add('source=');
    responseres.Text:=http1.Post('http://otvet.mail.ru/question/36881696/',params);
    
    end;
    
     
  6. RedFern.89

    RedFern.89 Member

    Joined:
    20 Jan 2010
    Messages:
    575
    Likes Received:
    48
    Reputations:
    0
    да там все легко)) ищи сорцы разные, скачай сниффер и тд))
     
  7. le-mon

    le-mon New Member

    Joined:
    11 Apr 2007
    Messages:
    50
    Likes Received:
    2
    Reputations:
    -5
    RedFern.89, по сниферу делал
     
  8. RedFern.89

    RedFern.89 Member

    Joined:
    20 Jan 2010
    Messages:
    575
    Likes Received:
    48
    Reputations:
    0
    я по сниферу смотрел (HTTP Analyzer v5). Там у куков точка в начале домена (.mail.ru), что непозволительно. Как я уже вижу ты юзаешь инди, значит тебе надо исправить процедуру добавления куков. В idCookieManager.pas исправь процедуру DoAdd. Вот код.

    Исправление процедуры в Indy 7-9
    Code:
    procedure TIdCookieManager.DoAdd(ACookie: TIdCookieRFC2109; ACookieText, AHost: String);
    Var
      LDomain: String;
    begin
      ACookie.CookieText := ACookieText;
    
      if Length(ACookie.Domain) = 0 then LDomain := AHost
      else LDomain := ACookie.Domain;
    
      ACookie.Domain := LDomain;
    
    // если есть точка в начале домена, убираем ее
      If ACookie.Domain[1] = '.' Then
      ACookie.Domain := Copy(ACookie.Domain, 2, Length(ACookie.Domain));
    
      if ACookie.IsValidCookie(AHost) then
      begin
        if DoOnNewCookie(ACookie) then
        begin
          FCookieCollection.AddCookie(ACookie);
        end
        else begin
          ACookie.Collection := nil;
          ACookie.Free;
        end;
      end
      else begin
        ACookie.Free;
      end;
    end;
    
    Либо если влом это все делать и/или ты не знаешь, как, скачай Overbyte Ics.

    вот ссылка:
    http://www.overbyte.be

    P.S. параметр ch по-любому надо декодировать. За 500р могу те готовый код на все это написать
     
    #28 RedFern.89, 28 Feb 2010
    Last edited: 28 Feb 2010
  9. Spy2ex

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

    Joined:
    20 Sep 2008
    Messages:
    32
    Likes Received:
    15
    Reputations:
    1
    там не все так легко.
    там еще нужно декодировать хеш на странице с вопросом.
    Удачи!
     
  10. RedFern.89

    RedFern.89 Member

    Joined:
    20 Jan 2010
    Messages:
    575
    Likes Received:
    48
    Reputations:
    0
    я раскодировал за 1.5 часа) все просто. Выдерите скрипт декодирования из страницы и с помощью него декодируйте какой нить хэш. Сравните оба хэша и разбиритесь, что к чему. все не так и сложно на вид)
     
  11. le-mon

    le-mon New Member

    Joined:
    11 Apr 2007
    Messages:
    50
    Likes Received:
    2
    Reputations:
    -5
    думаю мне надо начать с более простого чем с маил ру)))
     
  12. Meecript_

    Meecript_ Banned

    Joined:
    29 Oct 2008
    Messages:
    194
    Likes Received:
    62
    Reputations:
    32
    Напиши для начала какой-нибудь чекер аккаунтов - авторизуешься и парсишь страницы на количество друзей и прочую инфу.
     
  13. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22
    Вообще-то легко решается использованием современных инди (как и много других багов)
     
  14. RedFern.89

    RedFern.89 Member

    Joined:
    20 Jan 2010
    Messages:
    575
    Likes Received:
    48
    Reputations:
    0
    хм. в 10й версии такая же хрень.
     
  15. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22
    10-ая версия вообще-то тоже бывает разной.
    У меня траблы такой не было, хотя я про нее и читал в инете.
    Это я к тому что надо обновляться.
     
  16. RedFern.89

    RedFern.89 Member

    Joined:
    20 Jan 2010
    Messages:
    575
    Likes Received:
    48
    Reputations:
    0
    мне в лом.я юзаю щас overbyte ics. Хотя признаюсь честно - там тоже багов полно
     
  17. le-mon

    le-mon New Member

    Joined:
    11 Apr 2007
    Messages:
    50
    Likes Received:
    2
    Reputations:
    -5
    Прохожу авторизацию, но как отправить сообщение по нажатию кнопки не могу догнать.

    Привидите плиз пример отправки сообщения...

    Код авторизации:

    HTML:
    procedure TForm1.Button1Click(Sender: TObject);
    var
      Http  : TidHttp;
      CM    : TidCookieManager;
      Data  : TStringList;
      StrPage, UserID,  UserName  :  String;
      i : integer;
    begin
      try
        Http := TIdHTTP.Create(Self);
        Data := TStringList.Create;
        CM := TidCookieManager.Create(Http);
        Http.AllowCookies := true;
        Http.CookieManager := CM;
        Http.HandleRedirects := true;
    
        Http.Request.Host:='livejournal.com';
        Http.Request.UserAgent:='Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10';
        Http.Request.Accept:='text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
        Http.Request.AcceptLanguage:='ru,en-us;q=0.7,en;q=0.3';
        Http.Request.AcceptCharSet:='windows-1251,utf-8;q=0.7,*;q=0.7';
        Http.Request.Referer:='http://www.livejournal.com/';
    
        Data.Add('mode=login');
        Data.Add('user=' + Edit1.Text);
        Data.Add('password=' + Edit2.Text);
        StrPage := Http.Post('http://www.livejournal.com/login.bml?ret=1', Data);
      finally
        Data.Free;
        CM.Free;
        Http.Free;
      end;
    
      if Pos('<input class="logoutlj_hidden" id="user" name="user" type="hidden" value="'+Edit1.Text,StrPage) <> 0 then
        ShowMessage('Авторизация прошла успешно')
      else
        ShowMessage('Авторизация провалилась');
    
      Memo1.Lines.Text := StrPage;
    end;