Исследование защиты программы iSunshare Password Genius
Скриншот программы iSunshare Password Genius
iSunshare Password Genius предназначена для восстановления забытых паролей от офисных документов, архивов, баз данных, всего несколько десятков различных форматов. Взлом пароля работает путем прямого перебора, по шаблону, по словарю. Без регистрации можно восстановить только пароли не длиннее 3 символов, что для практического применения бесполезно. Это досадное недоразумение надо исправить.
Забираем с офсайта дистрибутив максимально доступной Advanced-версии программы, устанавливаем, смотрим. Основной файл упакован UPX без каких-либо модификаций, так что распаковываем его самим же UPX командой upx -d PasswordGeniusAdvancedTrial.exe. Распакованный файл отправляем на разбор в дизассемблер, а параллельно посмотрим на внешние проявления триальности:
Окно "О программе"
В заголовке окна надпись "Trial", в окне "О программе" надпись о триальной версии, активная кнопка покупки, пункты регистрации в меню. Пробуем ввести какой-нибудь левый серийник через меню регистрации, получаем сообщение.
Сообщение о неправильной регистрации
Дизассемблер уже закончил свою работу, можно поискать место, где и при каких условиях это сообщение появляется.
Code (Assembler) : Убрать нумерацию
- .text:00423E9D call sub_424100
- .text:00423EA2 lea eax, [esp+1Ch]
- .text:00423EA6 push eax
- .text:00423EA7 call sub_4037F0
- .text:00423EAC mov byte ptr [esp+3Ch], 1
- .text:00423EB1 mov eax, [esp+10h]
- .text:00423EB5 cmp dword ptr [eax-0Ch], 0
- .text:00423EB9 jl short loc_423F1E
- .text:00423EBB push offset aIsunsharePas_0
- ; "ISUNSHARE-PASSWORD-GENIUS-ADVANCED"
- .text:00423EC0 push eax
- .text:00423EC1 call _wcsstr
- .text:00423EC6 add esp, 8
- .text:00423EC9 test eax, eax
- .text:00423ECB jz short loc_423F1E
- .text:00423ECD sub eax, [esp+10h]
- .text:00423ED1 sar eax, 1
- .text:00423ED3 jnz short loc_423F1E
- .text:00423ED5 mov ecx, ebx
- .text:00423ED7 push ecx
- .text:00423ED8 call sub_423540
- .text:00423EDD test al, al
- .text:00423EDF jz short loc_423F1E
- .text:00423EE1 mov edx, ebx
- .text:00423EE3 push edx
- .text:00423EE4 call sub_4236D0
- .text:00423EE9 test al, al
- .text:00423EEB jz short loc_423F2C
- .text:00423EED call ?AfxGetModuleState
- .text:00423EF2 mov eax, [eax+4]
- .text:00423EF5 mov esi, [eax+20h]
- .text:00423EF8 call sub_40F930
- .text:00423EFD push 0
- .text:00423EFF push offset aIsunsharePassw
- ; "iSunshare Password Genius Advanced Tria"...
- .text:00423F04 push offset aThankYouForReg
- ; "Thank you for registering!"
- .text:00423F09 mov ecx, edi
- .text:00423F0B call sub_45509E
- .text:00423F10 mov eax, [edi]
- .text:00423F12 mov edx, [eax+158h]
- .text:00423F18 mov ecx, edi
- .text:00423F1A call edx
- .text:00423F1C jmp short loc_423F3F
- .text:00423F1E ; ---------------------------------------
- .text:00423F1E loc_423F1E:
- .text:00423F1E push 30h
- .text:00423F20 push offset aRegistration
- ; "Registration"
- .text:00423F25 push offset aTheCodeYouVeEn
- ; "The Code you've entered invalid!"
- .text:00423F2A jmp short loc_423F38
Code (Assembler) : Убрать нумерацию
- .text:004234CE mov eax, [esp+1Ch+var_14]
- .text:004234D2 cmp [eax-0Ch], ebx
- .text:004234D5 jl short loc_4234FD
- .text:004234D7 push offset aIsunsharePas_0
- ; "ISUNSHARE-PASSWORD-GENIUS-ADVANCED"
- .text:004234DC push eax ; wchar_t *
- .text:004234DD call _wcsstr
- .text:004234E2 add esp, 8
- .text:004234E5 cmp eax, ebx
- .text:004234E7 jz short loc_4234FD
- .text:004234E9 sub eax, [esp+1Ch+var_14]
- .text:004234ED sar eax, 1
- .text:004234EF jnz short loc_4234FD
- .text:004234F1 lea edx, [esp+1Ch+var_14]
- .text:004234F5 push edx ; wchar_t *
- .text:004234F6 call sub_423540
- .text:004234FB mov bl, al
- .text:004234FD loc_4234FD:
- .text:004234FD mov [esp+1Ch+var_4], 0FFFFFFFFh
- .text:00423505 mov eax, [esp+1Ch+var_14]
Теперь можно проверить работоспособность. Открываем архивный файл "TEST.ZIP" с паролем и получаем сообщение, что такой формат не поддерживается. Переименовываем файл в "TEST.zip" и программа его без проблем принимает в обработку. Серьезно???! Чувствительность к регистру расширения? Написать программу для взлома паролей и запороться на такой элементарщине? Стыдоба какая.
Программа успешно "зарегистрирована"
Вот и все, программа восстанавливает пароли без ограничений по длине, кнопка покупки заблокировалась, в окне "О программе" ничего лишнего не показывается. Цель достигнута. Остальные программы этого разработчика излечиваются точно таким же способом.
Просмотров: 1743 | Комментариев: 7
Метки: исследование защиты
Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
1
(23.09.2020 в 09:34):
Так там их две этих процедуры я их пропачил и все а остальное как описал автор
fury
(22.09.2020 в 13:36):
nop
nop
Адрес 00423540 указан, вот туда и надо вносить изменения.
MOV AL,1 RET 4
nop
Адрес 00423540 указан, вот туда и надо вносить изменения.
MOV AL,1 RET 4
ManHunter
(19.09.2020 в 10:07):
Адрес 00423540 указан, вот туда и надо вносить изменения.
1
(19.09.2020 в 07:51):
Место с BL нашел то не то CPU Disasm
Address Hex dump Command Comments
0042351D |. 8B11 MOV EDX,DWORD PTR DS:[ECX]
0042351F |. 50 PUSH EAX
00423520 |. 8B42 04 MOV EAX,DWORD PTR DS:[EDX+4]
00423523 |. FFD0 CALL EAX
00423525 |> 8AC3 MOV AL,BL
00423527 |. 8B4C24 10 MOV ECX,DWORD PTR SS:[ARG.4]
0042352B |. 64:890D 00000 MOV DWORD PTR FS:[0],ECX
00423532 |. 59 POP ECX
? Не сильно шарю в процедурах, в какое начало надо пройти 00423540
Address Hex dump Command Comments
0042351D |. 8B11 MOV EDX,DWORD PTR DS:[ECX]
0042351F |. 50 PUSH EAX
00423520 |. 8B42 04 MOV EAX,DWORD PTR DS:[EDX+4]
00423523 |. FFD0 CALL EAX
00423525 |> 8AC3 MOV AL,BL
00423527 |. 8B4C24 10 MOV ECX,DWORD PTR SS:[ARG.4]
0042352B |. 64:890D 00000 MOV DWORD PTR FS:[0],ECX
00423532 |. 59 POP ECX
? Не сильно шарю в процедурах, в какое начало надо пройти 00423540
FFFF
(17.09.2020 в 16:25):
Там ещё raid версия есть. Ссылок не наблюдается, но конструруем по аналогии и...
https://www.isunshare.com/down...ius-raid.exe
https://www.isunshare.com/down...ius-raid.exe
ManHunter
(17.09.2020 в 09:17):
Там еще образ диска для сброса паролей на винде при загрузке
user
(17.09.2020 в 09:16):
Но размер дистрибутива устрашающий.
Добавить комментарий
Заполните форму для добавления комментария