0

Как взломать игру вконтакте

Содержание статьи

Так уж мы устроены, что многим из нас свойственна погоня за общественным
статусом. Одни ищут себе сексуального супруга, другие окружают себя элементами
роскоши, третьи же (в основном, люди еще молодые) ограничиваются поддержанием
виртуального статуса. В этой статье будет затронута часть этой своеобразной
индустрии – многопользовательские браузерные онлайн-игры и их слабые места.

Про онлайн-игры

Для начала предлагаю разобраться, на какие же категории можно разделить все
онлайн-игры с точки зрения их уровня безопасности. Первый тип – это
платформозависимые игры с собственным движком, который обычно разрабатывается с
нуля. Это такие игры, как World of Warcraft, Lineage, Warhammer и другие. Как
правило, вся информация от клиента к серверу передается по собственному
протоколу игры, и степень ее защищенности определяется только фантазией
разработчиков.

Второй тип – это кроссплатформенные игры с собственным движком и протоколом
обмена данными. Это всевозможные бойцовские клубы, игры типа TimeZero и прочие.
В отличие от игр первого типа, они обычно выполнены на базе Flash и Java. Их
плюс – в кроссплатформенности, а небольшой минус – в безопасности. Конечно, с
безопасностью все не критично, но явно хуже, чем у первого типа игр, в силу
ограниченности возможностей используемых технологий, особенно Flash. Тем не
менее, у игр третьего типа маневров для поддержания достаточно хорошего уровня
безопасности еще меньше.

Третий тип – это подмножество второго типа, то есть браузерные онлайн-игры,
построенные на схожем протоколе обмена данными, API либо движке. К этому типу
относятся игры внутри таких небезызвестных сервисов, как Mail.ru, Yahoo и
ВКонтакте. Последнему и посвятим наше внимание.

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

С чего же все началось? А с того, что я, будучи любителем английского языка,
нашел ВКонтакте приложение
LinguaMania. Это
тренажер для изучения языков. Чтобы обучение проходило веселее, разработчики
реализовали систему поощрений в виде букв, из которых можно собирать слова, а
затем "покупать" за них одежду и одевать свою виртуальную аватарку. Ну и, само
собой, рейтинг. А вот о нем подробнее. Рейтинг дается не только за обучение по
виртуальным "учебникам", но и за игру в викторину, которая сразу меня
заинтересовала.


Так выглядит игровой процесс

Первые несколько недель я честно набивал очки тысячами, пока не надоело.
Набрав 100 000 очков и оторвавшись от преследователей в 2-3 раза, я изрядно
устал и забил на это дело. Но по прошествии нескольких месяцев меня стали
догонять в рейтинге. Тут-то и проснулся мой эгоцентризм: желание сохранить
первую строчку рейтинга вынудило меня обдумать пути набора очков без лишней
траты времени.

Первым делом я полез смотреть трафик приложения: что куда передается, что
приходит обратно. Для анализа HTTP-трафика я еще не встречал инструмента лучше,
чем приложение HTTPWatch для
Internet Explorer’а. Итак, я запустил игру, нажал кнопку "Record" в аддоне для
записи логов… и вот тут мне, как говорится, и "пришли 2 туза на префлопе". Я
увидел, что приложение передает все свои данные как есть, в открытую.


Трафик "глазами" HttpWatch

Изучив трафик я обнаружил, что переменная state принимает следующие значения:
PHASE1, PHASE2, PHASE3, GUESS, LOSE. Это соответствует стадиям игры в каждом
раунде: все буквы скрыты, одна буква открыта, две буквы открыты, слово угадано,
слово не угадано. Как видишь, в открытую передается question_id, что, как
несложно догадаться, есть номер вопроса. В случае первых трех фаз в поле "question_mask"
передается маска слова. Например, если state=PHASE3, первая буква C, вторая
буква A, то маска слова – ??С?A. Если текущая фаза – GUESS или LOSE, то слово
будет отображено на экране целиком, чтобы показать пользователю ответ.
Соответственно, в переменной question_mask это также отобразится: там будет
слово полностью, без знаков вопроса.

