라이브러리 함수 디버깅 ?
글쓴이: storky / 작성시간: 일, 2013/03/24 - 2:44오후
$ gdb -q attackme (no debugging symbols found) Using host libthread_db library "/lib/libthread_db.so.1". (gdb) break main Breakpoint 1 at 0x80483be (gdb) run Starting program: /home/wargame/attackme Breakpoint 1, 0x080483be in main () (gdb) break exit Breakpoint 2 at 0x4004d8d6 (gdb) cont Continuing. Breakpoint 2, 0x4004d8d6 in exit () from /lib/libc.so.6
위 처럼 라이브러리 함수에 중지점을 설치하여 디버깅 하려면 어떻게 해야하나요?
아무리해도 저는 밑과 같이 되네요. 프로그램이 그대로 끝나버립니다.;
$ gdb -q vul (no debugging symbols found) Using host libthread_db library "/lib/libthread_db.so.1". (gdb) break main Breakpoint 1 at 0x8048382 (gdb) run aaaa Starting program: /home/wargame/vul aaaa (no debugging symbols found) (no debugging symbols found) Breakpoint 1, 0x08048382 in main () (gdb) break execve Breakpoint 2 at 0xb11abc (gdb) cont Continuing. Program exited with code 0260.
Forums:
혹시 라이브러리도 디버깅 가능(-g)하게 컴파일 되어
혹시 라이브러리도 디버깅 가능(-g)하게 컴파일 되어 있는지 확인하셨나요?
가능하면 소스 path도 같이 설정해 놓으면 편하게 디버깅이 가능하실듯 합니다. ^^;
답편..
GCC 컴파일러로 컴파일할때 -g 옵션을 줘서 컴파일하면 GDB 로 디버깅할때 추가정보를 제공합니다.
-g 옵션을 줘서 컴파일후 gdb 에는 -q 옵션을줘서 디버깅을 해보세요.
버퍼오버플로우 공부하시는것 같은데 안되면 제공된 소스코드로 다시 다른파일로 컴파일을 시도해보세요
댓글 달기