простейший спамер вконтакте



Сегодня мы будем писать простейший спамер для Вконтакта.

Нам понадобится Delphi. В принципе, подойдет любая версия. Я буду писать на DEPHI XE 7. У кого нет — качайте!

Как будет работать наш спамер? Заходим во вконтакт, пишем в строке поиска слово «футболки» и нажимаем enter. Попали в новости, где куча рекламы интернет-магазинов с одеждой. У меня это выглядит так:

Любые сообщения, как на страницах пользователей, так и на страницах групп, попадают в общий список новостей и упорядочиваются лишь по дате сообщения, никаких ранжирований нету. Даже посты в пустых группах попадают сюда.

Как вы, возможно, догадались сейчас мы напишем небольшую программку, в учебных целях, которая будет раз в минуту добавлять пост в нашу группу и удалять предыдущий.

ШАГ 1 Создаем новый проект в DELPHI

Создали проект, делаем вот такую простую форму:

ШАГ 2 Получаем access_token

Для работы с vk api нам понадобится ключ доступа приложения. Создаем глобальную строковую переменную token:string.
Пишем процедуру получения ключа:

procedure TForm1.GetToken;
var
  temp: string;
  response:string;
begin


  try
    response:=idhttp1.Get('https://oauth.vk.com/token?grant_type=password&client_id=2274003&scope=wall&client_secret=hHbZxrka2uZ6jB1inYsH&username='+LoginEdit.Text+'&password='+PassEdit.text);
  except
    logmemo.Lines.Add('ошибка соединения при получении access token');

  end;

  if Pos('token', response)<>0 then begin
    temp:=copy(response, pos('access_token":"', response), pos('","expires_in', response)-3);
    delete(temp, 1, 15);
    token:=temp;
    logmemo.Lines.Add('token получен');
  end
  else
  begin
    logmemo.Lines.Add('token не получен');
  end;

end;

Не забываем связать компоненты IDHTTP и SSLIOHandlerSocketOpenSSL. Также, для новичков добавлю, что для HTTPS соединения необходима пара DLL библиотек, ssleay32.dll и libeay32. Скачайте их и добавьте в папку с программой.

ШАГ 3 Изучаем VK api
У вконтакта есть удобный API с подробной документацией. Нам необходимо три метода: добавление поста, удаление поста и id последнего поста на стене.
-wall.get
-wall.post
-wall.delete

ШАГ 4 Пишем главный цикл

Цикл у нас будет вызываться таймером. Поставим интервал таймера в одну минуту. По-умолчанию таймер выключен. При нажатии на кнопку запуска включаем таймер.

procedure TForm1.StartButtonClick(Sender: TObject);
begin
  if length(token)>0 then timer1.Enabled:=true; // Если token не пустой, то запускаем таймер
end;

Код обработки события таймера:

procedure TForm1.Timer1Timer(Sender: TObject);
var
  response:string;
  id:string;
  pos1:integer;
  Info: TStringList;
begin
  // Получаем ID последнего поста
  try
    response:=idhttp1.Get('https://api.vk.com/method/wall.get?owner_id=-'+GroupEdit.text+'&access_token='+token);
  except
    logmemo.Lines.Add('Ошибка получения ID поста');
  end;
  id:=pars(response,'"id":',',"');
  sleep(500);
  // Удаляем последний пост
  if length(id)>0 then
    begin
    try
      response:=idhttp1.Get('https://api.vk.com/method/wall.delete?owner_id=-'+GroupEdit.text+'&post_id='+id+'&access_token='+token);
    except
      logmemo.Lines.Add('Ошибка удаления поста');
    end;
  end;
  sleep(500);
  // Создаем новый пост
  try
    response:='';
    Info := TStringList.Create;
    Info.Add('owner_id=-'+GroupEdit.text);
    Info.Add('from_group=1');
    Info.Add('access_token='+token);
    Info.Add('message='+messagememo.text);
    Info.Add('attachments='+attachedit.text);
    response:=idhttp1.post('https://api.vk.com/method/wall.post',info);
  except
    logmemo.Lines.Add('Ошибка создания поста');
  end;
  if pos('post_id',response)>0 then logmemo.Lines.Add('Пост добавлен!') else logmemo.Lines.Add('Пост не добавлен!');
  Info.Free;
end;

Готово!

Тестируем нашу програаму:

Запускаем


Вот так выглядит наш автоматически сделанный пост


И вот наш пост уже в поиске по ключевому слову «футболки»!

P.S.
Конечно, это учебный пример, и его надо немного доделать для полноценной работы. В сутки в группу можно добавлять 50 постов, поэтому надо научить программу при достижении лимита постов автоматически создавать новую копию группы.

Помните, что вместо фоток можно делать wiki-страницы — будет выглядеть точно также как фотография, но при нажатии на нее откроется Ваша ссылка.

Таким вот незамысловатым образом много людей зарабатывают деньги 🙂 поэкспериментируйте с запросами в поиске. Особенно на порнотематику. Хитрые делают фотографии в виде видеоролика, по нажатию на который пользователь отправляется на партнерку.

Исходник программы лежит здесь

Автор: Pavel Germanika