Sublime Text 2, бесплатная лицензия

Недавно на хабре проходил опрос, "В чем чаще программируете?". В комментариях к опросу живо обсуждался редактор Sublime Text 2, которой по их словам круче, чем Notepad++, является убийцей TextMate и тому подобное.

Почитав описания, посмотрев на сам редактор, он мне очень понравился, грузится намного быстрей, чем Komodo Edit, и конечно намного удобней, чем gedit для быстрого редактирования файлов, потому что имеет огромное количество фишек. Да и дизайн интерфейса и темная тема подсветки синтаксиса (на которую я недавно перешел), сильно мне приглянулись. В общем, это теперь мой основной текстовый редактор на Windows и Linux.


Основной проблемой Sublime Text 2, по словам хабровчан, является то, что напоминание о покупки лицензии выскакивает каждый час работы.

Хех, возможно для них это и проблема...

Скачав последнюю на данный момент сборку 2181 под 32 битный Windows, первым делом я открыл ее в отладчике OllyDbg 2.03, который заблаговременно скачал с exelab.ru. Вспоминая цикл статей "Введение в крэкинг с нуля, используя OllyDbg", за несколько часов (очень давно не занимался подобным) нашлось смещение на два байта, которые в корне меняют поведение программы.



Опишу кратко, что происходит на видео.

Если попробовать ввести лицензию выскакивает стандартный MessageBox.
Нам нужно найти, где в коде происходит его вызов, для этого мы просматриваем импортированные функции и ищем там MessageBox, после чего ставим точки останова на все вызовы (один да сработает).
Вызов сработал, но в какой-то непонятной функции, где нет упоминания о лицензии вообще, посмотрим в стеке, откуда была вызвана данная процедура. Мы попадаем в процедуру проверки окна ввода лицензии, на видео видно, что на адрес 0x12F730B происходит прыжок в случае неверной лицензии, найдем место условного перехода и поиграем с флагами и регистрами.
Выше места сравнения идет вызов процедуры, которая меняет регистр EAX, это и есть процедура проверки лицензии в программе она вызывается в двух местах, при открытии файла и после ввода лицензии. Патчим эту процедуру и программа любую последовательность байт примет за родную лицензию.

Profit :)

blog comments powered by Disqus
сюда туда