ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Пишем спамер для vkontakte.ru
  #1  
Старый 23.06.2009, 17:02
Аватар для JeDaSe
JeDaSe
Познающий
Регистрация: 23.05.2009
Сообщений: 35
Провел на форуме:
104584

Репутация: 32
Отправить сообщение для JeDaSe с помощью ICQ
Smile Пишем спамер для vkontakte.ru

Это только пример написания
Кидаем на форму TIdHTTP и TIdCookieManager, остальное по желанию
Далее берём какой-нибудь http анализатор к примеру HTTPAnalyzer
Смотрим что отправляет браузер при входе и что нам отправляет сервер в ответ
Серверу мы отправляем пароль и мыло
Код:
Var
 Res:string;
 Data:TStringList;
Begin
Data:=TStringList.Create;
Data.Add('op=a_login_attempt');
Data.Add('email=admin@mail.ru'); //Логин
Data.Add('pass=123456');         //Пароль
res:=http[n].Post('http://vkontakte.ru/login.php',Data);
data.Clear;
if res='failed' then begin 
  memo1.lines.add('Не верный логин/пароль');
  exit;
end;
Заполняем логин и пароль и отправляем пост запрос на сервер, если сервер возращает failed то пароль или логин не верный и мы выходим(либо берём другой логин и пароль)
При посылке там произошёл редирект, значит делаем так
Код:
http.HandleRedirects:=true;
http.AllowCookies:=true;
И сервер нам вернул куки, но они почему то не записались в менеджер(злые дяди поставили точку пред доменом) в сети много вариантов обхода этого, но самый простой:
Код:
cook:=http.Response.RawHeaders.CommaText;
repeat
delete(cook,1,Pos('Set-Cookie:',cook)+11);
Cookie.AddCookie(copy(cook,0,Pos(';',cook)-1),'vkontakte.ru');
until Pos('Set-Cookie:',cook)=0;
Ура мы вошли!
Теперь надо отправить сообщение, опять смотрим через анадизатор что там браузер передаёт и что принимает
Всё понятно кроме некого параметра chas(он находиться в форме), значит выдираем его от туда
Код:
 
Chas:=http.GET('http://vkontakte.ru/mail.php?act=write&to='+Id);
delete(Chas,1,Pos('name="chas"',Chas)+18);
Chas:=copy(Chas,0,Pos('"',Chas)-1);
Ну теперь можно отправлять
Код:
      Chas:=http.GET('http://vkontakte.ru/mail.php?act=write&to='+id]);
      delete(Chas,1,Pos('name="chas"',Chas)+18);
      Chas:=copy(Chas,0,Pos('"',Chas)-1);
      Mes.add('act=sent');
      Mes.add('ajax=1');
      Mes.add('misc=');
      Mes.add('secure=3ae6');
      Mes.add('chas='+Chas);
      Mes.add('photo=0');
      Mes.add('to_id='+id);
      Mes.add('to_reply=0');
      Mes.add('toFriends=');
      Mes.add('title='+ titleText);
      Mes.add('message='+messageText);
      res:=RussianToUnicode(Http.Post('http://vkontakte.ru/mail.php', Mes));
      if Pos('отправле',res)<>0 then //Result:='Отправленно';
      Mes.Clear;
Тут ещё есть функция RussianToUnicode
Код:
function RussianToUnicode(S:string): String;
var
 Wrd:Word;
 pW,pR:Pword;
 len:integer;
begin
  pW:=@s[1];
  len:=length(S);
  setLength(Result,len);
  pR:=@Result[1];
  while Len<>0 do begin
    Wrd:=pW^;
    case Wrd of
      $C0..$DF,$E0..$FF:pr^:=Wrd+$0350;
      else pR^:=WRD;
    end;
    inc(pW);
    inc(pR);
    dec(Len);
  end;
end;
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибки Windows 2 SVipeR Windows 9 02.03.2009 19:28
Начальный практикум в Code Igniter Kuzya Авторские статьи 9 20.02.2009 23:12
Faq по крекингу для начинающих 1.0 KindEcstasy Статьи 1 16.10.2006 13:08
Основные команды командной строчки. silveran Windows 5 27.10.2005 14:45



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