Сейчас на форуме: _MBK_, vsv1 (+6 невидимых)

 eXeL@B —› Вопросы новичков —› Помогите разобраться с программой
Посл.ответ Сообщение

Ранг: 22.5 (новичок)
Активность: 0.020
Статус: Участник

Создано: 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 "Имя"



Ранг: 260.2 (наставник)
Активность: 0.190
Статус: Участник

Создано: 18 апреля 2007 23:42
· Личное сообщение · #2

x123, телепатов вызывать или сам кинешь линк на прожку?



Ранг: 22.5 (новичок)
Активность: 0.020
Статус: Участник

Создано: 19 апреля 2007 00:19
· Личное сообщение · #3

Про линк забыл совсем
linkycat.com/downloads/files/lc_u_ru.exe



Ранг: 22.5 (новичок)
Активность: 0.020
Статус: Участник

Создано: 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.



Ранг: 138.7 (ветеран), 135thx
Активность: 0.110
Статус: Участник

Создано: 19 апреля 2007 11:51
· Личное сообщение · #5

x123 пишет:
Шму F9 не переходит дальше.
А при Ctrl+F7 выдала ошибку:

а Shift +F9 не судьба тыкнуть

x123 пишет:
Бряк после перезагрузки ставил на lstrcatW.

Ты хоть знаешь, что это за функция
Имхо, искури сначала все статьи и форум с краклаба, а потом задавай вопросы



Ранг: 22.5 (новичок)
Активность: 0.020
Статус: Участник

Создано: 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 —› Вопросы новичков —› Помогите разобраться с программой
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати