Сейчас на форуме: Magister Yoda, rtsgreg1989 (+7 невидимых) |
![]() |
eXeL@B —› Основной форум —› Подскажите, второй день мучаюсь |
. 1 . 2 . >> |
Посл.ответ | Сообщение |
|
Создано: 26 февраля 2005 19:34 · Личное сообщение · #1 Излазил прогу вдоль и поперёг Мож подскажите где ловить надо Вот интересное место: 0044F8B0 $ 55 PUSH EBP 0044F8B1 . 8BEC MOV EBP, ESP 0044F8B3 . 6A FF PUSH -1 0044F8B5 68 50E14500 PUSH FontRese.0045E150 0044F8BA . 68 D01D4500 PUSH FontRese.00451DD0 ; SE handler installation 0044F8BF . 64:A1 00000000 MOV EAX, [DWORD FS:0] 0044F8C5 . 50 PUSH EAX 0044F8C6 . 64:8925 000000>MOV [DWORD FS:0], ESP 0044F8CD . 83EC 10 SUB ESP, 10 0044F8D0 . 53 PUSH EBX 0044F8D1 . 56 PUSH ESI 0044F8D2 . 57 PUSH EDI 0044F8D3 . 8965 E8 MOV [DWORD SS:EBP-18], ESP 0044F8D6 . C745 FC 000000>MOV [DWORD SS:EBP-4], 0 0044F8DD . 8B7D 08 MOV EDI, [DWORD SS:EBP+8] 0044F8E0 . 8BF7 MOV ESI, EDI 0044F8E2 > 8975 E4 MOV [DWORD SS:EBP-1C], ESI 0044F8E5 . 803E 20 CMP [BYTE DS:ESI], 20 0044F8E8 . 75 03 JNZ SHORT FontRese.0044F8ED 0044F8EA . 46 INC ESI 0044F8EB .^EB F5 JMP SHORT FontRese.0044F8E2 0044F8ED > 3BF7 CMP ESI, EDI 0044F8EF . 74 13 JE SHORT FontRese.0044F904 0044F8F1 . 56 PUSH ESI ; /String 0044F8F2 . FF15 34D14500 CALL [DWORD DS:<&KERNEL32.lstrlenA>] ; \lstrlenA 0044F8F8 . 40 INC EAX 0044F8F9 . 50 PUSH EAX 0044F8FA . 56 PUSH ESI 0044F8FB . 57 PUSH EDI 0044F8FC . E8 6F320000 CALL FontRese.00452B70 0044F901 . 83C4 0C ADD ESP, 0C 0044F904 > 57 PUSH EDI ; /String 0044F905 . FF15 34D14500 CALL [DWORD DS:<&KERNEL32.lstrlenA>] ; \lstrlenA 0044F90B . 03C7 ADD EAX, EDI 0044F90D > 8945 E4 MOV [DWORD SS:EBP-1C], EAX 0044F910 . 3BC7 CMP EAX, EDI 0044F912 . 72 0B JB SHORT FontRese.0044F91F 0044F914 . 8038 20 CMP [BYTE DS:EAX], 20 0044F917 . 7F 06 JG SHORT FontRese.0044F91F 0044F919 . C600 00 MOV [BYTE DS:EAX], 0 0044F91C . 48 DEC EAX 0044F91D .^EB EE JMP SHORT FontRese.0044F90D 0044F91F > C745 FC FFFFFF>MOV [DWORD SS:EBP-4], -1 0044F926 . EB 25 JMP SHORT FontRese.0044F94D 0044F928 . 8B45 EC MOV EAX, [DWORD SS:EBP-14] 0044F92B . 8B08 MOV ECX, [DWORD DS:EAX] 0044F92D . 8B01 MOV EAX, [DWORD DS:ECX] 0044F92F . 68 50030000 PUSH 350 ; /Arg3 = 00000350 0044F934 . 68 AC864600 PUSH FontRese.004686AC ; |Arg2 = 004686AC ASCII "D:\CVSProjectsRoot\DiamondSoft\FontReserve PC\Fn3Main\procUtils.c" 0044F939 . 50 PUSH EAX ; |Arg1 0044F93A . E8 41C4FEFF CALL FontRese.0043BD80 ; \FontRese.0043BD80 0044F93F . C3 RETN ![]() ![]() ![]() |
|
Создано: 26 февраля 2005 20:15 · Личное сообщение · #2 dragon-gor-функция lstrlenA-вычисляет длинну введённой строки в байтах (0044F905 . FF15 34D14500 CALL [DWORD DS:<&KERNEL32.lstrlenA>] ; \lstrlenA), а [b]0044F910 . 3BC7 CMP EAX, EDI -сравнивает содержимое EAX и EDI 0044F912 . 72 0B JB SHORT FontRese.0044F91F-если меньше, то прыгаем 0044F91F > C745 FC FFFFFF>MOV [DWORD SS:EBP-4], -1 0044F926 . EB 25 JMP SHORT FontRese.0044F94D-а здесь листинг ты не дал З.Ы. у меня вында тоже на D:\ стоит.Если я что-то не так описал то сорри ![]() ----- Само плывет в pуки только то, что не тонет. ![]() |
|
Создано: 26 февраля 2005 21:38 · Личное сообщение · #3 0044F940 . 8B65 E8 MOV ESP, [DWORD SS:EBP-18] 0044F943 . C745 FC FFFFFF>MOV [DWORD SS:EBP-4], -1 0044F94A . 8B7D 08 MOV EDI, [DWORD SS:EBP+8] 0044F94D > 8BC7 MOV EAX, EDI 0044F94F . 8B4D F0 MOV ECX, [DWORD SS:EBP-10] 0044F952 . 64:890D 000000>MOV [DWORD FS:0], ECX 0044F959 . 5F POP EDI 0044F95A . 5E POP ESI 0044F95B . 5B POP EBX 0044F95C . 8BE5 MOV ESP, EBP 0044F95E . 5D POP EBP 0044F95F . C2 0400 RETN 4 ![]() |
|
Создано: 26 февраля 2005 21:47 · Личное сообщение · #4 |
|
Создано: 26 февраля 2005 23:45 · Личное сообщение · #5 |
|
Создано: 27 февраля 2005 08:56 · Личное сообщение · #6 |
|
Создано: 27 февраля 2005 09:59 · Личное сообщение · #7 |
|
Создано: 27 февраля 2005 10:37 · Личное сообщение · #8 |
|
Создано: 27 февраля 2005 11:35 · Личное сообщение · #9 |
|
Создано: 27 февраля 2005 13:10 · Личное сообщение · #10 |
|
Создано: 28 февраля 2005 14:43 · Личное сообщение · #11 Font Reserve 2.6.5 FontReserve.exe (770 048 byte) Начало запроса и проверки серийника: .text:0041D225 loc_41D225: ; CODE XREF: sub_41D1D0+2Bj .text:0041D225 mov esi, [esp+108h+hWnd] .text:0041D22C lea edx, [esp+108h+String] .text:0041D230 push 100h ; nMaxCount .text:0041D235 push edx ; lpString .text:0041D236 push 46Dh ; nIDDlgItem .text:0041D23B push esi ; hDlg .text:0041D23C mov [esp+118h+String], 0 .text:0041D241 call ds:GetDlgItemTextA .text:0041D247 lea eax, [esp+108h+String] .text:0041D24B push eax .text:0041D24C call sub_44F8B0 .text:0041D251 mov al, [esp+108h+String] .text:0041D255 test al, al .text:0041D257 jnz short loc_41D2A1 .text:0041D259 push 30h .text:0041D25B push 625h далее: .text:0041D2A1 loc_41D2A1: ; CODE XREF: sub_41D1D0+87j .text:0041D2A1 lea ecx, [esp+108h+String] .text:0041D2A5 push ecx .text:0041D2A6 call sub_450590 .text:0041D2AB test eax, eax .text:0041D2AD jnz short loc_41D2B8 .text:0041D2AF push 30h .text:0041D2B1 push 626h .text:0041D2B6 jmp short loc_41D260 .text:0041D2B8 ; ---------------------------------------------------------------------- ----- .text:0041D2B8 .text:0041D2B8 loc_41D2B8: ; CODE XREF: sub_41D1D0+DDj .text:0041D2B8 lea edx, [esp+108h+String] .text:0041D2BC push edx .text:0041D2BD push offset aSerialNumber ; "Serial Number" .text:0041D2C2 push 0FA3h .text:0041D2C7 call sub_447840 .text:0041D2CC push 1 ; nResult .text:0041D2CE push esi ; hDlg .text:0041D2CF call ds:EndDialog .text:0041D2D5 .text:0041D2D5 loc_41D2D5: ; CODE XREF: sub_41D1D0+18j .text:0041D2D5 ; sub_41D1D0+2Ej .text:0041D2D5 pop edi .text:0041D2D6 xor eax, eax .text:0041D2D8 pop esi .text:0041D2D9 add esp, 100h .text:0041D2DF retn 10h от сюда уже можно и дальше рыскать ;) ----- EnJoy! ![]() |
|
Создано: 28 февраля 2005 17:44 · Личное сообщение · #12 В ехе-шке смещение 1d2ad было 75 надо 74, смещение 1ea79 было 74 надо 75. Так? Если нет, то пинать не надо ![]() ![]() Может снимает не все, но я так и не понял, как проверить. Но теперь хавает любой серийник и не сбрасывает его в реестре после перезагрузки системы. ![]() ----- Сколько ни наталкивали на мысль – все равно сумел увернуться ![]() |
|
Создано: 28 февраля 2005 17:46 · Личное сообщение · #13 |
|
Создано: 28 февраля 2005 20:48 · Личное сообщение · #14 |
|
Создано: 28 февраля 2005 21:37 · Личное сообщение · #15 Что такое? Программа таже, а код различается? Вот процедура 0044F904 > 57 PUSH EDI ; /String = "1234567890" 0044F905 . FF15 34D14500 CALL [DWORD DS:<&KERNEL32.lstrlenA>] ; \lstrlenA здесь "загружает" 8 значное число 77E8BA23 8B45 08 MOV EAX, [DWORD SS:EBP+8] 77E8BA26 85C0 TEST EAX, EAX 77E8BA28 74 21 JE SHORT kernel32.77E8BA4B 77E8BA2A 8365 FC 00 AND [DWORD SS:EBP-4], 0 77E8BA2E 8D50 01 LEA EDX, [DWORD DS:EAX+1] 77E8BA31 8A08 MOV CL, [BYTE DS:EAX] 77E8BA33 40 INC EAX 77E8BA34 84C9 TEST CL, CL 77E8BA36 ^75 F9 JNZ SHORT kernel32.77E8BA31 77E8BA38 2BC2 SUB EAX, EDX 77E8BA3A 834D FC FF OR [DWORD SS:EBP-4], FFFFFFFF 77E8BA3E EB 0D JMP SHORT kernel32.77E8BA4D 77E8BA40 33C0 XOR EAX, EAX 77E8BA42 40 INC EAX далее интересней 00450590 /$ 8B4C24 04 MOV ECX, [DWORD SS:ESP+4] 00450594 |. 83EC 28 SUB ESP, 28 00450597 |. 8D4424 00 LEA EAX, [DWORD SS:ESP] 0045059B |. 50 PUSH EAX ; /Arg2 = 0012F458 0045059C |. 51 PUSH ECX ; |Arg1 = нашь SN 0045059D |. E8 DECDFCFF CALL FontRese.0041D380 ; \FontRese.0041D380 004505A2 |. 85C0 TEST EAX, EAX 004505A4 |. 75 06 JNZ SHORT FontRese.004505AC 004505A6 |. 83C4 28 ADD ESP, 28 004505A9 |. C2 0400 RETN 4 Вот весчь какая, в крякми4 от фонтома есть аналог этого значения (Arg1 , Arg2), только онипназываются String. Пробывал я его вводить - кага. Далее условный переход (вот он тересылает на правильную регистрацию). Кстати как на него прыгать? ![]() |
|
Создано: 01 марта 2005 00:25 · Личное сообщение · #16 |
|
Создано: 01 марта 2005 06:02 · Личное сообщение · #17 |
|
Создано: 01 марта 2005 08:24 · Личное сообщение · #18 В Olly посмотри код по адресам 41d2ad и 41ea79. Я сам новичок, поэтому также могк что-то путать. Но патчишь 7509 на 7409 по первому адресу, и прога "принимает" любой серийник. До своего перезапуска. А поменяв 740с на 750с по второму адресу, заставляем прогу считать введенный ранее серийник верным (серийник хранится в реестре в разделе HKEY_LOCAL_MACHINE\SOFTWARE\DiamondSoft\Font Reserve\2.6\System ключик Serial Number). Конечно, это может и не все. Но, если честно, я не смог найти отличий между демо и пропатченной прогой. ![]() ![]() ----- Сколько ни наталкивали на мысль – все равно сумел увернуться ![]() |
|
Создано: 01 марта 2005 09:56 · Личное сообщение · #19 |
|
Создано: 01 марта 2005 09:56 · Личное сообщение · #20 |
|
Создано: 01 марта 2005 10:06 · Личное сообщение · #21 |
|
Создано: 01 марта 2005 11:15 · Личное сообщение · #22 dragon-gor пишет: Кстати в НЕТ`е есть только патч и он (как пишут) вводят любой серийник!!! Действительно, есть кряк от Desperate crackteam.ws/get.shtml?208694 после патча вводишь любой номер различий: 3 Offsets: hex/dec/VA new/old 1D2AD/119469/41D2AD: 74 75 (je <- jnz) 1D325/119589/41D325: 75 74 (jnz <- je) 1EA79/125561/41EA79: 75 74 (jnz <- je) т.о. патчится проверка проверки ;) т.е. не самый лучший вариант, т.к. если в eax будет не 0 (или наоборот) - как в случае с правильным серийником, то валидный sn может быть признан невалидным проверка: по адресу 00450590 00450590 /$ 8B4C24 04 mov ecx, dword ptr ss:[esp+4] 00450594 |. 83EC 28 sub esp, 28 00450597 |. 8D4424 00 lea eax, dword ptr ss:[esp] 0045059B |. 50 push eax ; /Arg2 = 00000000 0045059C |. 51 push ecx ; |Arg1 = 01010101 0045059D |. E8 DECDFCFF call FontRese.0041D380 ; \FontRese.0041D380 004505A2 |. 85C0 test eax, eax 004505A4 |. 75 06 jnz short FontRese.004505AC 004505A6 |. 83C4 28 add esp, 28 004505A9 |. C2 0400 retn 4 004505AC |> 6A 06 push 6 004505AE |. 8D5424 04 lea edx, dword ptr ss:[esp+4] 004505B2 |. 68 60E14500 push FontRese.0045E160 004505B7 |. 52 push edx 004505B8 |. E8 33CFFCFF call FontRese.0041D4F0 004505BD |. 83C4 28 add esp, 28 004505C0 \. C2 0400 retn 4 вызывается 3 раза из: 0041D2A6, 0041D31E, 0041EA72 собственно серийник проверяется по адресу 0041D380 именно здесь и следует смотреть, чтобы написать кейген. ![]() ----- EnJoy! ![]() |
|
Создано: 01 марта 2005 15:10 · Личное сообщение · #23 dragon-gor пишет: Ограничения я сам не знаю Из хелпа: If you want to install a demo version of Font Reserve, leave the serial number field blank. A demo version of Font Reserve is limited to managing 100 font files. If you later purchase Font Reserve, you can enter a serial number by choosing Serial Number from the Help menu. Хотя я разницы не заметил. ----- Сколько ни наталкивали на мысль – все равно сумел увернуться ![]() |
|
Создано: 01 марта 2005 18:17 · Личное сообщение · #24 |
|
Создано: 03 марта 2005 13:11 · Личное сообщение · #25 |
|
Создано: 03 марта 2005 14:16 · Личное сообщение · #26 Вот млин тоже добрался (наконец интерьерщиков доучил, а то паши по 12 часов), хочу кейген зделать (хотеть не вредно). А насчёт переходов заморачивался значит поменял: 41d2ad jne(zf=0) на je(zf=1) 41d325 je(zf=1) на jne(zf=0) Проверил всё ОК пишет мол теперь полнофункциональная. Пытаюсь па примере статьи "Fairstars Audio Converter 1.26 и написание Keygenа" кейген сворганить. А не многовато ли для начинающего? Конечно условные переходы это хорошо, но КЕЙГЕНЫ это круто. Заметь что ни серийника, ни кеугена на прогу нет. Кстати если не прав то подправь - значение ключа в конце процедуры находиться на ESI? ![]() |
|
Создано: 03 марта 2005 14:20 · Личное сообщение · #27 |
|
Создано: 03 марта 2005 18:28 · Личное сообщение · #28 |
|
Создано: 04 марта 2005 15:50 · Личное сообщение · #29 dragon-gor пишет: Кстати если не прав то подправь - значение ключа в конце процедуры находиться на ESI? dragon-gor, извини, временно исследования пришлось прекратить, на работе аврал. ![]() ![]() ![]() ![]() ![]() ![]() ----- Сколько ни наталкивали на мысль – все равно сумел увернуться ![]() |
|
Создано: 05 марта 2005 11:56 · Личное сообщение · #30 1D325/119589/41D325: 75 74 (jnz <- je) - патчить не обязательно, смысл этой ссылки только в том, что при вызове в меню окна для ввода серийника из него не удаляется уже введенный серийник. ![]() Лучше, пропатчив 1D2AD/119469/41D2AD: 74 75 (je <- jnz) 1EA79/125561/41EA79: 75 74 (jnz <- je), из меню в редакторе ресурсов удалить этот пункт. ![]() dragon-gor, как твой кенген? ----- Сколько ни наталкивали на мысль – все равно сумел увернуться ![]() |
. 1 . 2 . >> |
![]() |
eXeL@B —› Основной форум —› Подскажите, второй день мучаюсь |