Skip to content

Latest commit

 

History

History
30 lines (20 loc) · 1.55 KB

Debugging.md

File metadata and controls

30 lines (20 loc) · 1.55 KB

Narzędzia do debugowania w środowiskach Windows i Linux

Wykład dla KNI KERNEL (WFiS AGH) Kernel Logo

Linux

GDB

Debugger na którym opiera się wiele graficznych narzędzi. Np. Clion udostępnia konsolę GDB. Poza podstawowymi funkcjonalnościami (break, run, continue) pozwala na wyświetlenie asemblera (disass , layout asm).

Podstawowe komendy GDB

Ciekawy przykład użycia GDB do generowania shellcode

Strace

Umożliwia zobaczenie co dzieje się pomiędzy programem a kernelem Linuxa. Możemy zobaczyć wywołania systemowe (ang. syscalls) jakich użył program z argumentami i wartością zwracaną. Strace może selektywnie śledzić:

  • operacjie na plikach (open,write,stat,chmod,unlink)
  • procesy (fork, wait, exec)
  • sieć
  • sygnały (SIGSEGV,SIGINT,SIGTERM,SIGKILL)

Przykład: (src)

Możemy też sprawdzić z jakimi argumentami został wywołany program. Używając strace możemy zobaczyć co tak naprawdę oznacza gwiazdka – krótko mówiąc, zamieniła się w listę wszystkich plików w danym katalogu, a plik o nazwie –rf spowodował włączenie opcji recursive oraz force w rm.

Więcej tego typu rzeczy na "Unix wildcards gone wild"