Смотри внимательно. В конце каждого раунда мы получаем номер вопроса и ответ
на него. Именно это открытие и навело меня на идею автоматизировать процесс.
Ведь каждый раз, когда мы получаем слово, мы заносим его в нашу базу данных
слов. Если же такой question_id там уже есть, то мы берем слово и вписываем его
в окошко программы, за что получаем очки. Само собой, что проверку на наличие
слова в базе нужно делать в тот момент, когда state будет PHASE1, PHASE2 или
PHASE3. Таким образом, наш бот будет самообучающимся: нет слова – запоминаем,
есть слово – отвечаем на вопрос.

Кодинг

Как же это все реализовать на практике? Для начала нужно научиться самим
перехватывать трафик. Рассмотрим доступные нам варианты. Их будет три.

Первый вариант – это перехват пакетов сетевого интерфейса. Достаточно
низкоуровневый способ, требующий навыков взаимодействия с внешними библиотеками,
сетевыми интерфейсами и, в целом, умения работать с операционной системой на
низком уровне. Тебе пригодится библиотека WinPCap, которая позволяет получать
пакеты в чистом виде прямо с сетевого интерфейса. В остальном – Гугл в помощь.

Читайте также:  Группировка вкладок в firefox

Второй путь – это работа с Internet Explorer. Этот способ, пожалуй, самый
высокоуровневый, так как мы получаем уже готовый, обработанный трафик. Для
перехвата трафика таким образом необходимо владеть COM-программированием: уметь
подключаться к COM-объектам (каковым является компонент IWebBrowser2 внутри окна
Internet Explorer’а), реализовывать интерфейсы и работать с ними. Способ требует
серьезных знаний в вышеуказанной области, поэтому я решил делать "как дед учил",
третьим способом. А это у нас реализация прокси-сервера. Точнее говоря, Socks
4/5 сервера. На этом способе заострим наше внимание. Заострим немного, так как
статья все же не о создании Socks-сервера, поэтому нагружать ее кодом не буду.

Начать написание Socks-сервера стоит с изучения вот
этого мануала.
Для ленивых и англонемых будут мои пояснения на русском. Но сперва реализуем
серверное приложение. Есть несколько способов сделать приложение-сервер, начиная
со старого…

SOCKET mysocket
sockaddr_in local_addr;
local_addr.sin_family = AF_INET;
local_addr.sin_port = htons(MY_PORT);
local_addr.sin_addr.s_addr = 0;

mysocket = socket(AF_INET, SOCK_STREAM, 0);
bind(mysocket, (sockaddr *)&local_addr, sizeof(local_addr));
listen(mysocket, 1080);

SOCKET client_socket;
sockaddr_in client_addr;
int client_addr_size = sizeof(client_addr);

. и заканчивая вполне современным способом реализации серверов под Windows,
каковым является работа с сетевыми сообщениями при помощи функции WSAAsyncSelect().
Саму программу и ее полный исходный код на C++ в среде Visual Studio 10 можно
найти на нашем DVD. Рамки статьи не
позволяют детально описать процесс создания Socks-сервера, поэтому я ограничусь
лишь пояснением структуры программы и основных методов, которые я использовал.

Начать написание такого приложения стоит примерно c такого кода:

SOCKET server_socket;
WSADATA wsaData;
int server_port = 3128;
int queue_size = 5;
struct sockaddr_in server_address;
#define SERVER_ACCEPT WM_USER + 1
#define CLIENT_EVENT WM_USER + 2
#define TARGET_EVENT WM_USER + 3
#define SOCKET_OPENED WM_USER + 4
#define SOCKET_CLOSED WM_USER + 5
int ServerStart(HWND hWnd)
<
int rc;
WSACleanup();
WSAStartup(0x0101, &wsaData);
server_socket = socket(AF_INET, SOCK_STREAM, 0);

server_address.sin_family = AF_INET;
server_address.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
server_address.sin_port = htons(server_port);

bind(server_socket, (LPSOCKADDR)&server_address, sizeof(server_address)) ;
listen(server_socket, queue_size);
/* . */ rc = WSAAsyncSelect(server_socket, hWnd, SERVER_ACCEPT, FD_ACCEPT);
return 0;
>

