Исследуем защиту 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


Материалы находятся на сайте http://cracklab.narod.ru/doc/






Hosted by uCoz