![]() |
eXeL@B —› Вопросы новичков —› Помогите разобраться с программой |
Посл.ответ | Сообщение |
|
Создано: 18 апреля 2007 22:04 · Личное сообщение · #1 Здравствуйте! Программа на Microsoft Visual C++ 7.0, после ввода данных регистрации программа просит перезагрузиться. Бряк после перезагрузки ставил на lstrcatW. Вроде это серийник sNDф[CI+ЋщСфP, но он не подходит. Фрагмент кода проверки, это то что после перезапуска: 004103B5 |. /73 05 JNB SHORT LinkyCat.004103BC ; SN Вход 004103B7 |. |B8 34354600 MOV EAX,LinkyCat.00463534 ; Выводит Неправильный серийник 004103BC |> \FF35 44354600 PUSH DWORD PTR DS:[463544] ; /Arg3 = 00000000 004103C2 |. 50 PUSH EAX ; |Arg2 004103C3 |. 56 PUSH ESI ; |Arg1 004103C4 |. E8 0C1CFFFF CALL LinkyCat.00401FD5 ; \LinkyCat.00401FD5 004103C9 |. 6A 20 PUSH 20 ; /Arg2 = 00000020 004103CB |. 8D45 DC LEA EAX,DWORD PTR SS:[EBP-24] ; | 004103CE |. 50 PUSH EAX ; |Arg1 004103CF |. E8 6FAD0000 CALL LinkyCat.0041B143 ; \LinkyCat.0041B143 004103D4 |. 6A 02 PUSH 2 ; /Arg3 = 00000002 004103D6 |. 8D45 BC LEA EAX,DWORD PTR SS:[EBP-44] ; | 004103D9 |. 50 PUSH EAX ; |Arg2 004103DA |. 56 PUSH ESI ; |Arg1 004103DB |. E8 1FAF0000 CALL LinkyCat.0041B2FF ; \LinkyCat.0041B2FF 004103E0 |. 53 PUSH EBX 004103E1 |. E8 6D350300 CALL LinkyCat.00443953 004103E6 |. 56 PUSH ESI 004103E7 |. E8 67350300 CALL LinkyCat.00443953 004103EC |. 59 POP ECX 004103ED |. 59 POP ECX 004103EE |. 6A 20 PUSH 20 ; /Arg2 = 00000020 004103F0 |. 8D45 BC LEA EAX,DWORD PTR SS:[EBP-44] ; | 004103F3 |. 50 PUSH EAX ; |Arg1 004103F4 |. E8 4AAD0000 CALL LinkyCat.0041B143 ; \LinkyCat.0041B143 004103F9 |. B8 20B64100 MOV EAX,LinkyCat.0041B620 ; ASCII "sNDф[CI+ЋщСфP" 004103FE |. B9 D0BF4100 MOV ECX,LinkyCat.0041BFD0 00410403 |. 2BC8 SUB ECX,EAX 00410405 |. C1E9 04 SHR ECX,4 00410408 |. 51 PUSH ECX ; /Arg3 00410409 |. 50 PUSH EAX ; |Arg2 => 0041B620 ASCII "sNDф[CI+ЋщСфP" 0041040A |. 50 PUSH EAX ; |Arg1 => 0041B620 ASCII "sNDф[CI+ЋщСфP" 0041040B |. E8 EFAE0000 CALL LinkyCat.0041B2FF ; \LinkyCat.0041B2FF 00410410 |. B8 F0BF4100 MOV EAX,LinkyCat.0041BFF0 00410415 |. B9 10CC4100 MOV ECX,LinkyCat.0041CC10 0041041A |. 2BC8 SUB ECX,EAX 0041041C |. C1E9 04 SHR ECX,4 0041041F |. 51 PUSH ECX ; /Arg3 00410420 |. 50 PUSH EAX ; |Arg2 => 0041BFF0 00410421 |. 50 PUSH EAX ; |Arg1 => 0041BFF0 00410422 |. E8 D8AE0000 CALL LinkyCat.0041B2FF ; \LinkyCat.0041B2FF 00410427 |. 8B4D FC MOV ECX,DWORD PTR SS:[EBP-4] 0041042A |. 5F POP EDI 0041042B |. 5E POP ESI 0041042C |. 33CD XOR ECX,EBP 0041042E |. 5B POP EBX 0041042F |. E8 55350300 CALL LinkyCat.00443989 00410434 |. C9 LEAVE 00410435 \. C3 RETN Это часть кода ввода данных с окна до закрытия программы: 00407299 . 50 PUSH EAX ; /hWnd 0040729A . FF15 14F64400 CALL DWORD PTR DS:[<&USER32.GetWindowTex>; \GetWindowTextLengthA 004072A0 . 8BF8 MOV EDI,EAX 004072A2 . 85FF TEST EDI,EDI 004072A4 . 74 28 JE SHORT LinkyCat.004072CE 004072A6 . 47 INC EDI 004072A7 . 57 PUSH EDI 004072A8 . E8 A1C20300 CALL LinkyCat.0044354E 004072AD . 59 POP ECX 004072AE . 57 PUSH EDI ; /Count 004072AF . 8BE8 MOV EBP,EAX ; | 004072B1 . 55 PUSH EBP ; |Buffer 004072B2 . 53 PUSH EBX ; |ControlID 004072B3 . 56 PUSH ESI ; |hWnd 004072B4 . FF15 18F64400 CALL DWORD PTR DS:[<&USER32.GetDlgItemTe>; \GetDlgItemTextA 004072BA . 55 PUSH EBP 004072BB . B9 30354600 MOV ECX,LinkyCat.00463530 004072C0 . E8 F1BCFFFF CALL LinkyCat.00402FB6 004072C5 . 55 PUSH EBP 004072C6 . E8 88C60300 CALL LinkyCat.00443953 004072CB . 59 POP ECX 004072CC . EB 0A JMP SHORT LinkyCat.004072D8 004072CE > B9 30354600 MOV ECX,LinkyCat.00463530 004072D3 . E8 06FEFFFF CALL LinkyCat.004070DE 004072D8 > 6A 01 PUSH 1 ; /Result = 1 004072DA . 56 PUSH ESI ; |hWnd 004072DB . FF15 0CF64400 CALL DWORD PTR DS:[<&USER32.EndDialog>] ; \EndDialog 004072E1 . 5D POP EBP 004072E2 . 5B POP EBX 004072E3 .^ E9 9CFEFFFF JMP LinkyCat.00407184 004072E8 > 833D F4344600>CMP DWORD PTR DS:[4634F4],8 ; Case 110 (WM_INITDIALOG) of switch 0040714A 004072EF . A1 E0344600 MOV EAX,DWORD PTR DS:[4634E0] 004072F4 . 73 05 JNB SHORT LinkyCat.004072FB 004072F6 . B8 E0344600 MOV EAX,LinkyCat.004634E0 ; UNICODE "Оранизация" 004072FB > 8B7C24 0C MOV EDI,DWORD PTR SS:[ESP+C] 004072FF . 8B35 28F64400 MOV ESI,DWORD PTR DS:[<&USER32.SetDlgIte>; USER32.SetDlgItemTextW 00407305 . 50 PUSH EAX ; /Text 00407306 . 68 F3030000 PUSH 3F3 ; |ControlID = 3F3 (1011.) 0040730B . 57 PUSH EDI ; |hWnd 0040730C . FFD6 CALL ESI ; \SetDlgItemTextW 0040730E . 833D 10354600>CMP DWORD PTR DS:[463510],8 00407315 . A1 FC344600 MOV EAX,DWORD PTR DS:[4634FC] 0040731A . 73 05 JNB SHORT LinkyCat.00407321 0040731C . B8 FC344600 MOV EAX,LinkyCat.004634FC ; UNICODE "Имя" ![]() |
|
Создано: 18 апреля 2007 23:42 · Личное сообщение · #2 |
|
Создано: 19 апреля 2007 00:19 · Личное сообщение · #3 |
|
Создано: 19 апреля 2007 01:15 · Личное сообщение · #4 И еще один вопрос возник по поводу OLLY. После запуска через F9, доходит до определенного места и выдает сообщение: Access violation when writing to [011c4ca4] - Shift +F7\F8\F9 to pass exception to program. Шму F9 не переходит дальше. А при Ctrl+F7 выдала ошибку: Don`t know how to step because memory at address B7905CD0 is not readable. Try to change EIP or pass exeption to program. ![]() |
|
Создано: 19 апреля 2007 11:51 · Личное сообщение · #5 |
|
Создано: 19 апреля 2007 20:30 · Личное сообщение · #6 crc1 пишет: а Shift +F9 не судьба тыкнуть Ну я же написал выше, жму F9, также при этом подразумевается, что и при нажатии Shift +F9,F8,F7. либо при трассировке Ctrl+F7, Ctrl+F8 до указанного места выдается сообщение: Don`t know how to step because memory at address B7905CD0 is not readable. Try to change EIP or pass exeption to program. После этого вместо кода в ОЛЛИ чистый лист, далее после нажатия ОК ОЛЛИ закрывается. А по поводу функции lstrcatW Смысл как я понимаю после прочтения статей, оказаться после остановки как можно ближе к механизму проверки серийника, я выбрал lstrcatW. В данном случае точно так же можно было использовать GetDlgItemTextA, но в первой части приведенного выше кода большая его уже была бы отработана, поэтому я и выбрал lstrcatW. При этом это не означает, что другие варианты не были использованы. ![]() |
![]() |
eXeL@B —› Вопросы новичков —› Помогите разобраться с программой |
Эта тема закрыта. Ответы больше не принимаются. |