Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: Albertoak en 11 Septiembre 2020, 09:06 am



Título: debuggear programa automocion
Publicado por: Albertoak en 11 Septiembre 2020, 09:06 am
Hola compañeros.

Llevo semanas intentando debuggear un prorgama de automocion que solicita creditos a la hora de cargar un archivo.Esos creditos son alamcenados en el cable fisico de dicho programa

He conseguido saltar de diferentes maneras ese salto de creditos. Algunos files si me los carga pero otros files no. Me temo que hay que aplicarlos de otra manera...

tambien se me ocurre sumar creditos al cable(desconozco la manera) hacer que la app crea siempre que todos los files son credito 0....

He probado mil combinaciones, pero ya se me acabaron las ideas...

Por razones de copyright, no puedo subir nada sobre el codigo de este programa.

Si alguien esta dispuesto o se le ocurre algo. Estaria encantado de trabajar con el.

Gracias y saludos!!!!

Se me esta ocurriendo ver en el mapa de memoria el archivo que carga el programa.
Por defecto los archivos que carga el prorgama estan cifrados, al cargarlo en el programa el propio programa lo descifra y lo deja listo para cargar.

Si pudiese extraer ese file descifrado en memoria, me valdria.

Pero por mas que miro por el mapa de memoria no encuentro.... alguna sugerencia??

MOD: No hagas doble post. Usa el boton modificar.


Título: Re: debuggear programa automocion
Publicado por: MCKSys Argentina en 11 Septiembre 2020, 16:39 pm
Hola!

Si puedes determinar el lugar donde descifra los archivos y los copia en memoria, podrias hacer un crack/loader que te permita remplazar el archivo ya decodificado por otro que quieras abrir.

La idea seria parchear la rutina que lee, para que cargue algo generico y luego reemplazar por el archivo que quieres leer realmente. Aunque si la comprobacion esta despues de hacer todo eso, convendria parchearla y dejar todo lo anterior como estaba.

Saludos!


Título: Re: debuggear programa automocion
Publicado por: Albertoak en 12 Septiembre 2020, 10:05 am
Hola!

Si puedes determinar el lugar donde descifra los archivos y los copia en memoria, podrias hacer un crack/loader que te permita remplazar el archivo ya decodificado por otro que quieras abrir.

La idea seria parchear la rutina que lee, para que cargue algo generico y luego reemplazar por el archivo que quieres leer realmente. Aunque si la comprobacion esta despues de hacer todo eso, convendria parchearla y dejar todo lo anterior como estaba.

Saludos!

Es lo que no consigo encontrar... ver en donde los desempaca en la memoria. Si pudiese saberlo..copiaria todo el codigo que desempaca a un nuevo .bin y ese nuevo .bin me serviria para cargarlo con en la centralita del coche con otra herramienta que tengo... no se si me explico.


Título: Re: debuggear programa automocion
Publicado por: FFernandez en 16 Septiembre 2020, 20:19 pm
Compara la men antes de elegir un bin, y después, con suerte podras localizar la zona de memoria donde se encuentra, aunque el código del programa sea cambiante, la parte del bin será siempre la misma.


Título: Re: debuggear programa automocion
Publicado por: Albertoak en 6 Octubre 2020, 17:40 pm
llevo ya semanas debugeando el programa, aplicando saltos condicionales y nada... No consigo llegar despues de muchisimas combinaciones.... Si alguien se anima, encantado de trabajar juntos.


Título: Re: debuggear programa automocion
Publicado por: FFernandez en 18 Octubre 2020, 20:00 pm
Es lo que no consigo encontrar... ver en donde los desempaca en la memoria. Si pudiese saberlo..copiaria todo el codigo que desempaca a un nuevo .bin y ese nuevo .bin me serviria para cargarlo con en la centralita del coche con otra herramienta que tengo... no se si me explico.


Hay programas que te dicen que procesos esta ejecutando y que módulos utiliza la aplicación principal.
Te proporcionan un puntero, normalmente los procesos(Threads) y Módulos no están fragmentados.
Además un tamaño en BYTES.
Con eso puedes copiar la memoria.
1º antes de cargar el Archivo toma los datos
2º lo compara después de cargar los datos
Con suerte ya tienes localizado donde carga los datos

Ojo los Threads solo existen mientras están ejecutando o esperando algo.