Чем же этот код отличается от первого? А тем, что в данном случае нам не
нужно возиться с многопоточностью для обработки каждого подключения к серверу.
Благодаря выделенной строчке мы будем в нашем окне hWnd получать сообщения
SERVER_ACCEPT при каждом новом подключении клиента.

Теперь рассмотрим момент подключения. В процедуре обработки сообщений окна мы
ловим сообщение SERVER_ACCEPT и работаем с ним. Как только клиент подключился,
вызывается функция accept(), и далее регистрируется событие CLIENT_EVENT,
которое будет приходить главному окну нашей программы, как только в сокет
поступят данные либо сообщение о его закрытии:

client_socket = accept(server_socket, (LPSOCKADDR)&socket_record->client_address,
&len);
rc = WSAAsyncSelect(socket_record->client_socket, hWnd, CLIENT_EVENT, FD_READ |
FD_CLOSE);

Вернемся опять в нашу оконную процедуру. В ней мы будем обрабатывать
вышеозначенное событие CLIENT_EVENT. Значение lParam в данном случае будет либо
FD_READ (если событие было вызвано как сигнал о поступлении данных в сокет),
либо FD_CLOSE (если сокет был закрыт).

if(WSAGETSELECTEVENT(lParam) == FD_READ)
<
c = recv(socket_record->client_socket, &bf[0], 1,0);
.
>
if(WSAGETSELECTEVENT(lParam) == FD_CLOSE)
<
.
>

Таким образом, мы уже научились принимать подключения и читать данные с
сокета. Но вернемся к реализации Socks-протокола, упоминавшейся выше. Здесь я
покажу, как работает Socks5, хотя в моей программе реализована и 4-ая версия.
Вот что говорит нам RFC.

После подключения клиент посылает Socks-серверу два байта: номер версии (4
или 5) и количество методов аутентификации: N. После этого нам придет еще N байт
с номерами этих самых методов. Обычно приходят 3 целых числа: 05h, 01h и 00h. То
есть пятая версия и первый метод, значение которого 00h, означающий, что клиент
желает работать без аутентификации. В ответ мы должны вернуть два байта. Первый
– это номер версии, то есть 05h, второй – значение выбранного нами (сервером)
метода аутентификации из того списка, что нам предложил клиент. Так как клиент
обычно предлагает только 00f, то именно это мы обратно и вернем. Скушав наш
ответ, клиент пришлет запрос следующего формата: первый байт – номер версии,
второй – команда, третий – резервный байт, четвертый – тип адреса. После чего
будет идти группа байт непосредственно с самим адресом хоста-цели, а завершат
пакет два байта с номером порта хоста-цели. Формат группы байт с адресом
хоста-цели будет зависеть от того, какой тип адреса (четвертый байт) задается.
Мы будем работать с привычным IPv4, что соответствует значению 01h для
четвертого байта запроса. В этом случае группа байт будет размером 4, то есть
стандартного формата IP-адреса из четырех целых чисел. Номер порта хоста-цели
вычисляется как первый байт * 256 + второй байт.

Итак, у нас есть запрос от клиента, который нужно выполнить. Подключаемся к
хосту-цели по данному нам адресу и порту, ждем данных. Ждать данных будем как из
сокета нашего клиента, так и из только что созданного сокета для хоста-цели, с
которым клиент желает посредством нашего Socks-сервера пообщаться. Все, что
придет от клиента, посылаем хосту-цели. Все, что от хоста-цели, уходит клиенту.
Так и работает Socks-сервер.

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

Читайте также:  Браслет измеряющие давление пульс шагомер цена

Итак, мы научились перенаправлять трафик и, следовательно, слушать его.
Теперь, думаю, тебе не составит труда написать парсинг необходимых данных.
Обрабатывая данные мы, как я уже обозначил ранее, смотрим, есть ли в нашей базе
данных записи для искомого id. Если нет, то в момент наступления фазы LOSE или
GUESS мы заносим это слово в базу данных. Если же запись имеется, то настало
время сообщить игре правильный ответ. Это можно сделать двумя способами.

