Исследование защиты программы Magoshare Data Recovery
Скриншот программы Magoshare Data Recovery
Программа Magoshare Data Recovery, как можно понять из названия, - очередная утилита для восстановления удаленных данных с различных носителей. В пробном режиме позволяет обработать только 200 мегов, после регистрации все ограничения, естественно, снимаются. Насыпать почти сотню зелени за лицензию, на мой взгляд, слишком кучеряво, поэтому попробуем обойтись народными средствами.
Забираем с офсайта дистрибутив, устанавливаем, смотрим. Главный исполняемый файл ничем не упакован, отправляем его на разбор в дизассемблер. Пока идет анализ, посмотрим на проявления триальности. При попытке восстановить объем данных больше лимита, появляется сообщение:
Ограничение триальной версии
Это оставим для контроля успешности решения задачи. А в заголовке окна бросается в глаза надпись "Trial", вот с нее и начнем исследование. В файле обнаружится несколько вхождений, но ссылка есть только на одно из них.
Строка в файле
Если посмотреть внимательно, то рядышком находятся строки "Free", "Technician" и "AdvancedPE". Очень похоже, что это типы лицензий. Теперь давайте посмотрим на код, где это все используется.
Code (Assembler) : Убрать нумерацию
- .text:0046DE8B mov ecx, eax
- ; Вызвать функцию проверки
- .text:0046DE8D call sub_458A20
- ; Сохранить результат в переменную
- .text:0046DE92 mov [ebp+var_14], eax
- .text:0046DE95 cmp [ebp+var_14], 2
- .text:0046DE99 jl short loc_46DEBD
- .text:0046DE9B lea ecx, [ebp+var_18]
- .text:0046DE9E call sub_494EF0
- .text:0046DEA3 mov byte ptr [ebp+var_4], 1
- .text:0046DEA7 push 1
- .text:0046DEA9 lea ecx, [ebp+var_18]
- .text:0046DEAC call sub_495150
- .text:0046DEB1 mov byte ptr [ebp+var_4], 0
- .text:0046DEB5 lea ecx, [ebp+var_18]
- .text:0046DEB8 call sub_494F10
- .text:0046DEBD loc_46DEBD:
- ; Загрузить результат из переменной
- .text:0046DEBD mov ecx, [ebp+var_14]
- .text:0046DEC0 mov [ebp+var_134], ecx
- .text:0046DEC6 cmp [ebp+var_134], 5 ; switch 6 cases
- .text:0046DECD ja short loc_46DF3A
- .text:0046DECF mov edx, [ebp+var_134]
- ; На основании результата выполнить переход
- .text:0046DED5 jmp ds:off_46E4D4[edx*4] ; switch jump
- .text:0046DEDC ; ---------------------------------------
- .text:0046DEDC loc_46DEDC:
- .text:0046DEDC push offset aFree ; case 0
- .text:0046DEE1 lea ecx, [ebp+var_10]
- .text:0046DEE4 call ds:??Y?$CStringT
- .text:0046DEEA jmp short loc_46DF3A
- .text:0046DEEC ; ---------------------------------------
- .text:0046DEEC loc_46DEEC:
- .text:0046DEEC push offset aTrial ; case 1
- .text:0046DEF1 lea ecx, [ebp+var_10]
- .text:0046DEF4 call ds:??Y?$CStringT
- .text:0046DEFA jmp short loc_46DF3A
- .text:0046DEFC ; ---------------------------------------
- .text:0046DEFC loc_46DEFC:
- .text:0046DEFC push offset unk_76C4E3 ; case 2
- .text:0046DF01 lea ecx, [ebp+var_10]
- .text:0046DF04 call ds:??Y?$CStringT
- .text:0046DF0A jmp short loc_46DF3A
- .text:0046DF0C ; ---------------------------------------
- .text:0046DF0C loc_46DF0C:
- .text:0046DF0C push offset aTechnician ; case 3
- .text:0046DF11 lea ecx, [ebp+var_10]
- .text:0046DF14 call ds:??Y?$CStringT
- .text:0046DF1A jmp short loc_46DF3A
- ...
Code (Assembler) : Убрать нумерацию
- .text:00458A20 sub_458A20 proc near
- .text:00458A20 var_4 = dword ptr -4
- .text:00458A20 push ebp
- .text:00458A21 mov ebp, esp
- .text:00458A23 push ecx
- .text:00458A24 mov [ebp+var_4], ecx
- .text:00458A27 call ?make@DNameStatusNode
- .text:00458A2C mov ecx, eax
- .text:00458A2E call sub_493070
- .text:00458A33 mov esp, ebp
- .text:00458A35 pop ebp
- .text:00458A36 retn
- .text:00458A36 sub_458A20 endp
Программа успешно "зарегистрирована"
В заголовке окна красуется технарская лицензия, из интерфейса пропали все элементы, относящиеся к регистрации. Но главное, что пропало ограничение по функционалу, можно восстанавливать любой объем данных. Цель достигнута.
Просмотров: 1156 | Комментариев: 1
Метки: исследование защиты, HDD
Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
Федор
(12.11.2021 в 18:07):
64 бита оля отдыхает поэтому пролитаем дальше
Добавить комментарий
Заполните форму для добавления комментария