Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Albertoak

#1
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.
#2
Cita de: 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!

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.
#3
Ingeniería Inversa / debuggear programa automocion
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.
#4
Cita de: MCKSys Argentina en 22 Agosto 2019, 14:33 PM
Hola!

Como te han dicho, el string que estás tratando de cambiar se accede por un puntero.

Cambiar el string el tiempo de ejecucion no vale de mucho si el programa lo cambia de nuevo.

El tema es saber que es lo que estas intentando hacer: cambiar un string antes de que se lo compruebe? Despues?

Tu imagen muestra un puntero (direccion de memoria que hace refencia a otra direccion de memoria) a un string, que es el que (al perecer) quieres modificar.

Ademas, para que lo tengas en cuenta, si se trata de un puntero a la sección .data, vas a tener que tener en cuenta las relocaciones (si hay).

Saludos!

Me temo que ese es mi problema... Cada vez que arranca el programa carga el mismo serial (A1C7CE59). Pero lo carga en un lugar de memoria diferente. Seria inutil cambiarlo ahi...

Por mas que busco no encuentro de el lugar donde recoge dicha numeracion el .exe... podria ser en alguna .dll del programa???

La idea seria modificar ese serial (A1C7CE59) y poner el de mi cable(AK08LS). Para que cada vez que arranque haga la comprobacion con el serial de mi cable y de el OK. Por que tampoco encuentro el salto en el que hace esa comprobacion... si no seria otra opcion.


Cita de: EdePC en 22 Agosto 2019, 14:51 PM
Saludos,

- Primero tienes que saber que los textos que aparecen en la parte de la derecha, como 4C2124:&L"AH2P83" son solo comentarios, pueden ser propios o automáticos, ayudan a identificar cosas como referencias a Api, Números, Strings, etc.

-- Si haces modificaciones ahí, no afectan al programa en sí, ya que son solo comentarios.

- En la parte central se muestran los detalles de la línea seleccionada.

- También tienes que entender que significa estos detalles o comentarios, en particular te interesa: 4C2124:&L"AH2P83", y esto se lee asÍ:

-- Dirección 4C2124, hay un Puntero (&), es decir, una Dirección donde a su vez hay un String o Texto Unicode* (L) que dice: "AH2P83"

04C2120  00 00 00 00 EC AE 6A 00 7C 39 69 00 00 00 00 00  ....ì®j.|9i.....

-- Ese EC AE 6A 00 es un Puntero a tu Texto, pero recordar también que los datos del Dump se leen de derecha a izquierda (Little Endian) quedando así: 00 6A AE EC o 006AAEEC, ve a esa dirección y deberías encontrar tu Texto, algo así:

006AAEE0  47 00 41 00 54 00 4F 00 53 00 00 00 41 00 48 00  G.A.T.O.S...A.H.
006AAEF0  32 00 50 00 38 00 33 00 00 48 00 4F 00 4C 00 41  2.P.8.3..H.O.L.A


- Me parece que sería mejor usar un Editor Hexadecimal para hacer y guardar la modificación del String, si es que el String no se modifica en tiempo de ejecución ...

* No he encontrado documentación detallada sobre como leer y entender esos símbolos en x64dbg, espero que alguien ponga una referencia, yo entiendo a &L como puntero a un String Unicode XD.

como bien dices lo de la derecha pertenece al comentario de esa linea(modificado por mi). Pero como le comento al compañero. De nada me sirve modificarlo en la memoria. Si cuando abra de nuevo el programa, pega el serial en otro lugar de la memoria....

Ando dentro de un rompecabezas, nunca mejor dicho jejejeje










Descubri algo nuevo. En la llamada que muestro en pantalla. Es justo donde mete en memoria el numero de serie que quiero modificar al hacer dicha llamada...




y mas concretamente dentro de esa llamada y luego en esta:







SOLUCIONADO. Me salto la verificacion del serial number del cable y programa operativo. Listo!!!   ;D
#5
Cita de: s0n1k en 21 Agosto 2019, 18:49 PM
Parece que es un puntero(puente), lee los 4 bytes en Hexadecimal y navega hacia el.

Gracias compañero. Pero me quedo igual... no encuentro el serial por ningun sitio.
#6
Cita de: s0n1k en 21 Agosto 2019, 12:41 PM
Abajo donde pone "DUMP 1" dale "ctrl+g" y pon la dirección "4C2124"
seguido doble clic encima y lo modificas en ASCII

muchas gracias por contestar compañero.

Si te fijas en la imagen que pongo ahora. Busco la direccion en la dump pero nada que ver tiene a la numeracion A1C7CE59...  :-\

#7
Ingeniería Inversa / Modificar cadena en x32dbg
21 Agosto 2019, 09:56 AM
Buenas de nuevo compañeros.

Quiero modificar un numero de serie en en varias direccion con x32dbg. En el cpu me lo modifica(valor de arriba: AH2P83) pero si me quedo encima de la linea me deja el valor antiguo(A1C7Ce59). ¿de que manera puedo modificarlo?? dumpeando??

toda ayuda es muy agradecida.



saludos!!!
#8
Cita de: MCKSys Argentina en 11 Agosto 2019, 08:26 AM
El primer resultado que me sale al usar el buscador del foro: https://foro.elhacker.net/ingenieria_inversa/guardar_cambios_del_exe_con_olly-t352495.0.html

Saludos!
Vale, ya esta. Me faltaba pasar el DUMP al CPU y modificarlo alli. Asi ya me deja generar el nuevo .exe.

gracias compañeros!!!
#9
Ingeniería Inversa / Parcehar DUMP en Ollydbg.
11 Agosto 2019, 07:14 AM
Buenas compañeros.

Tengo una duda facil.

Como se genera el .exe cuando se modifica el dump por ti mismo en olly??

En x32dbg es facil. Modificas el dump, aplicas los parches y te genera el .exe.

Pero en olly no veo la forma..

Gracias!!!
#10
Cita de: MCKSys Argentina en  7 Agosto 2019, 21:32 PM
Hola!

La version leakeada de IDA (la ultima fue la 7.2, si mal no recuerdo) incluye el decompilador Hexrays, el cual te permite obtener un source que se asemeja mucho al original.

Busca la version por la red.

Saludos!

Lo baje con dicho plugin (gracias) pero se hace mucho mas "complicado" que olly.... nada que ver al VB decompiler que es muy intuitivo... no habia visto c++ hasta ahora...




Cita de: tincopasan en  7 Agosto 2019, 21:57 PM
¿cómo purebo que funciona?
pide:el fabricante de la moto,fabricante de la ECU,Serie MCU
además datos de un archivo

Edito: eso lo pide el programa, no la licencia.
Quiero ver si tiene limitaciones.

buenas compañero. es un programa para hacer coreccion de checksum a los archivos que se modifican para volver a reprogramarlos en la ecu. necesitaria un .bin de una de las ecus a las que hace soporte dicho programa.

MOD: No hagas doble post. Usa el boton modificar. (3era advertencia!)

Al final con nuestro amigo olly lo consegui  ;)