Первый "очень высокоуровневый" и одновременно сложный. Заключается он в том,
что мы подключаемся к COM-объекту IWebBrowser2 внутри Internet Explorer’a, в
котором у нас загружена игра. Получаем интерфейс Flash-ролика и уже
непосредственно с ним работаем через Flash API, что позволит нам вбить слово
прямо в текстовое поле и нажать кнопку ввода. Это очень круто. И очень сложно
:).

А что если ты не пользуешься Internet Explorer’ом? Да и реализовывать все
вышеописанное не хватает сил и желания? Есть старый добрый метод эмуляции
событий мышки и клавиатуры. Заключается он в использовании системной функции
SendInput. Это модернизированная версия keydb_event()/mouse_event(), которая
рекомендована производителем (Microsoft). Вот пример нажатия клавиши F5:

INPUT pInput;
pInput.type = INPUT_KEYBOARD;
pInput.ki.wVk = VK_F5;
pInput.ki.time = 0;
pInput.ki.wScan = 0;
pInput.ki.dwFlags = KEYEVENTF_EXTENDEDKEY;
SendInput(1, &pInput, sizeof(pInput));

Ура! Теперь мы умеем слушать трафик через наш Socks-сервер, самообучаться,
расширяя словарь при каждом новом слове, и отвечать на вопросы, которые нам уже
встречались. Цель достигнута!

Стоит добавить, что в программе, выложенной по ссылке выше, отсутствует
функция ввода данных. Только прослушивание трафика и отображение слов на экране.
Мне не хотелось бы, чтобы каждый второй начал терроризировать описанные
приложения и накручивать рейтинг. Более того, перед выходом этого номера журнала
в свет авторы приложений были проинформированы о наличии уязвимости, что,
вероятно, приведет к ее устранению. Если же ты захочешь повторить что-то похожее
на картину ниже, то, будь добр, напиши недостающую функцию ответа на вопросы
сам.


Вот что получилось в итоге

И это все?

И это будет вполне адекватный вопрос. Наличие уязвимости такого класса не
ограничивается лишь одним приложением. К слову сказать, весь цикл приложений
этого разработчика подвержен такого рода накрутке. А именно:

А также некоторые другие.

Поверхностный поиск среди приложений ВКонтакте дал еще несколько плодов.
Первый из них – это приложение "Пузыри".


Игра "Пузыри"

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


Вот что увидел Нео в Матрице

Любителям судоку ВКонтакте есть
свое местечко.


Такой вот расклад

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

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

Подводя итоги

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

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

Взломщикам. Надеяться на то, что на крючок попадется серьезная рыбка с
брешами в безопасности, такими, как были описаны выше, не стоит. Разработчики
крупных приложений (в особенности тех, где чувствуется присутствие денежной
составляющей) обычно умеют считать потери от деятельности любителей "покопаться
внутри". Так что возьми все вышесказанное на заметку без лишних иллюзий касаемо
сверхвыгодного применения этих знаний на практике.

Тем, кто все еще играет. Перестань. Это всего лишь точки на экране. Во многих
играх есть вполне реальная возможность автоматизации процесса игры и все твои
многочасовые, а в редких клинических случаях и многодневные, усилия будут
смотреться скудно по сравнению с результатами работы компьютерной программы.
Программа не хочет ни спать, ни есть. Она не устает и не сдается. Не нужно
соревноваться с программой. Живи реальной жизнью, а не жизнью "эльфа 80-го
уровня". Испытав все это в свое время на личном опыте, я бросил этим заниматься.
И вот, осознав, что знанием стоит поделиться с другими, я открыл текстовый
редактор и написал первые строки этой статьи.

Кому из нас не приходило в голову взломать чей-то пароль от Вконтакте, используя для этого свой телефон или планшет на Android? Уверены что многим хотелось бы узнать пароль Вк от страницы своей девушки, друга или просто случайного пользователя. К сожалению вручную подобрать такой пароль практически нереально. Но, попробовать всё же стоит, по статистике чаще всего люди используют такие пароли как:

  • 123456
  • DEFAULT
  • password
  • qwerty
  • abc123
  • 1234567890
  • abcd1234
  • 11111111
  • qwertyuiop
  • 7777777

Если эти и другие простые варианты не подошли, то для осуществления взлома вам смогут помочь специальные приложения. На сегодняшний день в Google Play можно скачать большое количество бесплатных приложений для взлома Вконтакте.

