Parece que el programa es totalmente funcional y tan sólo aparece una pantallita
al iniciar que nos recuerda que es ShareWare, y que desaparece solita en unos segundos.
En el programa no hay ninguna opción para registrarse, así que supongo que al pagar
te deben enviar algun fichero que te registra.
Podemos recordar que el programa es ShareWare mirando en la opción About, así
que no hace falta que nos lo diga cada vez que arrancamos. Vamos a investigar.... ;-)
|
Al empezar, el programa busca en el registro (en \Software\Helios\TextPad\Security) un valor de 3 caracteres para "Capabilities",
que no puede encontrar ;-(
Se podría generar esa clave a mano en el registro, y ver que hace luego con ella.
Con el SoftIce se haría poniendo un BreakPoint en la dirección de memoria donde almacena ese valor.
O sea, BPM 0137:4F34B0 ,pero como la cosa se lia un poco, vamos a lo bruto...
Una vez abierto y cargado el TxtPad32.exe con el Debugger WDasm v8.9, vamos a poner un
BreakPoint para RegOpenKeyExA con "Software\Helios\TextPad\Security", o sea en :40CD68
Se puede encontrar esta dirección mirando en la opción Refs/String Data References, buscando el
texto "Security", y haciendo doble click sobre él. Con F2 se marca el BreakPoint.
Ejecutamos el programa (F9), y se para por el BreakPoint.
Como vamos a saco, le damos al Auto Step Over (F6), y estamos atentos para fijarnos en que momento aparece la pantalla de ShareWare.
Si hemos afinado la vista (o en su defecto hemos repetido la operación acotando cada vez un poco más y avanzando a mano con F8),
encontraremos la llamada en :44CD3C call 4A0431 , que podría ser algo así como Call Muestra_Pantalla_de_ShareWare.
Miramos una linias más arriba para ver si hay alguna instrucción que se salte esa llamada :
:0044CD1C 8B7DF0 mov edi, dword ptr [ebp-10]
:0044CD1F 81C7D0000000 add edi, 000000D0
:0044CD25 8B0F mov ecx, dword ptr [edi]
:0044CD27 85C9 test ecx, ecx
:0044CD29 742C je 0044CD57
:0044CD2B 53 push ebx
:0044CD2C 8B01 mov eax, dword ptr [ecx]
:0044CD2E FF90D4000000 call dword ptr [eax+000000D4]
:0044CD34 85C0 test eax, eax
:0044CD36 741F je 0044CD57
:0044CD38 6A05 push 00000005
:0044CD3A 8B0F mov ecx, dword ptr [edi]
:0044CD3C E8F0360500 call 004A0431
Si en :44CD29 hiciera el salto, no se mostraría la pantallita de shareware.
Así que para que ello ocurra, cambiamos la instrucción de :44CD25 por xor ecx,ecx
Seguimos ejecutando, y vemos que todo parece estar ok.
Esto es ir a saco... ;-DDD
Para dejar los cambios permanentes, hay que modificar el fichero TxtPad32.exe
La instrucción a parchear está en :44CD25 en el código, que el Wdasm nos dice que es el offset 4C125 del fichero TxtPad32.exe
Así que con un editor hexadecimal nos vamos a la posición 4C125, y cambiamos 8B0F por 33C9
Salvamos, y yatá.
|