Ломаем бот для vkway

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



Инструмент:
SAE (Simple Assembly Explorer)

Софт написан на .NET, по этому без зазрения совести отправляем его в SAE, софт ничем не обфусцирован и найти функцию проверки ключа не составило труда:


Первое что приходит на ум - просто забить NOP'ами не нужные функции, но можно и перепривязать данный софт на свой сайт (естественно на бесплатном хостинге, ведь это нынче модно у школо-кодеров)

Перепривязка софта.

 Для начала нам нужен хост, естественно бесплатный, для этого регаемся наhostinger.ru и создаём свой сайт. Для того что бы перепривязать софт нам потребуется знать имя своего компьютера, узнать его очень просто - запустите данного бота и в его окне появится следующее:
 

Копируем то, что замазано, оно нам сейчас пригодится. Идём сюда: ТЫК и вставляем имя компьютера, к нему добавляем "vkway" (без кавычек) и получившийся md5 хеш копируем в любой файл у себя на сайте.

Подробнее о данных телодвижениях:
Функция на первом скрине берёт имя компьютера и прибавляет к нему слово vkway, после чего вычисляет хеш сумму от получившейся строки ищет её в файле на сервере, если найдено - значит программа зарегистрирована!

Осталось просто изменить адрес сайта:
  1. Переходим на вкладку "details"
  2. Находим строчку h**p://oauth.zz.mu/avtoriz.php (третья строка с 0)
  3. Кликаем ПКМ и выбираем пункт "Edit"
 
 

В открывшемся окне вписываем свою ссылку и нажимаем OK.

Теперь пробуем запустить программу:


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

Делаем паблик версию.

Тут всё очень просто, переходим опять в IL код и NOPим всё что не касается разблокировки:
 
 
Вторую часть (то что выделено) нопим не до самого конца:
 
 
Теперь сохраняем кнопочкой "SAVE" на верхней панели. 
Что бы посмотреть что получилось в итоге - можно открыть пропатченный файл в SAE:
 
 
Остался мусор, но нам он не мешает, софт прекрасно запускается.
 
Из данной статьи мы почерпнули очень многое, но самое главное это то что надо писать софт на Delphi, и не калечить свою психику ущербным .NET который ломается за 5 минут.
 

PRCR Bot v2.0

 
Ну вот, наконец то вышло обновление сайта PRCR и почти сразу я начал переделывать бота под него! Это пока что тестовая версия, ближайшую неделю буду обновлять и дописывать новые функции.




Этот бот предназначен для сайта PRCR.org

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

В отличие от прошлой версии в этой добавлена поддержка групп и лайков.

Функционал:
[♥] Ставит лайки
[♥] Добавляет в друзья
[♥] Вступает в группы
[♥] Регулируемая задержка между заданиями
[♥] Выбор кол-ва выполняемых заданий за раз
[♥] Антигейт и ручное распознавание каптчи
[♥] Умный слив баллов

Плюсы:
[+] Высокая скорость
[+] Поочерёдное выполнение сразу 3-х типов заданий
[+] Ведение подробного лога
[+] Ведение статистики
[+] Соблюдение лимитов
[+] Ожидание новых заданий
[+] Защита пароля после авторизации

На доработку данного бота ушло 3 дня, при этом полное тестирование не проводилось, если будут обнаружены глюки/баги/неполадки пишите в комментариях, новая версия с возможностью указывать свою реферальную ссылку в билде бота появится примерно через неделю когда я накоплю не много баг-репортов.

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

Касаемо функции "Что бы бот отписывался после проверки задания" - такого не было и не будет, давайте быть честными друг с другом, тем более есть бот который всё делает за Вас!
Вам тоже было бы не приятно если из группы уйдёт 99% человек. Моё мнение таково и не стоит предлагать данную функцию.

Подумываю ещё о многопоточной версии, она была и сейчас есть, но переделывать придётся многое, так что не уверен что будет.
 

Ломаем VKFucker

 
На просторах интернета появился, вы не поверите, брут ВКонтакте по цене 320-350 рублей! Какая то несправедливость, придётся вновь покупать этот софт для всех с помощью отладчика.


Инструмент как всегда стандартный.
IDR - Отладчик для Delphi приложений 
OllyDBG - Отладчик 

Начнём с того что загрузим данный софт (он в конце статьи) в IDR и найдём таймеры:


