Крэк на FlashGet - легкоDelphi , Программа и Интерфейс , Исследование программКрэк на FlashGet - легко
Автор: Bad_guy FlashGet(JetCar) - это замечательная программа для быстрого скачивания файлов из интернета, вот заходим мы на интерду, находим пара сайтиков, находим логику в нумерации картинок, создаём список... и поехали... ну или на даунлодру заходим. В общем, программа не выкидывает НАГ окон, но показывает баннер в верху своего окна, и многим это даже совсем не мешает, если вам не мешает - не надо его убирать, ведь авторы именно на этих показах и делают деньги, и пускай делают, мы лишь исследуем программный код с целью выясенения их ленивости. Был у меня такой FlashGet - 0.86 и был 1.10, я решил посмотреть версию 1.10 и наконец-таки избавиться от, отвлекающего меня, баннера. Во FlashGetе в окне "Убрать баннер" я ввёл своё замечательное имя, Bad_guy, и 12345 в качестве кода, нажал OK и получил сообщение: "Спасибо за регистрацию!....Перезапустите программу...". Неужели, я угадал код - конечно нет - просто программа у нас "крутая", она проверяет пароль при запуске. Ну что ж, перезапустим под RegMon'ом, что же мы видим: в реестре есть ветка, где живет наш FlashGet по имени JetCar, вот она: HKEY_CURRENT_USER\Software\JetCar\JetCar\, посмотрим в этой ветке раздел General. Этот раздел содержит два преинтересных параметра RegName="Bad_guy" и RegPass="12345", вот почти наш FlashGet и попался, мы теперь знаем, что, в принципе, можно поставить прерывание на функцию RegQueryValueExA? но она плохая функция - её слишком часто вызывают многие программы, боюсь, сложно будет докопаться до истины (FlashGetа). Признаюсь, что я тщетно баловался SoftIce'ом достаточно долго, прежде чем понял, что он мне не поможет целиком "сломать" FlashGet и я решил взять W32Dasm. После того, как программа была раздизассемблирована можно было догадаться, что скоро настоящий регистрационный код для FlashGet мною будет найден, давайте взгляним на этот дизассемблированный код, важные строки я выделил красным цветом:
Как можно увидеть из листинга, я искал имена параметров, под которыми в реестре сохранены наши регистрационные данные. Каждый из них встречается в листинге дважды, первый раз я увидел рядом строку "Спасибо за регистрацию...", в общем это то место, где мы вводили наши данные, а вот второй случай более интересен, беру этот адрес (ну, например, 0041807F) и ставлю в SoftIce прерывание на него, если не знаете, как это сделать - подскажу - (перед тем, как запускать FlashGet поставьте в SoftICE прерывание bpx hmemcpy и запустите FlashGet, сразу же прервётесь, жмите F12, пока не окажетесь в модуле по имени FlashGet, а дальше спокойно ставьте прерывания на любые адреса, полученные для этой программы в W32Dasme - этот метод "добраться до программы" хорош для любых программ, а не только FlashGet). Вот мы уже прервавлись по адресу 0041807F, смотрим по моей методике бегло все "прыги" и значения в регистрах и вот мы добрались до 00418144, давайте ещё раз поглядим на этот код:
Если даже не будем смотреть значения в регистрах, всё равно увидим, что jne 0041819A отправляет нас за ближайший RET, а это подозрительно, теперь поглядим значения в регистрах перед CALLом, наберём: Проверим, введя эти данные в FlashGet и получим, что мы правы и что: Регистрационный ключ для FlashGet(JetCar) Version 1.10
Name: Bad_guy А вот памятка, которую я по-быстрому набросал специально для себя с целью будущего исследования новых версий FlashGet: Вводим любые рег. данные, ищем их в реестре: HKEY_CURRENT_USER\Software\JetCar\JetCar\General, название параметров (RegName, RegPass) ищем в W32Dasm дизассемблерном листинге, ставим в SoftIce прерывание на второй из двух найденных адресов, смотрим в SoftIce, перед RET есть JZ. Перед входом в CALL, меняющий флаг, есть PUSH eax, PUSH ecx - в EAX неправильный номер, в ECX - правильный. (адрес для версии 1.10 был 41814D). Удачи вам в вашей деятельности, чем бы вы ни занимались, Bad_guy. Статья Крэк на FlashGet - легко раздела Программа и Интерфейс Исследование программ может быть полезна для разработчиков на Delphi и FreePascal. Комментарии и вопросыМатериалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Исследование программ ::
|
||||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |