Как сделать чит (пакетчик) на примере авто-спама для Blood and Soul.
Читы и боты для Blood and Soul
Как сделать чит (пакетчик) на примере авто-спама для Blood and Soul.
А точнее в статье описан способ реализации читов на основе использования функций игрового клиента. А если ещё точнее, то описан метод создания пакетчика на примере спамера 🙂
Недавно получил заказ на создание авто-спамилки для игры Blood and Soul с сохранением моего права на его распространение. Штука не особо востребованная, поэтому решил рассказать вам на примере реализации спамера о довольно интересном методе создания читов для игр. Ну и в целом статья поможет вам понять ход мыслей программиста при создании нужного чита. Ссылки на инструменты я дам в конце статьи.
Далее постим в чат, например, «aaaa», после чего срабатывает наш breakpoint:
В стеке мы имеем аргументы, с которыми вызывался send. Из них вытаскиваем адрес пакета и его длину. Вот таким образом разным текстом и в разные чаты шлём несколько сообщений и ловим соответствующие пакеты. Вот несколько пакетов чата:
Шлём сообщение в чат и что мы видим? Бряк не срабатывает. Чисто логически это означает, что данный метод зациклен (если исключить варианты защиты от бряков). Да и по его названию можно понять, что это поток, который берёт из некой кучи пакеты и отправляет их в сокет. Побегав по этому методу бряками моя версия подтверждается. Может показаться, что мы в тупике, потому что мы не знаем какая функция или метод кладёт сгенеренные пакеты в кучу. На самом деле логично предположить, что адрес этой кучи должен быть константным. Снова пару раз брякаемся на send() и видим, что отсылаемый пакет меняется, но всегда лежит по одному и тому же адресу! В нашем случае это 0x05280264 (смотрите скриншот №2). Дальше всё элементарно! Ставим бряк на запись в память по этому адресу и пишем в чат:
Вуаля! Мы попадаем в метод AddMsg, в котором пакет записывается в эту самую очередь (буду называть её «кучей»). Этот метод в свою очередь вызывается методом Send класса XClient. Брякаемся на нём и постим любимые «aaaaa» в чат:
И вот мы внутри Send, смотрим его аргументы и понимаем, что дело в шляпе. Функция Send принимает два аргумента: отсылаемый пакет и его размер, после чего просто добавляет его в очередь. Если внимательнее посмотрите на пакет, то заметите, что в нём отсутствуют те первые 4 байта, значение которых мы хотели определить. По всей видимости они добавляются к пакету в методе ThreadSend. Но это для нас уже не важно, потому что мы можем слать пакеты через этот самый Send, а неопознанные байты будут добавлены методом ThreadSend.
В EDX можно передавать мусор, а вот указатель на класс, к сожалению, должен быть заполнен. Как его найти? Можно тупо через Cheat Engine найти его расположение через указатели, можно хукнуть какой-нибудь из методов этого класса и просто сохранять значение ECX для дальнейшего использования. Тут уже сами, т.к. задача тривиальна.
В итоге код, который шлёт пакет, занимает всего несколько строчек:
Спам-бот в Телеграме! Огромное количество сообщений на номер.
А вы знали, что спам-бот в Телеграме поможет вам пошутить над своими друзьями? Если не знаете, где его найти, то я вам сейчас обо всём подробно расскажу.
Spammim
Есть такой бот в Телеграме… Он делает массовую регистрацию на всех сайтах с использованием определенного номера. А затем отсылает огромное количество сообщений на указанный вами номер с кодами от различных сервисов.
Называется @BomberFree_bot.
Что делать
Примечания
Сорви овации
Будьте самыми стильными! Используйте суперэффекты:
Еще куча лайфхаков, секретов обработки, лучших фильтров и необычных масок. А также о том, как сделать радугу на лице, наложить текст, правильно разложить раскладку на фото, описано в сборной большой статье. Кликайте на картинку!
Теперь вы знаете, что это за такой спам-бот в Телеграме. Попробуйте пранкануть своих друзей, если хотите. И следите за их реакцией.