Автор: TITBIT <titbit@hakeris.net>
Подопотный кролик : PDF2HTML v1.5Понадобилась мне как-то преобразовать один текст из формата 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/