elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
25 Mayo 2012, 15:34  


Tema destacado: [AIO elhacker.NET] Compilación herramientas análisis y desinfección malware

+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Bugs y Exploits (Moderador: berz3k)
| | |-+  Problemas con el GDB !!!!
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problemas con el GDB !!!!  (Leído 734 veces)
al3

Desconectado Desconectado

Mensajes: 105


Ver Perfil
Problemas con el GDB !!!!
« en: 2 Junio 2005, 01:30 »

Hola tengo un problema cuando quiero debugear un programa con GDB.
hago lo siguiente:
Código:
int main(){
 fork();
 return 0;}
#gcc -o fork fork.c
#gdb fork
(gdb) disassemble main
hasta aca todo bien..

(gdb) disassemble fork
No symbol "fork" in current context.
aca todo mal :(

¿ que puede ser ?

cuando inicio el gdb me aparece esto ( ademas del copyright y todo lo que suele aparece ):
There is absolutely no warranty for GDB. Type "show warranty" for datails.
This GDB was configured as "i586-mandrake-linux-gnu"...Using host libthread_db library "/lib/tls/libthread_db.so.1"

Puede ser eso ???? lo cual no se que es.. :(
Este post tambien esta en Bugs/Exploit porque vi que ahi tambien se utilizaba el gdb.
Grax
En línea
al3

Desconectado Desconectado

Mensajes: 105


Ver Perfil
Re: Problemas con el GDB !!!!
« Respuesta #1 en: 2 Junio 2005, 01:48 »

voy a mostrar un poco mas detallado.
//main.c
#include <uinistd.h>
int funcion(int a, int b){
 return a+b;
}

int main(void){
  funcion(2,3);
  fork();
}
#gcc -o main main.c
#gdb main
(gdb) disassemble main
bla bla bla            push %ebp..
bla bla bla
etc etc etc 
....
...
                           call  0x804836c <funcion>
                           add $0x8, %esp
                           call 0x80482a0 <_init+40>

Bueno ahi esta el tema en donde dice <_init+40> ¿ no tuviese que aparecer <fork> ??? como por ej. en <funcion> ???
el tema es que no tengo otro lugar para donde probar..
si me responderian eso me facilitarian mucho las cosas
grax.















En línea
Crack_X
Anti-War
Ex-Staff
*
Desconectado Desconectado

Mensajes: 2.320


Peace & Love


Ver Perfil WWW
Re: Problemas con el GDB !!!!
« Respuesta #2 en: 2 Junio 2005, 01:55 »

Probablemente no se llame fork() cuando lo abres en gdb , seguro tiene algun otro nombre como _fork o otra cosa. Intenta abrirlo con el objdump haber si te aparece el nombre de la funcion fork(). Si estuviese en linux ahora mismo te ayudaria un poco mas pero estoy ocupado ahora  :-\
En línea

Shit loads of money spend to show us wrong from right. Say no to war


Yasser Has Things To Say
WarZone
al3

Desconectado Desconectado

Mensajes: 105


Ver Perfil
Re: Problemas con el GDB !!!!
« Respuesta #3 en: 2 Junio 2005, 17:00 »

Este es el codigo.
#include <stdio.h>
#include <unistd.h>
int main(void){
 fork();
}
#gcc -o fork1 fork1.c
#objdump -d fork1 > dump_fork1.txt
#cat < dump_fork1 | less
(aparece esto)

fork1:     file format elf32-i386

Disassembly of section .init:

08048278 <_init>:
 8048278:   55                      push   %ebp
 8048279:   89 e5                   mov    %esp,%ebp
 804827b:   83 ec 08                sub    $0x8,%esp
 804827e:   e8 61 00 00 00          call   80482e4 <call_gmon_start>
 8048283:   e8 b8 00 00 00          call   8048340 <frame_dummy>
 8048288:   e8 93 01 00 00          call   8048420 <__do_global_ctors_aux>
 804828d:   c9                      leave 
 804828e:   c3                      ret   
Disassembly of section .plt:

08048290 <.plt>:
 8048290:   ff 35 58 95 04 08       pushl  0x8049558
 8048296:   ff 25 5c 95 04 08       jmp    *0x804955c
 804829c:   00 00                   add    %al,(%eax)
 804829e:   00 00                   add    %al,(%eax)
 80482a0:   ff 25 60 95 04 08       jmp    *0x8049560
 80482a6:   68 00 00 00 00          push   $0x0
 80482ab:   e9 e0 ff ff ff          jmp    8048290 <_init+0x18>
 80482b0:   ff 25 64 95 04 08       jmp    *0x8049564
 80482b6:   68 08 00 00 00          push   $0x8
 80482bb:   e9 d0 ff ff ff          jmp    8048290 <_init+0x18>
Disassembly of section .text:

080482c0 <_start>:
 80482c0:   31 ed                   xor    %ebp,%ebp
 80482c2:   5e                      pop    %esi
 80482c3:   89 e1                   mov    %esp,%ecx
 80482c5:   83 e4 f0                and    $0xfffffff0,%esp
 80482c8:   50                      push   %eax
 80482c9:   54                      push   %esp
 80482ca:   52                      push   %edx
 80482cb:   68 e0 83 04 08          push   $0x80483e0
 80482d0:   68 90 83 04 08          push   $0x8048390
 80482d5:   51                      push   %ecx
 80482d6:   56                      push   %esi
 80482d7:   68 6c 83 04 08          push   $0x804836c
 80482dc:   e8 cf ff ff ff          call   80482b0 <_init+0x38>
 80482e1:   f4                      hlt   
 80482e2:   90                      nop   
 80482e3:   90                      nop   

080482e4 <call_gmon_start>:
 80482e4:   55                      push   %ebp
 80482e5:   89 e5                   mov    %esp,%ebp
 80482e7:   53                      push   %ebx
 80482e8:   e8 00 00 00 00          call   80482ed <call_gmon_start+0x9>
 80482ed:   5b                      pop    %ebx
 80482ee:   81 c3 67 12 00 00       add    $0x1267,%ebx
 80482f4:   52                      push   %edx
 80482f5:   8b 83 14 00 00 00       mov    0x14(%ebx),%eax
 80482fb:   85 c0                   test   %eax,%eax
 80482fd:   74 02                   je     8048301 <call_gmon_start+0x1d>
 80482ff:   ff d0                   call   *%eax
 8048301:   58                      pop    %eax
 8048302:   5b                      pop    %ebx
 8048303:   c9                      leave 
 8048304:   c3                      ret   
 8048305:   90                      nop   
 8048306:   90                      nop   
 8048307:   90                      nop   
 8048308:   90                      nop   
 8048309:   90                      nop   
 804830a:   90                      nop   
 804830b:   90                      nop   
 804830c:   90                      nop   
 804830d:   90                      nop   
 804830e:   90                      nop   
 804830f:   90                      nop   

08048310 <__do_global_dtors_aux>:
 8048310:   55                      push   %ebp
 8048311:   89 e5                   mov    %esp,%ebp
 8048313:   50                      push   %eax
 8048314:   50                      push   %eax
 8048315:   80 3d 6c 95 04 08 00    cmpb   $0x0,0x804956c
 804831c:   74 0c                   je     804832a <__do_global_dtors_aux+0x1a>
 804831e:   eb 1c                   jmp    804833c <__do_global_dtors_aux+0x2c>
 8048320:   83 c0 04                add    $0x4,%eax
 8048323:   a3 74 94 04 08          mov    %eax,0x8049474
 8048328:   ff d2                   call   *%edx
 804832a:   a1 74 94 04 08          mov    0x8049474,%eax
 804832f:   8b 10                   mov    (%eax),%edx
 8048331:   85 d2                   test   %edx,%edx
 8048333:   75 eb                   jne    8048320 <__do_global_dtors_aux+0x10>
 8048335:   c6 05 6c 95 04 08 01    movb   $0x1,0x804956c
 804833c:   c9                      leave 
 804833d:   c3                      ret   
 804833e:   89 f6                   mov    %esi,%esi

08048340 <frame_dummy>:
 8048340:   55                      push   %ebp
 8048341:   89 e5                   mov    %esp,%ebp
 8048343:   51                      push   %ecx
 8048344:   51                      push   %ecx
 8048345:   8b 15 50 95 04 08       mov    0x8049550,%edx
 804834b:   85 d2                   test   %edx,%edx
 804834d:   74 19                   je     8048368 <frame_dummy+0x28>
 804834f:   b8 00 00 00 00          mov    $0x0,%eax
 8048354:   85 c0                   test   %eax,%eax
 8048356:   74 10                   je     8048368 <frame_dummy+0x28>
 8048358:   83 ec 0c                sub    $0xc,%esp
 804835b:   68 50 95 04 08          push   $0x8049550
 8048360:   e8 9b 7c fb f7          call   0 <_init-0x8048278>
 8048365:   83 c4 10                add    $0x10,%esp
 8048368:   c9                      leave 
 8048369:   c3                      ret   
 804836a:   90                      nop   
 804836b:   90                      nop   

0804836c <main>:
 804836c:   55                      push   %ebp
 804836d:   89 e5                   mov    %esp,%ebp
 804836f:   83 ec 08                sub    $0x8,%esp
 8048372:   83 e4 f0                and    $0xfffffff0,%esp
 8048375:   b8 00 00 00 00          mov    $0x0,%eax
 804837a:   83 c0 0f                add    $0xf,%eax
 804837d:   83 c0 0f                add    $0xf,%eax
 8048380:   c1 e8 04                shr    $0x4,%eax
 8048383:   c1 e0 04                shl    $0x4,%eax
 8048386:   29 c4                   sub    %eax,%esp
 8048388:   e8 13 ff ff ff          call   80482a0 <_init+0x28>
 804838d:   c9                      leave 
 804838e:   c3                      ret   
 804838f:   90                      nop   

08048390 <__libc_csu_init>:
 8048390:   55                      push   %ebp
 8048391:   89 e5                   mov    %esp,%ebp
 8048393:   57                      push   %edi
 8048394:   56                      push   %esi
 8048395:   53                      push   %ebx
 8048396:   83 ec 0c                sub    $0xc,%esp
 8048399:   e8 00 00 00 00          call   804839e <__libc_csu_init+0xe>
 804839e:   5b                      pop    %ebx
 804839f:   81 c3 b6 11 00 00       add    $0x11b6,%ebx
 80483a5:   e8 ce fe ff ff          call   8048278 <_init>
 80483aa:   8d 83 18 ff ff ff       lea    0xffffff18(%ebx),%eax
 80483b0:   8d 93 18 ff ff ff       lea    0xffffff18(%ebx),%edx
 80483b6:   89 45 f0                mov    %eax,0xfffffff0(%ebp)
 80483b9:   29 d0                   sub    %edx,%eax
 80483bb:   31 f6                   xor    %esi,%esi
 80483bd:   c1 f8 02                sar    $0x2,%eax
 80483c0:   39 c6                   cmp    %eax,%esi
 80483c2:   73 14                   jae    80483d8 <__libc_csu_init+0x48>
 80483c4:   89 d7                   mov    %edx,%edi
 80483c6:   ff 14 b2                call   *(%edx,%esi,4)
 80483c9:   8b 4d f0                mov    0xfffffff0(%ebp),%ecx
 80483cc:   29 f9                   sub    %edi,%ecx
 80483ce:   46                      inc    %esi
 80483cf:   c1 f9 02                sar    $0x2,%ecx
 80483d2:   89 fa                   mov    %edi,%edx
 80483d4:   39 ce                   cmp    %ecx,%esi
 80483d6:   72 ee                   jb     80483c6 <__libc_csu_init+0x36>
 80483d8:   83 c4 0c                add    $0xc,%esp
 80483db:   5b                      pop    %ebx
 80483dc:   5e                      pop    %esi
 80483dd:   5f                      pop    %edi
 80483de:   5d                      pop    %ebp
 80483df:   c3                      ret   

080483e0 <__libc_csu_fini>:
 80483e0:   55                      push   %ebp
 80483e1:   89 e5                   mov    %esp,%ebp
 80483e3:   57                      push   %edi
 80483e4:   56                      push   %esi
 80483e5:   53                      push   %ebx
 80483e6:   e8 00 00 00 00          call   80483eb <__libc_csu_fini+0xb>
 80483eb:   5b                      pop    %ebx
 80483ec:   81 c3 69 11 00 00       add    $0x1169,%ebx
 80483f2:   83 ec 0c                sub    $0xc,%esp
 80483f5:   8d b3 18 ff ff ff       lea    0xffffff18(%ebx),%esi
 80483fb:   8d bb 18 ff ff ff       lea    0xffffff18(%ebx),%edi
 8048401:   29 fe                   sub    %edi,%esi
 8048403:   c1 fe 02                sar    $0x2,%esi
 8048406:   eb 03                   jmp    804840b <__libc_csu_fini+0x2b>
 8048408:   ff 14 b7                call   *(%edi,%esi,4)
 804840b:   4e                      dec    %esi
 804840c:   83 fe ff                cmp    $0xffffffff,%esi
 804840f:   75 f7                   jne    8048408 <__libc_csu_fini+0x28>
 8048411:   e8 2e 00 00 00          call   8048444 <_fini>
 8048416:   83 c4 0c                add    $0xc,%esp
 8048419:   5b                      pop    %ebx
 804841a:   5e                      pop    %esi
 804841b:   5f                      pop    %edi
 804841c:   5d                      pop    %ebp
 804841d:   c3                      ret   
 804841e:   90                      nop   
 804841f:   90                      nop   

08048420 <__do_global_ctors_aux>:
 8048420:   55                      push   %ebp
 8048421:   89 e5                   mov    %esp,%ebp
 8048423:   53                      push   %ebx
 8048424:   52                      push   %edx
 8048425:   bb 40 95 04 08          mov    $0x8049540,%ebx
 804842a:   a1 40 95 04 08          mov    0x8049540,%eax
 804842f:   eb 07                   jmp    8048438 <__do_global_ctors_aux+0x18>
 8048431:   83 eb 04                sub    $0x4,%ebx
 8048434:   ff d0                   call   *%eax
 8048436:   8b 03                   mov    (%ebx),%eax
 8048438:   83 f8 ff                cmp    $0xffffffff,%eax
 804843b:   75 f4                   jne    8048431 <__do_global_ctors_aux+0x11>
 804843d:   58                      pop    %eax
 804843e:   5b                      pop    %ebx
 804843f:   5d                      pop    %ebp
 8048440:   c3                      ret   
 8048441:   90                      nop   
 8048442:   90                      nop   
 8048443:   90                      nop   
Disassembly of section .fini:

08048444 <_fini>:
 8048444:   55                      push   %ebp
 8048445:   89 e5                   mov    %esp,%ebp
 8048447:   53                      push   %ebx
 8048448:   e8 00 00 00 00          call   804844d <_fini+0x9>
 804844d:   5b                      pop    %ebx
 804844e:   81 c3 07 11 00 00       add    $0x1107,%ebx
 8048454:   50                      push   %eax
 8048455:   e8 b6 fe ff ff          call   8048310 <__do_global_dtors_aux>
 804845a:   59                      pop    %ecx
 804845b:   5b                      pop    %ebx
 804845c:   c9                      leave 
 804845d:   c3                      ret   

¿cual es el fork?



En línea
Kalisto

Desconectado Desconectado

Mensajes: 89


escucho voces... pero ninguna palabra.


Ver Perfil
Re: Problemas con el GDB !!!!
« Respuesta #4 en: 3 Junio 2005, 16:01 »

compilalo con gcc -g -static fork.c -o fork
(gdb) disas main
Dump of assembler code for function main:
0x0804821f <main+0>:    push   %ebp
0x08048220 <main+1>:    mov    %esp,%ebp
0x08048222 <main+3>:    sub    $0x8,%esp
0x08048225 <main+6>:    and    $0xfffffff0,%esp
0x08048228 <main+9>:    mov    $0x0,%eax
0x0804822d <main+14>:   sub    %eax,%esp
0x0804822f <main+16>:   movl   $0x3,0x4(%esp)
0x08048237 <main+24>:   movl   $0x2,(%esp)
0x0804823e <main+31>:   call   0x8048214 <funcion>
0x08048243 <main+36>:   call   0x804def0 <fork>
0x08048248 <main+41>:   leave 
0x08048249 <main+42>:   ret   
End of assembler dump.
(gdb) disas fork
Dump of assembler code for function fork:
0x0804def0 <fork+0>:    push   %ebp
0x0804def1 <fork+1>:    mov    $0x0,%eax
0x0804def6 <fork+6>:    mov    %esp,%ebp
0x0804def8 <fork+8>:    sub    $0x8,%esp
0x0804defb <fork+11>:   test   %eax,%eax
0x0804defd <fork+13>:   mov    %ebx,0xfffffffc(%ebp)
0x0804df00 <fork+16>:   je     0x804df15 <fork+37>
0x0804df02 <fork+18>:   movl   $0x80ab920,(%esp)
0x0804df09 <fork+25>:   call   0x0
0x0804df0e <fork+30>:   mov    0xfffffffc(%ebp),%ebx
0x0804df11 <fork+33>:   mov    %ebp,%esp
0x0804df13 <fork+35>:   pop    %ebp
0x0804df14 <fork+36>:   ret   
0x0804df15 <fork+37>:   mov    $0x2,%eax
0x0804df1a <fork+42>:   int    $0x80
0x0804df1c <fork+44>:   cmp    $0xfffff000,%eax
0x0804df21 <fork+49>:   mov    %eax,%ebx
0x0804df23 <fork+51>:   ja     0x804df29 <fork+57>
0x0804df25 <fork+53>:   mov    %ebx,%eax
0x0804df27 <fork+55>:   jmp    0x804df0e <fork+30>
0x0804df29 <fork+57>:   neg    %ebx
0x0804df2b <fork+59>:   call   0x8048a40 <__errno_location>
---Type <return> to continue, or q <return> to quit---
0x0804df30 <fork+64>:   mov    %ebx,(%eax)
0x0804df32 <fork+66>:   mov    $0xffffffff,%ebx
0x0804df37 <fork+71>:   jmp    0x804df25 <fork+53>
0x0804df39 <fork+73>:   nop   
0x0804df3a <fork+74>:   nop   
0x0804df3b <fork+75>:   nop   
End of assembler dump.
;)
En línea

"El general que sabe cuando atacar hace que su enemigo no sepa cuando defenderse."
al3

Desconectado Desconectado

Mensajes: 105


Ver Perfil
Re: Problemas con el GDB !!!!
« Respuesta #5 en: 4 Junio 2005, 01:41 »

Gracias por responder. pero ahora que veo = no esta saliendo lo que quiero.
mira esto:
Esto lo saque de un texto para hacer shellcodes...

Código:
opensocketasm2.c
----------------------------------------------------------------------------
#include<unistd.h>
#include<sys/socket.h>
#include<netinet/in.h>

int soc,cli;
struct sockaddr_in serv_addr;

int main()
{
  if(fork()==0)
  {
  serv_addr.sin_family=2;
  serv_addr.sin_addr.s_addr=0;
  serv_addr.sin_port=0x77;
  soc=socket(2,1,6);
  bind(soc,(struct sockaddr *)&serv_addr,0x10);
  listen(soc,1);
  cli=accept(soc,0,0);
  dup2(cli,0);
  dup2(cli,1);
  dup2(cli,2);
  execl("/bin/sh","sh",0);
  }
}

----------------------------------------------------------------------------

compilando y desensamblando
----------------------------------------------------------------------------
[ ohhara@ohhara ~ ] {1} $ gcc -o opensocketasm2 -static opensocketasm2.c
[ ohhara@ohhara ~ ] {2} $ gdb opensocketasm2
GNU gdb 4.17
Copyright 1998 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-redhat-linux"...
(gdb) disassemble fork
Dump of assembler code for function fork:
0x804ca90 <fork>:       movl   $0x2,%eax
0x804ca95 <fork+5>:     int    $0x80
0x804ca97 <fork+7>:     cmpl   $0xfffff001,%eax
0x804ca9c <fork+12>:    jae    0x804cdc0 <__syscall_error>
0x804caa2 <fork+18>:    ret   
0x804caa3 <fork+19>:    nop   
0x804caa4 <fork+20>:    nop   
0x804caa5 <fork+21>:    nop   
0x804caa6 <fork+22>:    nop   
0x804caa7 <fork+23>:    nop   
0x804caa8 <fork+24>:    nop   
0x804caa9 <fork+25>:    nop   
0x804caaa <fork+26>:    nop   
0x804caab <fork+27>:    nop   
0x804caac <fork+28>:    nop   
0x804caad <fork+29>:    nop   
0x804caae <fork+30>:    nop   
0x804caaf <fork+31>:    nop   
End of assembler dump.
(gdb) disassemble socket
Dump of assembler code for function socket:
0x804cda0 <socket>:     movl   %ebx,%edx   
0x804cda2 <socket+2>:   movl   $0x66,%eax 
0x804cda7 <socket+7>:   movl   $0x1,%ebx   
0x804cdac <socket+12>:  leal   0x4(%esp,1),%ecx
0x804cdb0 <socket+16>:  int    $0x80
0x804cdb2 <socket+18>:  movl   %edx,%ebx
0x804cdb4 <socket+20>:  cmpl   $0xffffff83,%eax
0x804cdb7 <socket+23>:  jae    0x804cdc0 <__syscall_error>
0x804cdbd <socket+29>:  ret   
0x804cdbe <socket+30>:  nop   
0x804cdbf <socket+31>:  nop   
End of assembler dump.


Ahora...
porque %&$"·$ le devolvio esto:

0x804ca90 <fork>:       movl   $0x2,%eax
0x804ca95 <fork+5>:     int    $0x80
0x804ca97 <fork+7>:     cmpl   $0xfffff001,%eax
0x804ca9c <fork+12>:    jae    0x804cdc0 <__syscall_error>
0x804caa2 <fork+18>:    ret   

¿?¿??¿¿?¿?
porques eso es lo que arma en la shellcode... yo pude desensamblar el fork pero con otra forma.. le ponia un breakpoint al fork y ahi entraba y me mostraba lo mismo que a vos..
pero no entiendo porque en este ejemplo. esta tan facill..
¿?¿?¿?¿?¿
otra cosa.. si compilo el programa de la forma en que me dijiste me aparece esto:
#gcc -g -static fork.c -o fork
/usr/bin/ld: cannot find -lc
collect2: ld returned 1 exit status



En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines