2012-12-20 16 views
14

Aşağıdaki basit kodu derledim ve gdb içinde çalıştırın. Ben ubuntu 12.04 AMD64 ve gcc 2.15 kullanıyorumstrcpy-sse2-unaligned.So bulunamadı

Breakpoint 1, main (argc=2, argv=0x7fffffffdd98) at ExploitMe.c:9 
9   strcpy(buffer, argv[1]); 
(gdb) s 
__strcpy_sse2_unaligned() at ../sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S:48 
48 ../sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S: No such file or directory. 

: Ben aşağıdaki hatayı alıyorum, s tuşuna basın kısa zamanda örnek abc için girişi için çalıştırmak gibi strcpy çizgisinde bir kırılma noktası ayarlayın ve . Herhangi bir fikir?


main(int argc, char *argv[]) { 

    char buffer[80]; 

    strcpy(buffer, argv[1]); 

    return 0; 
} 
+3

Bu bir hata değil - gdb 'strcpy' için kaynak dosyayı bulamıyor, ancak yine de demonte kodunu görüntüleyecektir. –

+0

evet, farkettim ama neden? ve herhangi bir fikir nasıl çözülür? – Afshin

+1

Neden bu aşağıya indirildi emin değilim ... – Mehrdad

cevap

13

O ayıklarken bu "hataları" görmezden tamamen zararsızdır.

Hata sadece GDB'nin strcpy işlevinin kaynağını aradığı içindir. Eğer benzer bir hata vermek olacak kaynağını yok libc Herhangi fonksiyon, örneğin: Her zaman GNU libc kaynağını indirip bağlayabilirsiniz

(gdb) s 
5  int *p = malloc(sizeof *p); 
(gdb) s 
__GI___libc_malloc (bytes=4) at malloc.c:2910 
2910 malloc.c: No such file or directory. 

Sonra

int *p = malloc(sizeof *p); 

... GDB ile: Sonra

git clone https://github.com/jeremie-koenig/glibc /opt/src/glibc 

...

(gdb) dir /opt/src/glibc/malloc 
(gdb) s 
5  int *p = malloc(sizeof *p); 
(gdb) s 
__GI___libc_malloc (bytes=4) at malloc.c:2910 
2910    } 
(gdb) s 
2915   } else if (!in_smallbin_range(size)) 

... malloc 'un kaynak kodunu adım atmanıza izin verecek. Özellikle kullanışlı değil, ama bazen kullanışlı olabilir.

+0

teşekkürler, çözüldü Benim sorunum;) – Afshin

+1

Sadece sistemde kullandığınız gibi SAME VERSION'u kopyaladığınızdan emin olun. En son, git klonundan aldığınız şey, belki de sisteminizde yüklü olan şey değildir (ve en iyi fikir de olmayabilir!) –

+1

Sadece hızlı bir hatırlatma olarak, gdb kullanıyorsanız n (sonraki) bu işlev çağrıları ile satırları atlamak. – Sum