RE FORUM
[REVERSE ENGINEERING] => Crackmes => Topic started by: STMR on July 16, 2009, 07:45:31 PM
-
Cus,
zkousel nekdo vyresit toto crackme?
00402652 |> E8 95FEFFFF /CALL ReverseM.004024EC
00402657 |. 66:8BC8 |MOV CX,AX
0040265A |. C1E8 10 |SHR EAX,10
0040265D |. 66:83F8 17 |CMP AX,17
00402661 |.^75 EF |JNZ SHORT ReverseM.00402652
00402663 |. 66:83F9 22 |CMP CX,22
00402667 |.^76 E9 |JBE SHORT ReverseM.00402652
00402669 |. 66:83F9 2D |CMP CX,2D
0040266D |.^73 E3 \JNB SHORT ReverseM.00402652
ReverseM.004024EC:
004024EC /$ 55 PUSH EBP
004024ED |. 8BEC MOV EBP,ESP
004024EF |. 83C4 E8 ADD ESP,-18
004024F2 |. 6A F6 PUSH -0A ; /DevType = STD_INPUT_HANDLE
004024F4 |. E8 31020000 CALL <JMP.&kernel32.GetStdHandle> ; \GetStdHandle
004024F9 |. 50 PUSH EAX
004024FA |> 6A FF /PUSH -1 ; /Timeout = INFINITE
004024FC |. FF7424 04 |PUSH DWORD PTR SS:[ESP+4] ; |hObject
00402500 |. E8 43020000 |CALL <JMP.&kernel32.WaitForSingleObject>; \WaitForSingleObject
00402505 |> 8D45 E8 |/LEA EAX,DWORD PTR SS:[EBP-18]
00402508 |. 50 ||PUSH EAX ; /pnRead
00402509 |. 6A 01 ||PUSH 1 ; |nRecords = 1
0040250B |. 8D45 EC ||LEA EAX,DWORD PTR SS:[EBP-14] ; |
0040250E |. 50 ||PUSH EAX ; |Buffer
0040250F |. FF7424 0C ||PUSH DWORD PTR SS:[ESP+C] ; |hConsole
00402513 |. E8 1E020000 ||CALL <JMP.&kernel32.ReadConsoleInputA> ; \ReadConsoleInputA
00402518 |. 0BC0 ||OR EAX,EAX
0040251A |. 74 17 ||JE SHORT ReverseM.00402533
0040251C |. 0FB745 EC ||MOVZX EAX,WORD PTR SS:[EBP-14]
00402520 |. 83F8 02 ||CMP EAX,2
00402523 |. 75 0E ||JNZ SHORT ReverseM.00402533
00402525 |. 0FB745 F4 ||MOVZX EAX,WORD PTR SS:[EBP-C]
00402529 |. 83F8 01 ||CMP EAX,1
0040252C |. 75 05 ||JNZ SHORT ReverseM.00402533
0040252E |. 8B45 F0 ||MOV EAX,DWORD PTR SS:[EBP-10]
00402531 |. EB 17 ||JMP SHORT ReverseM.0040254A
00402533 |> 8D45 E8 ||LEA EAX,DWORD PTR SS:[EBP-18]
00402536 |. 50 ||PUSH EAX ; /pNumberOfEvents
00402537 |. FF7424 04 ||PUSH DWORD PTR SS:[ESP+4] ; |hConsoleInput
0040253B |. E8 E4010000 ||CALL <JMP.&kernel32.GetNumberOfConsole>; \GetNumberOfConsoleInputEvents
00402540 |. 837D E8 00 ||CMP DWORD PTR SS:[EBP-18],0
00402544 |.^76 BF |\JBE SHORT ReverseM.00402505
00402546 |. 33C0 |XOR EAX,EAX
00402548 |.^74 B0 \JE SHORT ReverseM.004024FA
0040254A |> C9 LEAVE
0040254B \. C3 RETN
http://www.crackmes.de/users/doomsday/reverseme_v3_keygenme/
---
Program si nacte vstup z konzole pomoci fce ReadConsoleInputA. Potom si je overi, nejdriv musi byt vstup z mysi, potom z klavesnice. Pak se overuje co se doopravdy zmacklo. Ale jaky je vstup s cislem 17h ?
ThX
-
Cus,
Spatne pochopils strukturu INPUT_RECORD.
00402520 |. 83F8 02 ||CMP EAX,2 ;overeni jestli se jedna o MOUSE_EVENT
00402529 |. 83F8 01 ||CMP EAX,1 ; overeni jestli je RIGHT_ALT_PRESSED
MOV EAX,DWORD PTR SS:[EBP-10] ; do EAX COORD dwMousePosition
0040265D |. 66:83F8 17 |CMP AX,17 ;radek
00402663 |. 66:83F9 22 |CMP CX,22 ;sloupec
00402667 |.^76 E9 |JBE SHORT ReverseM.00402652
00402669 |. 66:83F9 2D |CMP CX,2D
tak nejak.