Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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 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 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.
En la medida que tenga tiempo y los recursos, iré realizando mas tutoriales sobre otros
sistemas.
Saludos!!!