Читайте также:  Бачок унитаза покрывается конденсатом

Но какое из приложений лучше выбрать? Мы решили облегчить вам поиск и подобрали 5 самых лучших программ для взлома Вконтакте через Андроид. Вы можете скачать любое из них совершенно бесплатно и удивить своих друзей и близких своими хакерскими возможностями.

Как вы наверное догадались, в отличии от программ для взлома игр и приложений для заработка, все эти и другие приложения для взлома ВК созданы только для развлечения и шутки над друзьями. Все пароли генерируются случайным образом и лишь создают видимость взлома. Если вы всерьёз задумали подобрать пароль, то скажем сразу — настоящих программ для взлома VK на Андроид просто не существует. А если на каком-то сайте вам обещают такое приложение, то в лучшем случае — вас просто обманывают, а в худшем — вы скачаете вирус.

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

Программы для взлома Вконтакте

1. Взлом ВК, Вконтакте

Удивите своих друзей хакерскими способностями. В приложении реализован специальный алгоритм для имитации взлома пароля и дальнейшего перехода к переписке “жертвы”. Взлом Вк – это отличный способ весело провести время, подшутив над своей девушкой или другом. На самом деле никакого взлома не происходит, а пароли подбираются случайным образом.
Совет: показывайте экран с перепиской не более 10 секунд, чтобы “жертва” не догадалась.

СКАЧАТЬ В GOOGLE PLAY

2. Взлом ВК

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

СКАЧАТЬ В GOOGLE PLAY

3. Взлом ВКонтакте

Ещё одно приложение, которое имитирует взлом аккаунта ВКонтакте.
Удивите свою девушку и покажите им это приложение. Помните, что это приложение предназначено только для прикола и оно не может совершать настоящий взлом. Все пароли генерируются случайно и не являются настоящими.

СКАЧАТЬ В GOOGLE PLAY

4. VK Hacker

Приложение розыгрыш для взлома аккаунта ВКонтакте. Разыграйте своих друзей и покажите им какой вы хакер. В программе сделан специальный интерфейс, который реалистично имитирует процесс взлома пароля, после чего вы переходите к сообщениям «жертвы». На самом деле, как и в предыдущих приложениях, взлома страницы VK (Вконтакте) нет. Пароли и сообщения создаются случайным образом. Для большей убедительности: показывайте экран жертве не более 10-15 секунд, что бы человек не смог догадаться о приколе.

СКАЧАТЬ В GOOGLE PLAY

5. Взломать Vkontakte

Вы хотите подшутить над своим другом или прочитать переписку девушки? Тогда это приложение точно для вас. Всего пара кликов и вы сможете получить доступ ко всей информации абсолютно бесплатно. Приложение имитирует подбор пароля. Подшути над друзьями и покажи свои хакерские навыки.

СКАЧАТЬ В GOOGLE PLAY

А какая программа для взлома Вконтакте понравилась вам? Поделитесь своим мнением, оставив комментарий внизу страницы, возможно ваше сообщение окажется полезным и поможет определиться с выбором другим пользователям.

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

Желание легкой наживы можно легко объяснить: не каждый игрок захочет заплатить за временные бонусы или игровую валюту, здраво рассуждая, что это перебор. Однако никто не откажется от высоких характеристик или дополнительной виртуальной и реальной валюты. А если есть спрос, то рано или поздно, появится предложение. Каким оно стало для социальных игр?

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

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

  1. Память. Большинство популярных приложений подменяют значения характеристик в памяти приложения, чтобы накрутить параметры в игре. Активно использовался более 5 лет назад, поэтому почти все современные игры уже имеют защиту против подмены значений в памяти.
  2. Пакеты. Чтобы отправить информацию о своих действиях на сервер, пользователь отправляет определенные пакеты данных, которые усваиваются системой. Некоторые читы используют пакеты при обмене клиент-сервер, чтобы изменить нужные параметры или получить выгоду в игре;
  3. Процессы. Наиболее сложные и «приватные» читы отображают процесс игры и позволяют изменить на свое усмотрение. К счастью, такие программы отсутствуют в свободном доступе и получить их не так просто, как кажется.

admin

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *