Dudas sobre excepciones en Olly.

Iniciado por N0mada, 7 Septiembre 2010, 23:14 PM

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

N0mada

Hola a todos,

en el post anterior estaba intentando crackear un programa y me pasa lo siguiente:

sin más que cargando el ejecutable "victima" en Olly y dándole a correr me tira una excepción 0EEDFADE
Se la paso al programa y aparentemente todo bien.
El caso que tras esa excepción si le doy a pausa me salta como módulo a ntdll.dll y no al ejecutable, además si le pongo un bp al programa no para y gracias a gastonp que me ha echado una mano sé que esa sí es la rutina a crackear y por tanto sí que se ejecuta ... vamos que no me hace caso al bp, ni a los cambios que le hago al código.

Alguna idea ?
Si no me he sabido explicar bien decídmelo y intentaré poner más detalle.

Gracias.

MCKSys Argentina

Hola!

Cuando salta una excepcion, Olly para en ntdll. Para ver codigo que manejara la excepcion, ve a View-SEH Chain y pon un BP en el primero de la lista.

Esa direccion se ejecutara cuando le pases la excepcion al proggie con CTRL+F9.

La funcion que dices, quizas no se este ejecutando, porque te esta detectando el debugger en el codigo que maneja la excepcion...  :)

Aunque puede ser por otra cosa....  ;D
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


N0mada

El problema es que cuando le paso la excepción al programa y aparnetemente todo sigue igual, si lo pauso , me salta a ntdll, si le pongo bps al código del programa, los ignora, y así no hay quien lo crackee  ;D

como te digo gastonp me dice que esa dirección es la de inicio de la rutina, a el no le da la excepción y si le pasa por ahi.
Yo le pongo el bp y el programa sigue como si nada...

He probado con el olly2 y me dice que la excepcion es no "resumeable".

No se como "volver" al programa para poder examinarlo.

MCKSys Argentina

Si el ejecutable esta corriendo, cuando le das "pause" va a parar en la NTDLL. Esto es porque esta es la DLL que le devuelve el control a Olly cuando estas depurando un programa.

Ahora, si los BPs no funcionan, podrias probar con HBPs. Si estos no andan, podrias probar con Memory BPs. De ultima, si estos tampoco funcionan, podrias poner BPs en APIs que esten cerca del codigo caliente y ahi si tracear desde las mismas hasta el codigo del EXE.

Ten en cuenta que si los BPs no estan funcionando, puede ser que el proggie te los este borrando, con lo que seguro sabe que lo estan depurando... ojo!

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


gastonp

Disculpa MCKSys, con respecto al problema que tiene N0mada con el bp me parece que el error es mio. El programa del que esta hablando pone la leyenda [demo] en la barra de título de la ventana, delante del nombre de la empresa. Ademas imprime la leyenda "Versión de demostración" en las facturas.
Pues bien, yo busque la cadena [demo] y modifique la rutina que me llevaba hasta ahí; con lo que dicha leyanda ya no aparece mas y al fijarme en la impresión de facturas tampoco aparece leyenda alguna.
Y aca esta el problema, se ve que yo no me explique bien y N0mada penso que poniendo un bp en esa rutina Olly paraba al querer imprimir las facturas, pero solo lo hace al cambiar el nombre de la empresa. Deduzco que el programa se fija si esta la palabra [demo] en el nombre de la empresa y de ser asi imprime la leyenda en las facturas.
Pido disculpas por las molestias ocasionadas, tanto a N0mada como a MCKSys.

MCKSys Argentina

Bueno, pero no es ninguna molestia, al contrario!!

Uno esta por estos lados para ayudar...   :)

Lo mejor de todo es que el problema ya esta identificado, por lo que la tarea ha tenido exito.  ;D

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


N0mada

Bueno yo más que molesto estoy muy agradecido a gastonp por las molestias y lo que me ha ayudado, y a todos los demás también que con cada cuestión al final se aprenden cosas nuevas aunque no tengan que ver con la duda original.

;-)