Сейчас на форуме: ==DJ==[ZLO], Magister Yoda, Rio (+5 невидимых) |
![]() |
eXeL@B —› Основной форум —› MagicLines |
Посл.ответ | Сообщение |
|
Создано: 10 декабря 2004 02:40 · Личное сообщение · #1 Есть прога с 30-дневным ограничением. Перевёл время на месяц вперёд. Вылазит сообщение что период триала истёк и нужно зарегистрировать программу. Написана на С++. И как я понимаю получает дату через ф-цию GetLocalTime. Открыл вин32дасм, нашёл вызов этой ф-ции: :0041118C 81ECCC000000 sub esp, 000000CC :00411192 8D45F0 lea eax, dword ptr [ebp-10] :00411195 50 push eax * Reference To: KERNEL32.GetLocalTime, Ord:011Bh | :00411196 FF1530E14200 Call dword ptr [0042E130] :0041119C 8D45E0 lea eax, dword ptr [ebp-20] :0041119F 50 push eax * Reference To: KERNEL32.GetSystemTime, Ord:015Dh | :004111A0 FF15B0E14200 Call dword ptr [0042E1B0] Занопил вот эти строки: :00411195 50 push eax :00411196 FF1530E14200 Call dword ptr [0042E130] Программа вродже бы начинает грузиться, но вылетает сообщение об ошибке Windows. Что мне с ней сделать?? p.s. я ещё новичок так что сильно не ругать если что не так =) p.p.s программа (точнее не программа а небольшая игрушка) называется MagicLines (http://www.agentix.org) если у кого время есть можете посмотреть ![]() |
|
Создано: 10 декабря 2004 02:53 · Личное сообщение · #2 |
|
Создано: 10 декабря 2004 03:12 · Личное сообщение · #3 |
|
Создано: 10 декабря 2004 08:59 · Личное сообщение · #4 Fang пишет: А как найти эту процедуру проверки? 0040E07D . 52 PUSH EDX 0040E07E . 50 PUSH EAX 0040E07F . E8 AC060000 CALL _mlines.0040E730 0040E084 . 83C4 08 ADD ESP,8 0040E087 . 84C0 TEST AL,AL 0040E089 . 75 11 JNZ SHORT _mlines.0040E09C 0040E08B . 6A 10 PUSH 10 0040E08D . 68 9C854300 PUSH _mlines.0043859C ; ASCII "Registrator" 0040E092 . 68 90854300 PUSH _mlines.00438590 ; ASCII "Bad name!" 0040E097 . E9 3D010000 JMP _mlines.0040E1D9 0040E09C > 8B5424 08 MOV EDX,DWORD PTR SS:[ESP+8] 0040E0A0 . 8D4C24 14 LEA ECX,DWORD PTR SS:[ESP+14] 0040E0A4 . 51 PUSH ECX 0040E0A5 . 52 PUSH EDX 0040E0A6 . E8 65050000 CALL _mlines.0040E610 0040E0AB . 83C4 08 ADD ESP,8 0040E0AE . 84C0 TEST AL,AL 0040E0B0 . 0F84 17010000 JE _mlines.0040E1CD 0040E0B6 . 8B4424 14 MOV EAX,DWORD PTR SS:[ESP+14] 0040E0BA . 8B4C24 18 MOV ECX,DWORD PTR SS:[ESP+18] 0040E0BE . 3BC1 CMP EAX,ECX 0040E0C0 0F85 07010000 JNZ _mlines.0040E1CD 0040E0C6 . 6A 40 PUSH 40 0040E0C8 . 68 80854300 PUSH _mlines.00438580 ; ASCII "Registration" 0040E0CD . 68 4C854300 PUSH _mlines.0043854C ; ASCII " Registration successful. Thank you for support!" 0040E0D2 . 8BCD MOV ECX,EBP ![]() |
|
Создано: 10 декабря 2004 09:28 · Личное сообщение · #5 |
|
Создано: 10 декабря 2004 11:49 · Личное сообщение · #6 |
|
Создано: 10 декабря 2004 11:51 · Личное сообщение · #7 |
|
Создано: 11 декабря 2004 04:54 · Личное сообщение · #8 |
|
Создано: 11 декабря 2004 05:26 · Личное сообщение · #9 |
|
Создано: 11 декабря 2004 05:35 · Личное сообщение · #10 Fang кстати, ты обрати внимание на содержимое этой процедуры: 0040E0A6 . E8 65050000 CALL _mlines.0040E610 Но не обольщайся... потому что самое занимательное в проверке это вот эти команды: 0040E0B6 . 8B4424 14 MOV EAX,DWORD PTR SS:[ESP+14] 0040E0BA . 8B4C24 18 MOV ECX,DWORD PTR SS:[ESP+18] 0040E0BE . 3BC1 CMP EAX,ECX Успехов! ![]() ![]() ![]() |
|
Создано: 11 декабря 2004 06:35 · Личное сообщение · #11 |
|
Создано: 13 декабря 2004 01:32 · Личное сообщение · #12 Fang пишет: Там нет сер.номера ( Смелое заявление! Давай разберем по шагам: этот кусок кода очевиден и по нахождению и по содержанию: 1.1) 0040E0A4 . 51 PUSH ECX 0040E0A5 . 52 PUSH EDX 0040E0A6 . E8 65050000 CALL dumped_A.0040E610 ; ! ! ! 0040E0AB . 83C4 08 ADD ESP,8 0040E0AE . 84C0 TEST AL,AL 0040E0B0 . 0F84 17010000 JE dumped_A.0040E1CD 0040E0B6 . 8B4424 14 MOV EAX,DWORD PTR SS:[ESP+14] 0040E0BA . 8B4C24 18 MOV ECX,DWORD PTR SS:[ESP+18] 0040E0BE . 3BC1 CMP EAX,ECX 0040E0C0 . 0F85 07010000 JNZ dumped_A.0040E1CD 0040E0C6 . 6A 40 PUSH 40 0040E0C8 . 68 80854300 PUSH dumped_A.00438580 ; ASCII "Registration" 0040E0CD . 68 4C854300 PUSH dumped_A.0043854C ; ASCII " Registration successful. Thank you for support!" 0040E0D2 . 8BCD MOV ECX,EBP 0040E0D4 . E8 F53C0100 CALL dumped_A.00421DCE 0040E0D9 . 8B85 50010000 MOV EAX,DWORD PTR SS:[EBP+150] 0040E0DF . 85C0 TEST EAX,EAX 0040E0E1 . 0F84 DD000000 JE dumped_A.0040E1C4 1.2) автоматически погружаемся в CALL dumped_A.0040E610 0040E69E |. 68 00F64200 PUSH dumped_A.0042F600 ; ASCII "MGC20-A02120" 0040E6A3 |. 8D5424 10 LEA EDX,DWORD PTR SS:[ESP+10] . . 0040E6D9 |> 68 10F64200 PUSH dumped_A.0042F610 ; ASCII "NGC11-A10201" 0040E6DE |. 8D4424 10 LEA EAX,DWORD PTR SS:[ESP+10] Это два единственных SN, которые позволяют пройти проверку 0040E0A6 . E8 65050000 CALL _mlines.0040E610 0040E0AB . 83C4 08 ADD ESP,8 0040E0AE . 84C0 TEST AL,AL Можешь сам убедиться в отладчике Но я уже отмечал, что проверка несколько "глубже" 0040E0B6 . 8B4424 14 MOV EAX,DWORD PTR SS:[ESP+14] 0040E0BA . 8B4C24 18 MOV ECX,DWORD PTR SS:[ESP+18] 0040E0BE . 3BC1 CMP EAX,ECX Но это не страшно.. Если тебя раздражает "иллюминация" в шапке окна программы: 2.1) 00407F78 . 6A 2A PUSH 2A ; -> PUSH 20 00407F7A . 8D4C24 0C LEA ECX,DWORD PTR SS:[ESP+C] 00407F7E . E8 09BF0100 CALL dumped_A.00423E8C и 2.2) 004382E4 20 55 6E 72 65 67 69 73 74 65 72 65 64 21 00 00 Unregistered!.. | 00 Запуск после окончания "триала" 2.3.A) 0040D1FA . 57 PUSH EDI 0040D1FB . E8 10180000 CALL dumped_A.0040EA10 0040D200 . 83C4 04 ADD ESP,4 0040D203 . 84C0 TEST AL,AL 0040D205 75 37 JNZ SHORT dumped_A.0040D23E ; -> JN 0040D207 . 8D8C24 9401000>LEA ECX,DWORD PTR SS:[ESP+194] или 2.3.B) 0040EB1B |. 74 09 JE SHORT dumped_A.0040EB26 0040EB1D |. 32C0 XOR AL,AL 0040EB1F |. 5F POP EDI 0040EB20 |. 5E POP ESI 0040EB21 |. 5D POP EBP 0040EB22 |. 83C4 24 ADD ESP,24 0040EB25 |. C3 RETN 0040EB26 |> 8B46 10 MOV EAX,DWORD PTR DS:[ESI+10] 0040EB29 |. 85C0 TEST EAX,EAX 0040EB2B |. 74 09 JE SHORT dumped_A.0040EB36 0040EB2D |. 32C0 XOR AL,AL ; -> mov al,1 0040EB2F |. 5F POP EDI 0040EB30 |. 5E POP ESI 0040EB31 |. 5D POP EBP 0040EB32 |. 83C4 24 ADD ESP,24 0040EB35 |. C3 RETN Вот и все. Осталось (как домашнее задание): при загрузке сохраненной игры появляется окно с напоминанием о регистрации.. Жмем просто "ОК".. но можно это окно и "удалить"... Если что будет непонятно - пиши в почту. Пообщаемся! Успехов тебе! DMD ps. могу прислать более старый вариант этой же игрушки.. оценишь... ![]() ![]() |
|
Создано: 13 декабря 2004 03:39 · Личное сообщение · #13 DMD Спасибо тебе! С надписью в шапке всё понятно, убрал. А как ты нашёл: 0040D203 . 84C0 TEST AL,AL 0040D205 75 37 JNZ SHORT dumped_A.0040D23E ; -> JN 0040D207 . 8D8C24 9401000>LEA ECX,DWORD PTR SS:[ESP+194] запуск после окончания триала? Хотелось бы просто понять в каком направлении надо мыслить при взломе подобных прог. ![]() |
|
Создано: 13 декабря 2004 03:59 · Личное сообщение · #14 Fang пишет: А как ты нашёл: Ну на счет "подобных" - это ты опять слегка "горячишься". Эта проммулина - достаточно простенький случа`й.. а мыслить можно в двух направлениях: 1. трассировка - по-шаговое выполнения программы в отладичке (именно поэтому этот пример - простенький на трассировку ушло мин 15-20) 2. "вылавливать" massegebox`ы и окна...(через API) Кстати, ты заметил что триал можно убирать по-разному? Это и есть ответ на твой вопрос: фантазия и опыт тебе помогут... ![]() ну что, прислать старушку? а? ![]() |
|
Создано: 13 декабря 2004 05:10 · Личное сообщение · #15 |
|
Создано: 13 декабря 2004 05:18 · Личное сообщение · #16 |
|
Создано: 13 декабря 2004 05:22 · Личное сообщение · #17 |
|
Создано: 21 декабря 2004 08:12 · Личное сообщение · #18 |
![]() |
eXeL@B —› Основной форум —› MagicLines |