jueves, 3 de mayo de 2018

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!!!


11 comentarios:

  1. Como puedo desbloquear plc fatek el que instalo ya no esta en la empresa

    ResponderEliminar
  2. Pues con este tutorial puedes desbloquear una protección simple, en caso de que no lo consigas puedo realizarlo yo al desbloqueo. Para saber mis aranceles envíame un correo. Saludos!

    ResponderEliminar
  3. favor me puedes enviar tu correo,no puedo desbloquear programa

    ResponderEliminar
  4. Hola mi correo es: eft.sol.tec@gmail.com

    ResponderEliminar
  5. Hola al hacer el paso de ctrol+f9 solo se pone pausa una vez y al presionar de nuevo renauda de nuevo

    ResponderEliminar
  6. Pues no recuerdo bien pero por cada ctrl + F9 que te deja en el retorno de función te recomiendo que retornes con F8 para revisar que hace el código anterior a la llamada de función, por lo que me comentas, puede ser que la versión del winproladder sea diferente a la que use en su momento o la protección utilice otra función, o simplemente que estas pausando o poniendo bps en lugares incorrectos. Si no analizo no puedo decirte con certeza que es, y solo estaremos adivinando.
    Saludos!

    ResponderEliminar
  7. En mi caso, las preguntas son al reves del tutorial, se puede generar en un PLC Fatek una clave de acceso que no se pueda desbloquear?
    Para generarla con Winproladder, por dnd ingreso?

    ResponderEliminar
  8. Buen día E,
    Muy buen aporte, gracias a tu ayuda se pudo desbloquear PLC. Eres un Master!.

    Atte.: Henry

    ResponderEliminar
  9. Este comentario ha sido eliminado por un administrador del blog.

    ResponderEliminar