Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 12 ноября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Исследуем защиту PDF2HTML 1.5

Обсудить статью на форуме

Массу крэкерских инструментов, видеоуроков и статей вы сможете найти на видеокурсе от нашего сайта. Подробнее здесь.

Автор: TITBIT <titbit@hakeris.net>

Подопотный кролик : PDF2HTML v1.5
Язык проги : Microsoft Visual C++ 6.0
Цель : взлом
Инструменты :
WinDasm32 v8.xx-9.xx,
PEid v0.8-0.9
EmEditor v3.37 (для написания этой статьи)
и холодное пиво, без него не уверен что получится.... :)))))

ВСТУПЛЕНИЕ

Понадобилась мне как-то преобразовать один текст из формата PDF в HTML, проги для этого я не имел пришлось искать в инете. После непродолжительного поиска наткнулся на PDF2HTML. Прога, как пишут авторы, преобразовывает PDF файлы в HTML, сохраняя текст, изображения, графику и закладки. Скачал, после установки запустил и наткнулся на окно регистрации, с тремя кнопками: ::OK:: ::BUY NOW:: ::TRY::. Введя свой ник: TITBIT и сериал : 12345678 попытался зарегить прогу, но как вы уже догадываетесь не чего не вышло, не тот бля ключ!!! Тогда нажал на ::TRY:: и попал на окно, которое грозно заявила что мол, смогу запустить ее только 100 раз без регистрации. Согласившись попытался преобразовать свой файл PDF в формат HTML, но програмерам видимо показалось мало ограничить незарегенную прогу на запуск только 100 раз, так они еще позволяют незарегенной проге преобразовывать только первые 5 страниц (мне нужно было преобразовать 89). Ну что ж, зарегим нашу прогу, тем самым избавимся от ограничений. Приступим...

ИССЛЕДОВАНИЕ

Юзая PEID узнаем что прога не упакована. Кидаем ee в WinDasm и в String Data... ищем строчку ::Series number error, please check:: Она нашлась, привожу код:

 * Reference To: USER32.GetDlgItemTextA, Ord:0104h
 
 :0043B885        FF1514454A00       Call dword ptr [004A4514]
 :0043B88B        68601B4E00         push 004E1B60
 :0043B890        E8DBF5FFFF         call 0043AE70  <<Процедура проверки>>
 :0043B895        83C404             add esp, 00000004
 :0043B898        85C0               test eax, eax   <<Сравнение регистра eax на 1>>
 :0043B89A        7418               je 0043B8B4    <<Если в регистре eax o,
 прыгаем на "забавное окно", если 1 то попадаем на окно ::Thank you..  ::>>
 :0043B89C        6A40               push 00000040
 
 * Possible Reference to Dialog:
 
 :0043B89E        68888E4D00         push 004D8E88
 
 * Possible StringData Ref from Data obj ->"Thank you registered pdf2html "
                                                       ->"v1.5 "
 
 :0043B8A3        68A08E4D00         push 004D8EA0
 :0043B8A8        8B4D08             mov ecx, dword ptr [ebp+08]
 :0043B8AB        51                 push ecx
 
 * Reference To: USER32.MessageBoxA, Ord:01BEh
 
 :0043B8AC        FF1518454A00       Call dword ptr [004A4518]
 :0043B8B2        EB30               jmp 0043B8E4
 
 * Reference by a (U)nconditional or (C)onditional Jump at Address:
 |:0043B89A(C)
 |
 :0043B8B4         6A10              push 00000010  <<Прыгаем сюда, и нарываемся на "забавное" окно>>
 :0043B8B6         6A00              push 00000000
 
 * Possible StringData Ref from Data obj ->"Series number error, please check "  <<"Забавное" окно>>
                                                       ->"it and try again. "
 
 :0043B8B8          68C48E4D00       push 004D8EC4
 :0043B8BD          8B5508           mov edx, dword ptr [ebp+08]
 :0043B8C0          52               push edx
 

ВЗЛОМ

Теперь шевелим мозгами.... Если мы по адресу :0043B89A заменим переход (je на jne) то зарегистрируем прогу, но после перезапуска вновь придется вводить Ник и т.д. Поэтому мы не будем изменять переход а войдя в процедуру проверки введем:

  xor eax,eax  - 33C0            <<обнуление eax>>
  inc eax      - 40              << eax=1>>
  ret          - С3              <<выход из процедуры>>

Теперь значение регистра еах всегда будет равно 1. Заменив нужные байты запускаем прогу, и что мы видим? В заголовке исчезла надпись ::Trial version::, a в окне ::About:: видим что прога зарегистрирована. Попытаемся преобразовать файл в HTML, все ОК прога преобразовывает все страницы, а не первые 5!!! Мы поимели PDF2HTML !!!

P.S Програмеры использовали уж очень "навороченную" зашиту, чем и поплатились. Могли бы хоть чем нибудь запаковать, но видимо поленились. Прога хоть и простенькая но все равно удобная вещь в быту, да к тому же занимаем мало месте на харде. Юзайте.........

Есть вопросы? Если да, то пишите на: titbit@hakeris.net

Написано: 11.12.03



Обсуждение статьи: Исследуем защиту PDF2HTML 1.5 >>>


Комментарии к статье: Исследуем защиту PDF2HTML 1.5

Bad_guy 03.03.2006 23:49:47
Тест
---
coderess 26.07.2008 14:11:53
Автору спасибо, но я поступить проще

По адресу 0043B775 есть первый условный переход, сразу изменяем его
на безусловный и прагыем на возвращаемый результат
mov eax, 1
ret

который собственно есть в программе и программа, тоже зарегистрирована.

0043B775 . /EB 66 JMP SHORT pdf2html.0043B7DD
........
........
........
........
........
........
........
0043B7DD > B8 01000000 MOV EAX, 1

вот такой обход.


---

Материалы находятся на сайте https://exelab.ru



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS