elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Hacking
| | |-+  Bugs y Exploits
| | | |-+  imposible depurar programa creado con dev c++ o visual c++ con ollydbg
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: imposible depurar programa creado con dev c++ o visual c++ con ollydbg  (Leído 7,074 veces)
black_flowers

Desconectado Desconectado

Mensajes: 65


Ver Perfil
imposible depurar programa creado con dev c++ o visual c++ con ollydbg
« en: 19 Marzo 2011, 01:11 am »

qué, tal cómo va? Una vez más tengo una duda con un codigo, en este caso estoy intentando seguir el ejemplo de rojodos para hacer un stack overflow. El programa en cuestión es el del ejemplo:
#include <stdio.h>
#include <string.h>

int main (int argc, char **argv)
{
   char buffer[64];
   if (argc < 2)
   {
      printf ("Introduzca un argumento al programa\n");
      return 0;
   }
   strcpy (buffer, argv[1]);
   return 0;
}

al ejecutarlo funciona tal y como era de esperar, y peta cuando se le pasan más de 64 a's como argumento.

Pero al depurarlo con olly meda un error que aparece reflejado en la pantalla de los registros. el error es FILE_NOT_FOUND y soy incapaz de encontrar cual es la funcion que produce el error ya que es increíble la de llamadas a funciones anidadas y sin anidar, a las que llama el programita. Y eso que sólo hace un if y un printf. Es imposible seguir el manual de rojodos ya que como he dicho el número de funciones llamadas es increíble.
Lo estoy complilando con dev c++ pero si lo compilo con visual c++ es todavía mayor el numero de subfunciones a las que se llaman.

Por qué este tan alto número de llamadas a funciones y apis? estoy utilizando windows7, y he comprobado que los únicos programas que se pueden seguir sin perderse son los creados con masm. Los creados con dev c++ y visual c++ son un auténtico laberinto.
En línea

Иōҳ


Desconectado Desconectado

Mensajes: 563


Ver Perfil
Re: imposible depurar programa creado con dev c++ o visual c++ con ollydbg
« Respuesta #1 en: 19 Marzo 2011, 02:29 am »

estricamente no es un laberinto, eso lo hace el compilador estructurar el codigo con saltos indirectos, llega a ese punto y mira que hay en cada salto uno de ellos es tu codigo, creo que es el salto @main, pero no debuggeo un programa vc++ ya hace buen tiempo.

Salu2!
En línea

Eres adicto a la Ing. Inversa? -> www.noxsoft.net
black_flowers

Desconectado Desconectado

Mensajes: 65


Ver Perfil
Re: imposible depurar programa creado con dev c++ o visual c++ con ollydbg
« Respuesta #2 en: 19 Marzo 2011, 11:12 am »

no, si lo que parece ser el main ya lo he encontrado, está en el segundo salto. Lo que pasa es que ahí no aparece ninguna orden reconocible, (el printf por ejemplo), aparece dentro de una función con un nivel de anidamiento cinco o seis, y antes de ella hay montones de llamadas con subllamadas anidadas, lo que me hace imposible debuguearlo, primero porque si lo hago con f8, no entra en las funciones y por lo tanto no veo como se llena la pila de a's y segundo porque con f7 creo que no me llega un día entero para hacerlo con f7. No se si algo va mal con mi compilador pero es así, parece un sueño dentro de otro sueño como en la película.

Por si fuera poco (aunque parece que se ejecuta sin problemas desde la linea de comandos) al depurarlo, me aparece un error (FILE NOT FOUND) en la ventana de registros. Como inteneté buscarlo pero imposible, está dentro de una llamada a una api del kernel32 y ahí no me deja poner breakpoints con lo cual tendría que ir manualmente con f7/f8 y es imposible ya lo he dejado porque despues de horas intentandolo encontraba que el error estaba siempre dentro de una subfunción.

En ningún tutorial he visto que haya este tipo de problemas a la hora de depurarlo, ni siquiera en las preguntas del foro, y me ha extrañado bastante. ¿será cosa del windows7(32)?
« Última modificación: 19 Marzo 2011, 11:16 am por black_flowers » En línea

