Gdbserver
Podstawowe użycie dla aplikacji z we/wy na terminal:
# tty1
gdbserver :1337 ./mojebin
# tty2
gdb ./mojebin
> target extended-remote :1337
> continue
Aby móc ponownie uruchomić proces serwera z klienta
> target extended-remote :1337
# zamias
> target remote :1337
Wskazówki
Nagrywanie i Wykonanie Nagrania Wstecz z rr
rr record ./target arg1 arg2
rr replay #uruchamia gdb
w powłowe gdb
: reverse-next
, reverse-step
, etc.
Uruchomić plik wykonywalny z argumentami:
gdb --args ./bin argv1 argv2
Zatrzymaj się bezpośrednio przed main
w programach wiazanych z libc.so
break __libc_start_main_impl
Wykonuj wiele wstępnych poleceń. dzięki ogólnemu upośledzeniu umysłowemu autorów gdb --ex
, --exec
, etc. działają inaczej
gdb \
-ex "set environment LD_PRELOAD=./build/libtetradactyl-qt.so" \
-ex "dashboard threads -output /dev/null" \
./build/calc-demo/calculator
Uruchomić natychmiast, przekieując standardowe wejście do procesu podporządkowanego:
printf $'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\x93\x06@\x00\x00\x00\x00\x00flag.txt\x00 \x06@\x00\x00\x00\x00\x00' | gdb write4 -ex run