perdido en el exe S.O.S.

Iniciado por fumioli, 30 Noviembre 2012, 19:37 PM

0 Miembros y 1 Visitante están viendo este tema.

fumioli

He comenzado a modificar un exe y aunque al principio tuve buenos resultados y las modificaciones fueron funcionando ahora he llegado a un punto que el exe me escupe despectivamente al escritorio y no encuentro donde está el puñetero error. Es un exe extenso con multitud de call. jmp y demás instrucciones (como casi todos ja,ja) y lo que pido más que otra cosa es qué estrategias puedo utilizar para ir aproximandome al error, no soy muy experto, he leido el manual de narvaja y de cracking desde cero de esta  página, pero ahora mismo estoy perdido y no se para donde tirar para encontrar el camino en la jungla de instrucciones de ensamblador. Solicito alguna orientación o información sobre las posibles maneras de localizar el fallo y  encontrar el camino de salida del laberinto.
Utilzo Ollydbg 1

Gracias.

apuromafo CLS

digamos que estamos en la jungla de los permisos, sistemas operativos y sobre todo en calls jmp y otros pero lo mas importante prevalece


1)saber el ejecutable con que esta hecho : es un exe, es un driver, es un archivo de sistema etc

2) saber que apis usar en caso de necesitarlas

3) saber que depurador elegir en el instante de analizar

4) en caso que sea posiblemente crear un mapa, ir localizando form, y otros elementos

5) en caso de pillar una zona importante, marcarla en bomark, algun notepad u otro medio

6) entender las instrucciones y no solo quedarse con call (llamada con retorno que lo guarda en stack), jmp llamada permantente hacia un lado,

7) nunca dejar de leer para ver si se te iluminan las ideas, aun el camino mas largo se dio con el primer paso


8) comenta tus avances, solo veo que entraste pusiste bp y run...algo asi entendi

por otro lado yo hubiera visto algo asi:

esta empacado?
es un .exe,driver , .net, un archivo portable
luego depurar con la herramienta que mas sea recomendable para esos casos


eso..espero des un paso importante, cuando ya sepas ordenar la informacion ya sea por la busqueda de string, por la busqueda de ciertos recursos, por encontrar el entrypoint o variables necesarias

a lo menos, si es muy grande (GB en memoria) puedes intentar hacer mas facil colocando bp entre call r32 o call eax, entre otros...

fumioli

Intentaré aportar los  datos:

1º es un exe creado con Visual C++
2ºLas llamadas a las Apis vienen indicadas en el desemsamblado que utiliza el olly
3ºUtilizo ollydbg 1.0 pero cuando se produce el fallo se queda en blanco, esperaba que configurandolo just-in-time me indicara en que momento se producìa el fallo pero igualmente se queda en blanco
4ºEste punto no lo entiendo, no se como crear el mapa ni a que te refieres con el form, lo siento, si no es mucho pedir aclarámelo
5ºAqui utilzo la opción añadir comentarios del olly para indicar puntos calientes
6ªHago lo que puedo para entender las instrucciones pero no siempre es fácil
7ºSigo leyendo, pensando alternativas, preguntando, buscando herramientas 
8ªEl exe en cuestión es de un antigüo simulador de carreras de motos, trato de añadirle más circuitos  para actualizarlo, y aunque he conseguido que se visualize la lista con todos los circuitos en pantalla y sea posible su selección en los menus del juego cuando se tienen que  cargar los datos se inicia la carga pero de pronto algo falla me salta al escritorio, para añadir los nuevos circuitos he tenido que desviar un par de veces el flujo del programa a cuevas de código porque no me cabían en el mismo sitio donde estaban los antiguos circuitos.
9º Está desempacado con UPX
10ªlo de colocar bp entre call r32 y call eax tampoco lo entiendo, una pequeña aclaración vendría bien

En cualquier caso gracias por los consejos.

fumioli



Adjunto pantallazo con el error del olly por si ayuda




apuromafo CLS

ese es un error que se puede pasar con shift +f7  entre otro, puedes agregarlas a las excepciones

si es un sistema intenta acceder a un lugar que no tiene permisos, o bien algun antivirus le bloquea el acceso,pues obviamente dara ese tipo de errores, que debe terminar en un SEH

por otro lado te sugiero conocer ollydbg2, que suele ser un poco mas entretenido con el tiempo

si fuera por ordenarte, mira, Abre un IDA, coloca cargar flirt (y colocas la signatura del C++), luego le das export el map, luego abres en ollydbg e importas ese map(plugin de godup permite ello en Olly 1) y luego revisas mas o menos...


saludos Apuromafo

pd:hay un curso de ricardo enfocado a c++, podrias leerlo, puede ser util tb

fumioli

si fuera por ordenarte, mira, Abre un IDA, coloca cargar flirt (y colocas la signatura del C++), luego le das export el map, luego abres en ollydbg e importas ese map(plugin de godup permite ello en Olly 1) y luego revisas mas o menos...

Perdona pero no he entendido nada de esta frase, Abre un IDA? puede ser abrir el ejecutable con el programa IDA,  cargar flirt debe ser una opción del programa IDA, colocar la signatura del C++ será marcar la opción de C++... dime si van por ahí los tiros.

apuromafo CLS

sip, van por ahi los tiros, el tema es la version, hay 2 tipos de versiones Pro(comprada) y Pro lekeada (hacked, modificado y todo el tema)

IDA es un programa comercial , no doy tanto detalle pues siempre asimilo que han leido el faq, han leido los escritos de ricardo y las teorías numeradas

;) hay que esperar mucho que explorar

ollydbg, e IDA no son los unicos recursos, hay tambien herramientas Como Process Explorar, Programas de estilo comercial(que han sido crackeados..a la larga)..y asi otros, la mejor forma de crackear dicen dominar el lenguaje y depurarlo, luego eres capaz inclusive de re-codificarlo