Tématické skupiny v rámci předmětu PB173 Tematicky zaměřený vývoj aplikací v jazyce C/C++

Téma 9: Ladění funkčnosti

Teoretická část

  • Ladění funkčnosti
    • Tracery strace, ltrace
    • Systémové volání ptrace
    • valgrind

Praktický úkol pro cvičení

  • Nástroje k ladění
  • Práce se systémovým voláním ptrace

Domácí úkol

  • Napište program, který bude mít:
    • Dva výpisy puts
    • A mezi nimi jednu int3 instrukci
  • Napište jednoduchý "debugger"
    • Za pomocí ptrace, fork a exec spusťte program shora
    • Počkejte si v rodiči na vykonání int3 instrukce
    • Změňte ji na nop (hexa 0x90, lze opakovat)
      • Ověřte pozici int3 (0xcc) pomocí ptrace a PEEKTEXT
      • Zapište nop pomocí ptrace a POKETEXT
    • Dekrementujte RIP, aby se instrukce nop opravdu vykonala
      • Můžete ověřit pomocí instrukce ret (0xc3)
    • Pokračujte s vykonáváním potomka