Написание кейгена к Ad Muncher 4.3dDelphi , Программа и Интерфейс , Исследование программНаписание кейгена к Ad Muncher 4.3d
Target: Ad Muncher v4.3d Tools:
Вступление Что делает прога? Удаляет баннеры с Web-страниц закачиваеммых из Инета. Что побудило меня сломать эту прогу? Да вообщем-то сущий пустяк, было нечего делать. Включил комп. Взял один из последних дисков журнала Hard&Soft за 4.2002. Установил первую попавшуюся на глаза прогу и тут оно началось... Начало Первое с чего начинается любой взлом это определить какую защиту имеет программа. В основном это имя-код, код, ключ-файл (отсортированы в порядке встречаемости в природе). Запускаем прогу, заходим в About, нажимаем нужную кнопочку и видим Name/Code, что и следовало ожидать. Все понятно. Активные действия Пишем любые имя и код. Нажимаем зарегистрировать. А нам фигу на чем-то очень похожим на MessageBox. Ладно лезем в Soft-Ice ставим бряк на GetWindowsTextA должна же как-то параметры брать? Опять жмем на кнопочку... Что не можете нажать? Функция говорите постоянно вызывается ну пойдем от обратного. Ставим бряк на MessageBoxA. Опять жмем. Вываливаемся в айсе. И видим это место.
А почему сегмент кода в начинается с 5, а не 4. Наверное мы в какой-то библиотеке программы. Посмотрим... Да точно есть у нее библиотека. AdMunch.dll. Попробуем подсунуть ее Win32Dasm'у - не хочет. Значит запакована чем-то. Попробуем определить чем запакована на глазок. Запускаем любую смотрелку, смотрим, а там в начале написано UPX 1.2. Ну все понятно. Распаковываем. Я использовал сам паковщик UPX с ключем -d. Вот так-то лучше. Он в отличие от AsPack'a не портит заголовок файла. Так что можно его смело кидать в Win32Dasm. Дизассемблировался хорошо. Смотрим ссылки на строки. А там ничего связанного с регистрацией. Жаль. Можно посмотреть и в AdMuncher.exe, но и там тоже нет. Значит строки зашифрованы. (К сведению: по-моему глубокому мнению прога написана на асме отсюда и такой маленький размер). Погоревали и ладно. Мы же знаем откуда вызывался MessageBox c 0057C5F2. Посмотрим - НЕТ! Аааа догадываемся мы, просто файл дизасмен со смещения 400000, а в память грузится с 570000. Тогда все ясно идем к точке 40C5F2. Да точно тотже call. Посмотрим кто его пользует. Мотаем вверх и видим
Значит возможен вызов из этих точек. Снова лезем в программу, ставим бряки на все три точки, запускаем регистрацию и вываливаемся в 57C4E7. Поосмотримся вокруг нее...
Из фрагмента кода становится понятно, что где-то в 14 символах ищется символ "-" (минус). Яснее ясного, что в коде. Ведь имя же может быть любым сказал я себе и написал в пароле один минус. Мой пароль был таков 11-22334455. Да, еще не забудьте поставить бряк на 57C4D9 (bpx 57C4D9). Генерация ключа Вываливаемся вна этом фрагменте и начинаем трассировать по шагам F8. Доходим до процедуры
И заходим в нее. И видим следующий текст. Я написал комментарии и надеюсь из них все станет ясно.
Общий смылс этого куска кода: вычисление контрольного числа 1 куска кода (до знака минус). И сводится к такому куску кода
Вот такая штука получается. Вышли из процедуры и видим такой код:
Здесь даже выделять ничего не надо в кейген чистый код. Нашли еще один результат (в ecx). Смотрим дальше
Смотрите результат первой процедуры влияет только на вторую процедуру, где подсчитывается контрольная сумма имени. Значит ее можно взять статической. Например, если код начинается так 1-, то добавка в ebx при подсчете будет 1. (Можете взять что-то другое). Кстати, если понаблюдать, то можно заметить, что все имя преобразуется в нижний регистр. Написание кейгена За неимением времени C++, я пока выучить не озаботился, по-этому, кейген будет на Delphi. Если прочитаете статью Dr.Golova, как писать маленькие проги на Делфи, можете переделать его. Но я сляпал просто.
1) Создаем форму и два компонента Edit с именами Code и Name Нажимаем два раза на кнопку и начинаем писать кейген. (Если немножко присмотреться, то обратная к третьей процедуре будет генерация из результата второй ее hex-вида) Вот моя процедура, я ее прокоментрирую и разобраться не составит труда:
Вот и все! Дело сделано. 3 часа парился писал это. Ломал немного дольше, спасибо автору за сие творение. Как вы видите писать кейгены не так сложно как кажется. Хотя иногда понять смысл формулы пропущенной через хреновый компилятор бывает не легко. Удачи в Reversing Engeneering! З.Ы. Товарищи по оружию будьте снисходительны не выкладывайте кряки на всеобщее использование. Товарищи программисты не надейтесть на совесть крякеров - делайте защиту лучше!
Все ругательства отправлять в null P.S. Запомните все материалы публикуются только в учебных целях и автор за их использование ответственности не несет!! P.P.S. Возможно имеют место опечатки, заранее извините! With best wishes Fess И да пребудет с вами великий дух bad-сектора. Статья Написание кейгена к Ad Muncher 4.3d раздела Программа и Интерфейс Исследование программ может быть полезна для разработчиков на Delphi и FreePascal. Комментарии и вопросыМатериалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Исследование программ ::
|
|||||||||||||||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |