Buenas RHL,
a ver, yo no he hecho nunca el curso de Ricardo Narvaja
pero acabo de ver el crackme por encima y parece resoluble en W7 64 bits sin ningún plugin.
Arranco el programa con el Olly y veo:
00401000 >/$ 68 08114000 PUSH Sphynx.00401108 ; /pTopLevelFilter = Sphynx.00401108
00401005 |. E8 AA010000 CALL <JMP.&kernel32.SetUnhandledExceptio>; \SetUnhandledExceptionFilter
por lo que veo que intuyo que el programa va a generar una excepción para ejecutar el código que se encuentra a partir de 0x401108. Así que:
BPX 401108
Y como me suena que el UnhandledExceptionFilter no funciona igual mientras estás debuggeando al programa debido al uso de ZwQueryInformationProcess, le pongo un punto de ruptura:
BP UnhandledExceptionFilter
También aprovecho para "nopear":
004010AF 75 2B JNZ SHORT Sphynx.004010DC
porque como he dicho no tengo ningún plugin y debo que evitar el IsDebuggerPresent.
Corro el programa, introduzco algo en el serial, y al probar el Olly me para con "Breakpoint at kernel32.UnhandledExceptionFilter :
769976F7 > 6A 5C PUSH 5C
769976F9 68 18789976 PUSH kernel32.76997818
769976FE E8 ED9EFDFF CALL kernel32.769715F0
76997703 C745 E0 06000000 MOV DWORD PTR SS:[EBP-20],6
7699770A 33F6 XOR ESI,ESI
7699770C 8975 E4 MOV DWORD PTR SS:[EBP-1C],ESI
7699770F 8975 DC MOV DWORD PTR SS:[EBP-24],ESI
76997712 8975 D8 MOV DWORD PTR SS:[EBP-28],ESI
76997715 8B5D 08 MOV EBX,DWORD PTR SS:[EBP+8]
76997718 8B03 MOV EAX,DWORD PTR DS:[EBX]
7699771A F640 04 10 TEST BYTE PTR DS:[EAX+4],10
7699771E 0F85 40020000 JNZ kernel32.76997964
76997724 C745 D4 01000000 MOV DWORD PTR SS:[EBP-2C],1
7699772B 8138 090400C0 CMP DWORD PTR DS:[EAX],C0000409
76997731 0F84 3F0A0000 JE kernel32.76998176
76997737 53 PUSH EBX
76997738 E8 AC010000 CALL kernel32.769978E9
7699773D 83F8 FF CMP EAX,-1
76997740 0F84 25020000 JE kernel32.7699796B
76997746 E8 16010000 CALL kernel32.76997861
7699774B 85C0 TEST EAX,EAX
7699774D 0F85 11020000 JNZ kernel32.76997964
He copiado hasta ahí, porque en este último salto ya me iría por mal camino (vamos, que EAX tendría que estar a 0 y yo lo tengo a 1). Así que cambio el Z Flag para que no salte y le doy a F9, con lo que ya consigo que el Olly se me pare con "Breakpoint at Sphynx.00401108".
Saludos.