RCE.SU - реверсинг, кодинг, выделенные сервера, ICQ, proxy

Исследование Erazer 98 v 3.22.

Прочитав прилагаемую документацию,мы узнаем следующее: программа написана на Delphi 4 ,она шареварная,работает 30 дней,в незарегистрированном варианте все опции отключены. Программа предназначена для удаления мусора с винчестера, имеет оригинальный интерфейс и проста в настройках,чем меня и привлекла,скачать сей шедевр,как я понял можно отсюда : www.intermedia.pp.se


Итак,настало время запустить программу и посмотреть,с чем нам придётся бороться.Да, при запуске видим наг,совершенно ненужное окно с раздражающей надписью SHAREWARE Violation-PLEASE REGISTER..,зайдём в меню tools/register,попробуйте зарегистрироваться, не получилось,не беда запомните сообщение на всякий случай,теперь жмем about,тут тоже облом "SHAREWARE VERSION PLEASE REGISTER",теперь в tools/options отделение files to ignore совершенно не активно,что удручает,но ничего, всё в этом мире поправимо,поэтому приступим.Are you ready? Let's go!!!


НАМ ПОНАДОБЯТСЯ СЛЕДУЮЩИЕ ИНСТРУМЕНТЫ:

1)W32Dasm v8.93

2)Любой НЕХ редактор, я использовал HEXWORKSHOP 32


Итак,создаём резервную копию ехе-файла,на всякий случай и начнём. Я буду описывать свои действия именно в том порядке, в каком я их производил сам,это сделано для того,чтобы показать ошибки к которым иногда может привести защитный алгоритм ломаемого объекта.Дизассемблируем прогу,посмотрим что мы имеем в String Data References,поищете то сообщение о неправильной рег. информации,не нашли?,зато я наткнулся на такую вот интересную фразу:"Thanks for registering!".Запускаем встроенный отладчик и переходим к коду, откуда это сообщение вызывается,посмотрим на код чуть выше

рис.1

видим сравнение,а затем переход,ставим бряк на него, жмём F9 в отладчике и пробуем зарегистрироваться,и мы не остановились на переходе посмотрим внимательно на код в рисунке 1, видите вверху надпись "Referenced by a (U)nconditional or (C)onditional Jump at Adress: 0046DF2E(C),кликнем по адресу 2 раза левой кнопкой мыши и окажемся вот здесь

рис.2

ставим бряк на переход и пробуем снова,теперь мы остановились по адресу 46DF2E, смотрим на флаг нуля(Z),он равен 1,значит перехода не будет,а он нам нужен,поэтому в отладчике жмём Patch Code,и меняем "jne" на "je", выполняемся и останавливаемся по адресу: 46DF7C, жмём на инструментальной панели прыжок и окжемся здесь

рис.3

видите зелёную надпись в самом низу, исходя из её смысла, я решил, что мне тут ловить нечего, всё на той же инструментальной панели жмём возврат и смотрим на флаг нуля, он равен 0,поэтому будет прыжок, а нам эьо не надо, снова патчим "jne" на "je",теперь F8 до появления сообщения с благодарностью за регистрацию. Сообщение это вызывается CALL-ом по адресу 0046DF9E, а чуть ниже видим следующий код

рис.4

видите надпись зелёненькую, я так думаю, что в коде после этой надписи нам ловить нечего, трассируем до "jne" и меняем на "je", выполняемся, жмём в исследуемой программе "About" и видим, что там появилась инфа, которую мы вводили при регистрации.Теперь патчим ехе-шник редактором и запускаем, регистрируемся,всё вроде нормально,но перезапустив программу снова увидим наг и все остальные атрибуты незарегистрированной версии,но не надо отчаиваться.Снова лезем в диз. и теперь посмотрим на список импортируемых функций, я там нашёл интересную функцию: Valid_licens и импортируется она из e98add1.dll, вы знаете такую сис-ную библиотеку?, я лично нет, поэтому немедленно натравим на неё диз. и посмотрим в String Data References, я нашёл 2 интересные ссылочки : PLEASE REGISTER и SHAREWARE VERSION.

рис.5

прыгаем на 43C5E6 и видим переход,меняем на "je" в редакторе, удаляем испорченный ехе-шник, восстанавливаем его из резервной копии, запускаем его регистрируемся и всё заработало как надо.Чтобы проверить правильность этого предположения поставте бряк на вызов фун-ции Valid_licens, по адресу 00469740 в ехе-файле и потрассируйте немного, вы увидите что найденный нами переход в дллке срабатывает сводя на нет все наши старания в ехе-файле. Вот так иногда можно зайти в тупик,когда защита реализовано во внешнем файле, а все признаки налицо в ехе-файле.


Данная статья написана для образовательных целей,а не для использования в корыстных целях.Исследование и написание данного материала выполнил GoKs.

Да, если возникнут какие-либо вопросы или вы обнаружите ошибки в исследовании можете написать мне по адресу:

goks@bigfoot.com


<= Вернуться к статьям

Rambler's Top100