Исследование защиты программы Donemax Data Recovery
Скриншот программы Donemax Data Recovery
Donemax Data Recovery - программа для восстановления удаленных и поврежденных данных с жестких дисков. Как метко подметили в комментариях к разбору аналогичного поделия: "Такое ощущение, что все начинающие погромисты учатся по одному учебнику, в котором одно из заданий - написать свою дата рекавери прогу". Но зато платная, все как полагается.
Забираем с офсайта дистрибутив, устанавливаем, смотрим что и как. Главный исполняемый файл ничем не накрыт, отправляем его в дизассемблер. Когда тот закончит свою работу, проверим, как функционирует программа без регистрации.
Первое, что бросается в глаза, это надписи "Trial". Но главное ограничение проявляется при попытке восстановить большой объем информации. Вылезает вот такое окно с требованием зарегистрироваться.
Сообщение незарегистрированной версии
Хех, и тут лимит в 200 мегов, может быть шутка про книжку не такая уж и шутка? Покупку оставим до лучших времен, начнем поиск по слову "Trial". В файле сразу обнаружатся строки с двумя вариантами названия программы, а в листинге им соответствует вот такой характерный код:
Code (Assembler) : Убрать нумерацию
- .text:0056DAC4 call sub_403080
- .text:0056DAC9 mov ecx, eax
- ; Вызвать функцию проверки
- .text:0056DACB call sub_407110
- .text:0056DAD0 test al, al
- ; Если AL=0, то программа работает в триальном режиме
- .text:0056DAD2 jnz short loc_56DB13
- .text:0056DAD4 push 1Fh
- .text:0056DAD6 push offset aDonemaxDataR_1
- ; "Donemax Data Recovery Trial 1.1"
- .text:0056DADB call esi
- .text:0056DADD add esp, 8
- .text:0056DAE0 mov [esp+74h+var_4C], eax
- .text:0056DAE4 lea eax, [esp+74h+var_4C]
- .text:0056DAE8 mov bl, 9
- .text:0056DAEA push eax
- .text:0056DAEB mov ecx, edi
- .text:0056DAED mov byte ptr [esp+78h+var_4], bl
- .text:0056DAF1 call ds:?setText@QLabel
- .text:0056DAF7 push 38h
- .text:0056DAF9 push offset aFontFamilyS_18
- ; "font-family: \"Segoe UI\";font-size:30px;"...
- .text:0056DAFE call esi
- .text:0056DB00 add esp, 8
- .text:0056DB03 mov [esp+70h+var_40], eax
- .text:0056DB07 lea ecx, [esp+70h+var_40]
- .text:0056DB0B mov byte ptr [esp+70h], 0Ah
- .text:0056DB10 push ecx
- .text:0056DB11 jmp short loc_56DB50
- .text:0056DB13 ; ---------------------------------------
- .text:0056DB13 loc_56DB13:
- .text:0056DB13 push 19h
- .text:0056DB15 push offset aDonemaxDataR_2
- ; "Donemax Data Recovery 1.1"
- .text:0056DB1A call esi
- .text:0056DB1C add esp, 8
- .text:0056DB1F mov [esp+74h+var_4C], eax
- .text:0056DB23 lea edx, [esp+74h+var_4C]
- .text:0056DB27 mov bl, 0Bh
- .text:0056DB29 push edx
- .text:0056DB2A mov ecx, edi
- .text:0056DB2C mov byte ptr [esp+78h+var_4], bl
Code (Assembler) : Убрать нумерацию
- .text:00407110 sub_407110 proc near
- .text:00407110 mov al, [ecx+78h]
- .text:00407113 retn
- .text:00407113 sub_407110 endp
Code (Assembler) : Убрать нумерацию
- .text:00407100 sub_407100 proc near
- .text:00407100 mov al, [esp+arg_0]
- .text:00407104 mov [ecx+78h], al
- .text:00407107 retn 4
- .text:00407107 sub_407100 endp
Программа успешно "зарегистрирована"
Теперь в заголовке главного окна слова "Trial" нет, как нет его в окне "О программе". Проверяем функционал. При восстановлении больших файлов никаких сообщений о необходимости регистрации не появляется, а файлы восстанавливаются как надо. Цель достигнута. Еще осталась кнопка активации рядом с меню, но она ни на что не влияет, чистая косметика. Точно так же доводятся до ума и остальные программы этого разработчика.
Просмотров: 857 | Комментариев: 1
Метки: исследование защиты, HDD
Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
Жека
(13.03.2023 в 01:08):
Здравствуйте, пропатчив вашим методом, безуспешно пытаясь побороть кнопку Активации, сделал свой "кряк". Прога проверяет присутствия, некого файла - Configure.dat с прописанным в нём правильным серийником. Этот файл, естественно, создаётся после правильной активации. Найдя в коде эти проверки, получилось всё по классике, JMP и NOP наше всё! Первый фикс: 005CBE83 7410 <-- EB10, второй фикс: 005CBEC3 751E <-- 9090. Всё, прога активирована и никаких лишних кнопок. Ковыряясь в коде, нашёл для нас с вами послание от разрабов 'We are a small company,it',27h,'s so hard to live.please stop crack,thank you.' Интересно, это как надо её крякнуть, чтоб высветилась эта надпись:)
Добавить комментарий
Заполните форму для добавления комментария