Исследование защиты программы Htpasswd Generator
Скриншот программы Htpasswd Generator
Htpasswd Generator от Aleo Software - программа для генерации файлов .htaccess и .htpasswd. Эти файлы предназначены для защиты сайтов и каталогов сайтов авторизацией. Если нужно, то прочитайте информацию о них самостоятельно по приведенным ссылкам, речь же сейчас пойдет о программе. Точнее о ее защите.
Качаем дистрибутив, устанавливаем, запускаем. Тут же нас встречает триальное окно с таким бредовым сообщением:
Триальное окно
Кто не силен в буржуйском, я переведу обведенную надпись: "Зарегистрированная версия все равно не убирает триальные ограничения". Это уже вообще ни в какие ворота, и смысла такой чудо-регистрации я никак не понимаю. Хотя думается, что тут просто какая-то грамматическая ошибка или неудачная шутка юмора от автора. В любом случае платить деньги никто не собирается. Нажимаем кнопку регистрации, вводим левые данные получаем "Invalid username or registration code". Кто после таких закидонов инвалиднее - юзер или аффтар, еще можно и поспорить, ну да ладно :) Заправляем exe в дизассемблер и идем ставить чайник.
Поиск "нехорошей строки" дает нам указатель на следующий код.
Code (Assembler) : Убрать нумерацию
- ...
- .text:00411778 mov eax, [ecx]
- .text:0041177A push eax
- .text:0041177B call sub_411EEC
- .text:00411780 pop ecx
- .text:00411781 mov edx, off_4E81B4
- .text:00411787 mov ecx, [edx]
- .text:00411789 push ecx
- ; Вот тут дизассемблер показывает, что вызывается какая-то штатная функция
- ; BCC v4.x/5.x & BCB v1.0/v7.0 BDS2006 win32 runtime
- ; Что-то типа сравнения, или вычисления, за ненадобностью особо не разбирался
- .text:0041178A call unknown_libname_1
- .text:0041178F pop ecx
- .text:00411790 test al, al
- ; По результатам ее работы AL=1 - все хорошо, AL=0 - все плохо.
- .text:00411792 jnz short loc_4117F1
- .text:00411794 mov eax, off_4E81B4
- .text:00411799 mov edx, [eax]
- .text:0041179B push edx
- .text:0041179C call sub_4121F0
- .text:004117A1 pop ecx
- .text:004117A2 push 0
- .text:004117A4 mov word ptr [esi+10h], 14h
- ; Указатель на строку "Invalid username or registration code."
- .text:004117AA mov edx, offset aInvalidUsernam
- .text:004117AF lea eax, [ebp+var_14]
- .text:004117B2 call sub_4C2180
- .text:004117B7 inc dword ptr [esi+1Ch]
- ...
Ссылки на функцию проверки
Хотя тут отладчик не нужен, и так все понятно по названиям вызывающиих модулей. Программа в триальном режиме не может создавать более 3-х пользователей - пожалуйста, вызовы из _TFormMain_TbnAddUserClick, _TFormMain_TbnCreateUserClick. Надо в окне "О программе" написать регистрационные данные или "незарегистрировано" - пожалуйста, вызов проверки из _TFormMain_TbnAboutClick. Отрисовать триальное окно? Да не вопрос, проверяем из _TFormMain_FormCreate. Ну а про _TFormRegister_BtnOkClick даже и говорить не надо. Так что без раздумий патчим ее на возврат AL=1, записывая в начало пару команд MOV AL,1; RET. Запускаем, проверяем. На этот раз программа заработала и даже регистрацию не спросила.
Программа успешно "зарегистрирована"
Ну и напоследок небольшой хинт для тех, кто хочет наблюдать в окне "О программе" себя любимого. Если поковырять программу дальше на предмет где она хранит регистрационные данные, то обнаружатся обращения к такой вот ветке реестра:
REGEDIT4
[HKEY_CURRENT_USER\Software\MAirSoft\PPP]
"Username"="ManHunter / PCL"
"RegCode"="Have a Nice Day!"
Сохраняете приведенный выше код в .reg-файл, меняете имя на свое и заносите в реестр. Вот и все, на этом с защитой программы покончено. Теперь можете спокойно изучать материал по конфигурации Apache и переходить к защите своего сайта.
Просмотров: 5231 | Комментариев: 2
Метки: исследование защиты
Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
ManHunter
(06.08.2009 в 16:19):
Ты забыл добавить волшебное слово "да побыстрее".
Robbie
(06.08.2009 в 16:12):
это не защита ) лучше напиши-ка как быстро и не напрягаясь снимать фимку (themida) с PE-шников ;) прочту с удовольствием.
Добавить комментарий
Заполните форму для добавления комментария