que nos queda mas que continuar!!!!!
00403060 . 61 POPAD
00403061 . 6A 00 PUSH 0 ; /lParam = NULL
00403063 . 68 F01F4000 PUSH CrackMe0.00401FF0 ; |DlgProc = CrackMe0.00401FF0
00403068 . A1 04B84000 MOV EAX,DWORD PTR DS:[40B804] ; |
0040306D . 50 PUSH EAX ; |hOwner => NULL
0040306E . 6A 6C PUSH 6C ; |pTemplate = 6C
00403070 . 8B4D 08 MOV ECX,DWORD PTR SS:[EBP+8] ; |
00403073 . 51 PUSH ECX ; |hInst
00403074 . FF15 E8904000 CALL DWORD PTR DS:[<&USER32.DialogBoxPar>; \DialogBoxParamA
0040307A . 68 90304000 PUSH CrackMe0.00403090
esta es la nag colocamos un bp a esta api:
00402091 |. FF15 00904000 CALL DWORD PTR DS:[<&KERNEL32.GetProcAdd>; \GetProcAddress
traceamos hasta :
00402091 |. FF15 00904000 CALL DWORD PTR DS:[<&KERNEL32.GetProcAdd>; \GetProcAddress -> coje la direccion de la api msbox
00402097 |. A3 D4BC4000 MOV DWORD PTR DS:[40BCD4],EAX
0040209C 68 ECB64000 PUSH CrackMe0.0040B6EC
lo uqe debemos hacer es que cierre la ventana si miramos un poco mas abajo observamos lo siguiente
004021F0 |. 6A 00 PUSH 0 ; /Result = 0
004021F2 |. 8B4D 08 MOV ECX,DWORD PTR SS:[EBP+8] ; |
004021F5 |. 51 PUSH ECX ; |hWnd
004021F6 |. FF15 10914000 CALL DWORD PTR DS:[<&USER32.EndDialog>] ; \EndDialog
justo la api que necesitamos entonces donde esta el PUSH CrackMe0.0040B6EC colocaremos un salto asi
0040209C /E9 4F010000 JMP CrackMe0.004021F0
y listo seguimos traceando con f8 y caemos aka ->
00403090 . 6A 00 PUSH 0 ; /lParam = NULL
00403092 . 68 D0264000 PUSH CrackMe0.004026D0 ; |DlgProc = CrackMe0.004026D0
00403097 . 8B15 04B84000 MOV EDX,DWORD PTR DS:[40B804] ; |
0040309D . 52 PUSH EDX ; |hOwner => NULL
0040309E . 6A 65 PUSH 65 ; |pTemplate = 65
004030A0 . 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8] ; |
004030A3 . 50 PUSH EAX ; |hInst
004030A4 . FF15 E8904000 CALL DWORD PTR DS:[<&USER32.DialogBoxPar>; \DialogBoxParamA
presionamos ctrl+G y tipeamos esta direccion 004026D0, miramos un poc mas abajo a la direcion
00402749 . 833D 08B84000>CMP DWORD PTR DS:[40B808],32 -> colocamos un bp
00402750 . 74 08 JE SHORT CrackMe0.0040275A -> cambiamos je a jmp 0xeb
00402752 . 6A 00 PUSH 0
00402754 . FF15 48BC4000 CALL DWORD PTR DS:[40BC48] ; kernel32.7C81CAA4
0040275A > 68 69274000 PUSH CrackMe0.00402769
y traceamos hasta llegar
004027EC . 50 PUSH EAX ; |hWnd
004027ED . FF15 04914000 CALL DWORD PTR DS:[<&USER32.SetWindowPos>; \SetWindowPos
004027F3 E8 78FDFFFF CALL CrackMe0.00402570 -> nopeamos este CALL que es donde
004027F8 . B8 01000000 MOV EAX,1
004027FD . E9 62070000 JMP CrackMe0.00402F64
vee todo nuestros procesos, para llegar a esa Conclusión debemos poner un bp a la apì createoolhelper
y quedaria asi
004027F3 90 NOP
004027F4 90 NOP
004027F5 90 NOP
004027F6 90 NOP
004027F7 90 NOP
004027F8 . B8 01000000 MOV EAX,1
004027FD . E9 62070000 JMP CrackMe0.00402F64
Guardamos los cambios y ahora si el crackme se ejecuta directamenta
.
http://rapidshare.de/files/22319791/CrackMe03_patchado22.rar.htmlMiEMBRO DE RVLCN
Oberon
www.rvlcnsecurity.comwww.rvlcn.comwww.revolucion7000.com