Autor
|
Tema: Ayuda con ABViewer 7 (Leído 5,507 veces)
|
gastonp
Desconectado
Mensajes: 32
|
Hola a todos, necesitaria que me orienten un poco con este programa. Soy nuevo en esto, he leido los tutos de Ricardo Narvaja y he conseguido crackear algunos programas sencillos pero se me ha puesto en la cabeza crackear este programa y la verdad que no le encuentro la vuelta. La aplicacion esta hecha en Delphi 6/7, sin packer segun el RDG, al ingresar aparece una nag que nos dice la cantidad de dias que nos quedan disponibles y nos permite ingresar los datos para registrarnos. Una vez ingresados los datos nos aparece otra ventana que dice que reiniciemos el programa para verificar los datos del registro y se cierra. Esto es lo que he descubierto hasta ahora: el numero de serie que ingresamos junto con nuestros datos se guardan en el REGISTRO DE WINDOWS. Poniendo un "bp RegQueryValueExA" y reiniciando el programa, se puede ver como lee mi nombre y mi mail del registro pero no logro ver donde lee el nº de serie que ingrese. He tratado tambien de encontrar donde comienza la nag para poner un bp ahi y ver desde donde es llamada pero no lo he logrado El programa lo pueden descargar desde aca: http://www.cadsofttools.com/download/abviewer.zipSi pueden guiarme un poco se los agradeceria. Un saludo
|
|
|
En línea
|
|
|
|
LSL
Desconectado
Mensajes: 239
Cls
|
con el DeDe puedes ver las direccion offset de los eventos, tambien con la herramienta E2A de "[RAZIEL] & Guan de Dio", puedes ver las direcciones donde comienzan los formularios, así como la de los distintos eventos que contienen.
|
|
|
En línea
|
Saludos.
LSL.
|
|
|
MCKSys Argentina
|
Tambien puedes usar IDR ( http://kpnc.org/idr32/en/). Esta muy bueno y aparte, detecta las llamadas a las librerias de las ultimas versiones de Delphi. Saludos!
|
|
|
En línea
|
MCKSys Argentina "Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."
|
|
|
gastonp
Desconectado
Mensajes: 32
|
Gracias por responder tan pronto, he usado el DeDe y el IDR y encontre la nag: se llama TfrmNagScreen. Todavia no he podido registrar la aplicacion pero voy a seguir probando. Un saludo
|
|
|
En línea
|
|
|
|
LSL
Desconectado
Mensajes: 239
Cls
|
Tambien puedes usar IDR ( http://kpnc.org/idr32/en/). Esta muy bueno y aparte, detecta las llamadas a las librerias de las ultimas versiones de Delphi. Saludos! Muy bueno, y mas actualizado que el DeDe. Definiciones para delphi 2009 recien salidas del horno, y se está trabajando con las definiciones para delphi 2010, que por ahora hay que esperar. Desde aqui, muchas gracias a sus creadores, por esta magnifica herramienta, que ponen en nuestras manos gratuitamente.
|
|
« Última modificación: 11 Junio 2010, 08:32 am por LSL »
|
En línea
|
Saludos.
LSL.
|
|
|
tena
Desconectado
Mensajes: 668
|
|
|
|
En línea
|
|
|
|
tena
Desconectado
Mensajes: 668
|
Como explico en el tute, buscas ese patron de bytes y estan aqui... 0046FDA9 |> \E8 0694F9FF CALL <JMP.&user32.GetCapture> ; [GetCapture 0046FDAE |. 85C0 TEST EAX,EAX 0046FDB0 |. 74 11 JE SHORT ABViewer.0046FDC3 0046FDB2 |. 6A 00 PUSH 0 ; /lParam = 0 0046FDB4 |. 6A 00 PUSH 0 ; |wParam = 0 0046FDB6 |. 6A 1F PUSH 1F ; |Message = WM_CANCELMODE 0046FDB8 |. E8 F793F9FF CALL <JMP.&user32.GetCapture> ; |[GetCapture 0046FDBD |. 50 PUSH EAX ; |hWnd 0046FDBE |. E8 A197F9FF CALL <JMP.&user32.SendMessageA> ; \SendMessageA 0046FDC3 |> E8 6497F9FF CALL <JMP.&user32.ReleaseCapture> ; [ReleaseCapture Te vas al inicio de esa rutina y pones un bp 0046FD38 /$ 55 PUSH EBP ; GETCAPTURE 0046FD39 |. 8BEC MOV EBP,ESP 0046FD3B |. 83C4 E0 ADD ESP,-20 0046FD3E |. 53 PUSH EBX 0046FD3F |. 56 PUSH ESI 0046FD40 |. 33D2 XOR EDX,EDX Reinicias, das run, caes ahi y te ijas en la pila a donde retorna. 0012FE6C 00A20661 RETURN to ABViewer.00A20661 0012FE70 0012FEBC Pointer to next SEH record 0012FE74 00A206D4 SE handler y retornamos aqui.. 00A205DE . A1 3839A800 MOV EAX,DWORD PTR DS:[A83938] 00A205E3 . 8338 00 CMP DWORD PTR DS:[EAX],0 00A205E6 . 75 3B JNZ SHORT ABViewer.00A20623 00A205E8 . 8BCB MOV ECX,EBX 00A205EA . B2 01 MOV DL,1 00A205EC . A1 E4058B00 MOV EAX,DWORD PTR DS:[8B05E4] 00A205F1 . E8 BE07E9FF CALL ABViewer.008B0DB4 00A205F6 . 8B15 3839A800 MOV EDX,DWORD PTR DS:[A83938] ; ABViewer.00A7DC68 00A205FC . 8902 MOV DWORD PTR DS:[EDX],EAX 00A205FE . A1 3839A800 MOV EAX,DWORD PTR DS:[A83938] 00A20603 . 8B00 MOV EAX,DWORD PTR DS:[EAX] 00A20605 . 8998 BC030000 MOV DWORD PTR DS:[EAX+3BC],EBX 00A2060B . C780 B8030000 F020>MOV DWORD PTR DS:[EAX+3B8],ABViewer.00A220F0 00A20615 . A1 3839A800 MOV EAX,DWORD PTR DS:[A83938] 00A2061A . 8B00 MOV EAX,DWORD PTR DS:[EAX] 00A2061C . B2 01 MOV DL,1 00A2061E . E8 9910E9FF CALL ABViewer.008B16BC 00A20623 > A1 3839A800 MOV EAX,DWORD PTR DS:[A83938] 00A20628 . 8B00 MOV EAX,DWORD PTR DS:[EAX] 00A2062A . 80B8 DA010000 00 CMP BYTE PTR DS:[EAX+1DA],0 00A20631 . 0F85 E3000000 JNZ ABViewer.00A2071A 00A20637 . 80BB 62080000 00 CMP BYTE PTR DS:[EBX+862],0 00A2063E . 0F85 97000000 JNZ ABViewer.00A206DB 00A20644 . 33C0 XOR EAX,EAX 00A20646 . 55 PUSH EBP 00A20647 . 68 D406A200 PUSH ABViewer.00A206D4 00A2064C . 64:FF30 PUSH DWORD PTR FS:[EAX] 00A2064F . 64:8920 MOV DWORD PTR FS:[EAX],ESP 00A20652 . A1 3839A800 MOV EAX,DWORD PTR DS:[A83938] 00A20657 . 8B00 MOV EAX,DWORD PTR DS:[EAX] 00A20659 . 8B10 MOV EDX,DWORD PTR DS:[EAX] 00A2065B . FF92 FC000000 CALL DWORD PTR DS:[EDX+FC] ; NAG DE REGISTRO Donde se ven unas cuantas variables muy interezantes.. slds
|
|
|
En línea
|
|
|
|
gastonp
Desconectado
Mensajes: 32
|
Gracias tena, muy bueno el tute. Siguiendolo llegue al mismo lugar que vos donde muestra la nag e invirtiendo el salto de 00A20631 evito que se muestre y pude ingresar al programa aun despues de los 45 dias de prueba. He puesto un hardware breakpoint on write en las direcciones de memoria a las que apuntan las siguientes comparaciones que saltan la nag: 00A20637 . 80BB 62080000 00 CMP BYTE PTR DS:[EBX+862],0
00A2062A . 80B8 DA010000 00 CMP BYTE PTR DS:[EAX+1DA],0
y he intentado modificar esas posiciones de memoria pero se me termina colgando el programa. Tambien encontre el siguiente codigo que se ejecuta al seleccionar la opcion Acerca de ABViewer en el menu Ayuda: 008AB20C /$ FECA DEC DL 008AB20E |. 74 0E JE SHORT ABViewer.008AB21E 008AB210 |. FECA DEC DL ; Switch (cases 1..3) 008AB212 |. 74 1B JE SHORT ABViewer.008AB22F 008AB214 |. FECA DEC DL 008AB216 |. 74 28 JE SHORT ABViewer.008AB240 008AB218 |. FECA DEC DL 008AB21A |. 74 35 JE SHORT ABViewer.008AB251 008AB21C |. EB 43 JMP SHORT ABViewer.008AB261 008AB21E |> BA 6CB28A00 MOV EDX,ABViewer.008AB26C ; ASCII "Unregistred" 008AB223 |. 8B80 94030000 MOV EAX,DWORD PTR DS:[EAX+394] 008AB229 |. E8 E2D6BDFF CALL ABViewer.00488910 008AB22E |. C3 RETN 008AB22F |> BA 80B28A00 MOV EDX,ABViewer.008AB280 ; ASCII "Standard"; Case 1 of switch 008AB210 008AB234 |. 8B80 94030000 MOV EAX,DWORD PTR DS:[EAX+394] 008AB23A |. E8 D1D6BDFF CALL ABViewer.00488910 008AB23F |. C3 RETN 008AB240 |> BA 94B28A00 MOV EDX,ABViewer.008AB294 ; ASCII "Professional"; Case 2 of switch 008AB210 008AB245 |. 8B80 94030000 MOV EAX,DWORD PTR DS:[EAX+394] 008AB24B |. E8 C0D6BDFF CALL ABViewer.00488910 008AB250 |. C3 RETN 008AB251 |> BA ACB28A00 MOV EDX,ABViewer.008AB2AC ; ASCII "Enterprise"; Case 3 of switch 008AB210 008AB256 |. 8B80 94030000 MOV EAX,DWORD PTR DS:[EAX+394] 008AB25C |. E8 AFD6BDFF CALL ABViewer.00488910 008AB261 \> C3 RETN ; Default case of switch 008AB210
Trate de ir llendo hacia atras para ver donde le asigna el valor a dl pero no logro entender donde lo hace. Si bien salte el limite de tiempo de la aplicacion me gustaria que quedara registrada. Si pudieras orientarme nuevamente te lo agradeceria. Gracias y disculpen que sea tan pesado. Un saludo
|
|
« Última modificación: 13 Junio 2010, 19:44 pm por gastonp »
|
En línea
|
|
|
|
|
|