Автор любит быдлокодить, не ужели трудно использовать 1 или хотя бы динамически создавать раз такое дело? Ну да ладно, нас интересует первый таймер в котором происходит вызов функции по адресу 0061DF6C, а вот её функции:

1. Проверка запущенных снифферов:

 
 
И их завершение по средствам PostMessage:


Можно занопить те вызовы функции которые я подчеркнул что бы мы могли спокойно сниффать программу.

2. Самое интересное, проверка лицензии:


Всё начинается с того что автор проверяет к тому ли серверу мы обращаемся или нет, если нет то завершаем программу. Запишем адрес перехода (0061E105), он нам понадобиться чуть позже. Идём дальше в то место где собственно происходит проверка:


Тут всё очевидно, заNOPить условный переход над той строкой которую я выделил, но нет, мы поступим иначе! Помните тот адрес который записали? Вот с него мы и будем переходить на ту строку которую я выделил! Делается это просто (с помощью пробела вызывается данное окно):




В него вводим "JMP 0061E1EE", жмём assemble и получаем:


После чего сохраняем получившиеся изменения (как я делал в предидущих статьях)

Пробуем запустить:


Отлично! Но вам не кажется что эта надпись какая то одинокая? Давайте её изменим...

Первое что нужно сделать - найти самую длинную и не нужную (не используемую) строку, неиспользуемой у нас стала строка со ссылкой на проверку лицензии, которая находится по адресу 61E708


Жмём пробел и во втором поле пишем любой текст не более 40 символов! Обратите внимание что в конец строки необходимо добавить нулевой байт (HEX: 00) 


Строка готова, теперь смотрим где происходит присваивание слова "Лицензия":


Меняем значение которое я обвёл на адрес вашей строки в ресурсах (делается это в OllyDbg):


Сохраняем данные изменения и запускаем программу:


Отлично! Теперь мы можем наслаждаться нашей именной лицензией на данный софт, которую, хочу заметить, мы купили с помощью отладчика за 10 минут.

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

LM Bot

 
Долгожданное обновление! LM Bot - бот для приложения "Лайк машина".




Описание: 
Данный бот предназначен для накрутки сердечек в приложение "Лайк машина".

Как пользоватся:
1. Добавляем приложение
2. Авторизируемся в программе
3. Жмём "Старт"


Добавление ссылки:
1. Укажите ссылку на объект в соответствие с шаблоном:
  • photo_123_456
  • video_123_456
  • wall_123_456
2. Нажмите кнопку "добавить"
3. Если появилось сообщение о том что ссылка добавлена значит вы всё правильно сделали.
 

Генератор ключей из программы

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

Данный способ подходит в том случае, если в программе очень много проверок, NOP'ить их дело не благодарное!

Инструмент:
IDR - Отладчик для Delphi приложений + База знаний Delphi7 kb7.bin 
OllyDBG - Отладчик.

Для начала скачаем программу LiveStatParser - парсер ключевых слов из системы Liveinternet
(она будет в архиве в конце статьи) 

Открываем данный софт в IDR, кликаем по форме ПКМ и открываем процедуруOnCreate:


Интересный компонент! Не много погуглив я выяснил что данный компонент имеет много типов защиты, в данной программе тип PASSWORD, что, собственно, облегчает нам задачу.

По адресу 00557C1D в регистр ECX заносится наш ключик (валидный), вот его и надо вывести пользователю что бы тот в свою очередь просто ввёл его. 

Строка выделенная синим - проверка, она проверяет результат StrCmp, а эта функция в свою очередь просто сравнивает строки. Многие сейчас подумали - 1 NOP и готово! Но так не интересно...

Спустимся чуть ниже:


А вот тут уже выводится другой ключ! Но нам нужно вывести именно валидный, как мы знаем он брался из регистра EBP со смещением 10, а тут 18. Что надо сделать? Правильно,изменить смещение на 10.

Открываем в OllyDBG нашу программу, переходим на адрес 00557D0D (Сtrl+G) и с помощью пробела открываем редактор:


Меняем эту строчку, в результате должно получится так:


Сохраняем, запускам и видим:


Профит! Пробуем вставить этот ключик в файл key.key и смотрим результат:


Оригинальная (не модифицированная версия) спокойно прошла проверку! А это значит что мы только что сэкономили160р и можем пользоваться лицензионным софтом бесплатно.

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

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