Garfield07


Desconectado Desconectado

Mensajes: 1.121


¡Este año voy a por todas! JMJ 2011


Ver Perfil WWW
Re: imposible depurar programa creado con dev c++ o visual c++ con ollydbg
« Respuesta #3 en: 19 Marzo 2011, 16:19 pm »

Usa GDB (General Debugger). El Olly es un GDB con gráficos...
En línea



* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente.
* No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado.
* Si compila esta bien, si arranca es perfecto.

¡Wiki elhacker.net!
Un saludo
Иōҳ


Desconectado Desconectado

Mensajes: 563


Ver Perfil
Re: imposible depurar programa creado con dev c++ o visual c++ con ollydbg
« Respuesta #4 en: 19 Marzo 2011, 17:30 pm »

o ps claro que se ve!, en el main vas a haber una llamada hacia la funcion... y si la seguis encontraras alli la funcion por ejemplo printf... y claro en el mismo main es donde le dan los parametros a la pila.

y para llegar al main solo pongo un BP al iniciar la funcion y ya estas parado alli =/

Salu2!
En línea

Eres adicto a la Ing. Inversa? -> www.noxsoft.net
black_flowers

Desconectado Desconectado

Mensajes: 65


Ver Perfil
Re: imposible depurar programa creado con dev c++ o visual c++ con ollydbg
« Respuesta #5 en: 20 Marzo 2011, 01:47 am »

o ps claro que se ve!, en el main vas a haber una llamada hacia la funcion... y si la seguis encontraras alli la funcion por ejemplo printf... y claro en el mismo main es donde le dan los parametros a la pila.

y para llegar al main solo pongo un BP al iniciar la funcion y ya estas parado alli =/

Salu2!

he conseguido ver el overflow en la pila.

La función printf la he encontrado sumergiendome en varias llamadas a funciones pero el olly lanzaba un mensaje de FILE NOT FOUND antes de llegar al printf (por supuesto en este caso no metía a's a destajo para hacer overflow sino que no metía parámetros ninguno para que se ejecutara el printf). Poniendo como parámetro aaaa (caso en el que no hay overflow) tambien mostraba ese error (FILE NOT FOUND) al finalizar. Y en el caso del overlow tambien el mismo mensaje. Es algo que no he conseguido entender y que me ha despistado mucho.De todas formas no tiene importancia pues lo único importante es ver el overflow de la pila.

de todas formas sigo pensando lo mismo que al principio, es decir es imposible seguir este programa, no se como os aparecerá a vosotros pero el mio tiene INNUMERABLES calls, y cuando digo innumerables digo más de 20 seguros, y pueden ser muchos más.

Tengo que decir que noy newbie en esto de la programación a bajo nivel y que quizá esto sea lo normal. Pero es que no me imaginaba que un programa tan simple pudiese tener taaaanto código. Hay una diferencia enorme con respecto a los programas en assembly con masm en los cuales lo que pones es lo que aparece en olly.

Probaré ese otro depurador que me recomendais a ver que tal.

Un saludo.
« Última modificación: 20 Marzo 2011, 01:50 am por black_flowers » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
COMO CRACKEAR UM PROGRAMA EM VISUAL BASIC (COM OLLYDBG)
Ingeniería Inversa
nartmidias 3 14,303 Último mensaje 5 Julio 2007, 23:27 pm
por karmany
Programa para depurar sonido....
Multimedia
WildFroVII 2 6,814 Último mensaje 13 Marzo 2009, 17:48 pm
por chinosei
¿Programa como ollyDBG?
Ingeniería Inversa
tmb90 3 3,846 Último mensaje 23 Noviembre 2012, 17:44 pm
por Stakewinner00
Depurar con ollydbg para crackear archivo
Hacking
ronniwe 1 3,527 Último mensaje 18 Julio 2014, 07:33 am
por tincopasan
Enserio es imposible hallar punteros a un juego creado con Java
Ingeniería Inversa
Pirolox 1 2,869 Último mensaje 12 Marzo 2022, 01:52 am
por BloodSharp
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines