Está en la página 1de 8

Desbloqueando un proyecto de WinProLadder (PLC Fatek)

Hola gente como estan?


Bien aquí les traigo como desbloquear un proyecto de WinProLadder protegido por
contraseña, este proyecto puede ser un proyecto guardado o estar ya grabado/subido en el
PLC, como ya se sabe de marca Fatek.

Bien para empezar se abre el programa, se carga el proyecto o se conecta al plc y se intenta
descargar el mismo.

Una vez abierto/descargado, solicitará el password:


Aquí escribimos cualquier numero y le damos ok.
Veremos el siguiente mensaje (No le damos a Aceptar, y abrimos OllyDbg):

Una vez abierto el Olly, attachamos el proceso, para ello vamos a la opcion File-->attach
Nos aparecerá el dialogo siguiente, donde buscamos en la lista, la instancia al proceso
WinProLadder, y la atachamos:

Una vez atachado, el proceso queda pausado en la instruccion siguiente:


Aqui empezamos a darle a Ctrl+F9 hasta llegar al siguiente código:
Analizando el código anterior, llegamos a la conclusión de que esta función es la que muestra
el mensaje de error de chequeo, pero no comprueba nada, por ello continuo con Ctrl+F9 para
salir de la misma y llegar al siguiente código:

Una vez retornamos, nos encontramos con el código de la imagen anterior, como se puede
apreciar yo recuadré tres llamadas a función, que son las que me llamaron la atención, la
primera que hace referencia a "TPLCMem", la segunda a
"@Controls@TControl@GetText$qqrv", y la tercera que es de la cual nosotros hemos
retornado.
Bien por que las he recuadrado se preguntarán, pues porque según mis años de experiencia y
mi intuición me dicen que esas dos funciones anteriores a la del mensaje son las que obtienen
los datos de chequeo, y las siguientes call son de comprobaciones varias, y como se puede
apreciar inmediatamente anterior a la llamada de la que retornamos, hay un pequeño trozo de
código con dos saltos un JZ y un JMP como se sabe el JZ es un salto condicional en caso de
ser cero y el JMP es un salto incondicional, en el caso de que el pass sea incorrecto la
comparación da cero y el JZ se activa llevándonos al mensaje de error de chequeo, caso
contrario va por el JMP y nos deja acceder al proyecto para edición.
An fin, prefiero hacerle caso a mi intuición (y no complicar las cosas con tanto análisis),
entonces pongo dos BP uno en la primer función y otro en la segunda de las tres que resalté
le doy a run al olly, acepto el mensaje de error ingreso nuevamente un pass erróneo y doy
aceptar, al instante de darle aceptar el olly quiebra en el primer BP:
Una vez pase la primer call con F8 (recuadrada en la imagen anterior a la izquierda), se puede
apreciar en la ventana de abajo a la derecha (Stack o Pila) una pequeña cadena de caracteres
numéricos, los cuales también he resaltado con un recuadro rojo.
Sigo depurando hasta pasar el otro BP y ejecutar la segunda función misteriosa:

Al igual que en la función anterior me retorna otra cadena que guarda justo debajo de la
anterior (ambas resaltadas en el recuadro rojo de abajo a la derecha), esta segunda cadena
me resulta familiar, ya que es el password que he ingresado erróneamente para hacer las
pruebas, con lo cual la primer cadena debería ser el password original del proyecto,
realizamos la prueba y como era de esperarse, estamos en lo correcto.

Bien hemos logrado nuestro cometido, poder acceder al proyecto, así que aquí concluye este
pequeño tutorial.

No duden en consultar ante cualquier duda!

En la medida que tenga tiempo y los recursos, iré realizando mas tutoriales sobre otros
sistemas.

Saludos!!!

Publicado 3rd May 2018 por Unknown

También podría gustarte