Авторизация:


Сообщество людей и технологий
Сегодня у нас: год

Уже есть аккаунт? Войти
Присоединяйся к нашему гик сообществу!

Создай свой блог, делись интересной информацией из мира высоких технологий.

Тотальный разгром! Реверсим Total Commander и обходим защиту всех версий
Статьи, 10-02-2018, 03:40

Тотальный разгром! Реверсим Total Commander и обходим защиту всех версий

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

  • Что делаем?
  • Инструменты
  • Процесс
  • Как работает механизм proxy DLL
  • Кодинг
  • Финал
  • Итоги

Total Commander (ранее Windows Commander) — популярный файловый менеджер с графическим интерфейсом для Windows. В интернете на варезных сайтах можно найти множество решений для взлома Total’а. Их неизменный недостаток — костыльность: с выходом новой версии надо проделывать ту же процедуру «лечения» программы вновь и вновь. Но можно и по-другому. Хочешь узнать как и заодно прокачать скиллы в реверсе? Читай эту статью!

GREETINGS

Вначале хочу поблагодарить своих товарищей с сайта exelab.ru и передать привет:

  • Jupiter,
  • Mak,
  • VodoleY,
  • ELF_7719116,
  • Kindly

и многим другим. Спасибо!

Какое-то время назад мой друг Jupiter предложил вместе разобрать алгоритм лицензирования Total’а. Пораскинув мозгами, мы написали генератор лицензии — файлов-ключей. И все было бы замечательно, если бы не присутствие в основе алгоритма лицензирования криптосистемы с открытым ключом — LUC. И ключи, разумеется, для успешного прохождения лицензирования нужно знать.

LUC — это похожая на RSA криптосистема. Ее отличие от RSA заключается в использовании последовательностей Люка вместо возведения в степень. Как и для RSA, для генерации закрытого ключа необходимо знать множители (P и Q), которые можно получить через факторизацию модуля (N). Но в нашем случае длина модуля — 832 бита. Естественно, ни у меня, ни у Jupiter’а таких вычислительных мощностей нет. А на квантовый компьютер мы еще денег не накопили. ????

Как повлияло бы на описанную атаку увеличение модуля (N) до 2048 бит?

  • Увеличило бы время атаки вдвое
  • Сделало бы атаку невозможной за разумное время
  • Никак не повлияло бы

Загрузка …

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

Помимо LUC, в Total’е присутствуют механизмы самозащиты, защита от модификации исполняемого файла. Можно, конечно, хардкорно запатчить файл, но это как раз и есть «костыль», который лишает обход защиты универсальности.

WARNING

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

Что делаем?

Наша задача — заменить модуль (N) в исполняемом файле программы, не нарушая его целостности. Тогда наш сгенерированный файл ключа будет верно расшифрован и программа будет зарегистрирована.

Существует два варианта решения данной задачи:

  1. Написать загрузчики для х86- и х64-версий программы (Loader).
  2. Написать proxy DLL, которые будут выполнять ту же функцию, что и загрузчики.

Оба варианта позволяют беспрепятственно обновлять программу. Но я выбираю второй вариант, он более удобный. В этом варианте не нужно будет исправлять пути в свойствах ярлыков программы с исполняемого файла Total’а на наш лоадер. Достаточно просто скопировать DLL’ки и файл ключа в папку с установленной программой.

Инструменты

  • x64dbg — отладчик;
  • masm x32 — компилятор;
  • masm x64 — компилятор;
  • wincmd.key — ключ для программы, сгенерированный моим с Jupiter’ом кейгеном.

Процесс

Что делает proxy DLL?

  • Устанавливает локальный прокси для эмуляции лицензирования онлайн
  • Перенаправляет вызовы функций оригинальной DLL через себя, подменяя используемые для проверки лицензии
  • Запускается во втором кольце защиты, подменяя указатель на лицензионный ключ

Загрузка …

Я скачал с официального сайта последнюю бета-версию, включающую в себя обе версии программы (х86 и х64). Установил директорию, которую предложил инсталлятор (C:totalcmd).

Установленные файлы

Теперь запускаем на выбор TOTALCMD.EXE или TOTALCMD64.EXE, без разницы. Получаем вот такое окно.

Это было ожидаемо. ???? Теперь запускаем Total под отладчиком и заходим в закладку Symbols.

В левой половине окна видим загруженные в память процесса модули (DLL). Из всех модулей нас интересуют только две динамические библиотеки — это version.dll и winspool.drv.

Пусть тебя не смущает, что у winspool.drv расширение не dll, на самом деле внутренняя структура у winspool.drv как у обычной динамической библиотеки. Эти два модуля и будут кандидатами для написания одноименных proxy DLL для Total’а.

Продолжение доступно только подписчикам

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

Подпишись на «Хакер» по выгодной цене!

Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов. Подробнее о подписке

1 год

6890 р.

Экономия 1400 рублей!

1 месяц

720 р.

25-30 статей в месяц

Уже подписан?


Добавьте комментарий, Ваше мнение очень важно:

Имя:*
E-Mail:
Комментарий:
Вопрос:
rgjrg
Ответ:*
Введите код: *


Самое интересное:
    Гику на заметку:
    Не iPhone самый продаваемый телефон в истории
    Новый планшет BlackBerry PlayBook
    Особенности ремонта айфонов своими руками
    Переделка дачи
    Как выбрать недорогой смартфон
    Зависимость от... мобильного телефона и телевизора
    Востребованные чехлы для ipone 4
    Apple. Истинный лидер или дань моде?
    Чехлы для смартфонов и айфонов
    Вопрос:

    Какую мобильную ОС Вы предпочитаете?

    Android
    iOS
    Windows Phone
    Другая
    Нет ОС

     


    2024 © Cig-bc.ru - Сообщество людей и технологий.

    Все права защищены.

    При цитировании любых материалов, публикуемых в журнале, обязательна ссылка, помещенная не ниже первого абзаца текста. При копировании новостных материалов для интернет-изданий обязательна прямая открытая для поисковых систем гиперссылка, размещаемая вне зависимости от объема используемых материалов (полного или частичного). По вопросам рекламы пишите на sales@cig-bc.ru !

    Категории:

    Новости IT
    Гаджеты
    Железо
    Софт
    Игры
    Информация:

    О проекте
    Регистрация
    Статистика
    Карта сайта
    RSS
    Контакт:

    Обратная связь
    Email: admin@cig-bc.ru