GNU/Linux >> Znalost Linux >  >> Linux

Může GDB změnit kód sestavení běžícího programu?

Binární zápis můžete přímo do paměti, ale GDB nemá ve výchozím nastavení zabudovaný assembler, můžete však udělat něco jako set *(unsigned char*)0x80FFDDEE = 0x90 například změnit mnemotechnickou pomůcku na této adrese na NOP. Můžete však použít NASM k napsání kódu shellu a použít perl nebo python k jeho vložení do programu :)

Také by se vám mohl líbit tento malý soubor .gdbinit, který usnadní ladění:https://gist.github.com/985474


Doporučil bych jiný přístup:Stáhněte si balíček coreutils a upravte zdrojový kód pro ls . Pokud je to možné, měli byste získat balíček ze zdrojových úložišť vašeho distribuce a použít případné záplaty.


Linux
  1. Mohu použít GDB k ladění běžícího procesu?

  2. Jaký je ukončovací kód programu, když selžeasses()?

  3. Změňte výchozí příkaz find-grep v emacsu

  1. Které části tohoto kódu sestavení HelloWorld jsou nezbytné, pokud bych měl psát program v assembleru?

  2. Jak mohu změnit rozložení vstupní klávesnice v konzole?

  3. Lze mprotect() použít ke změně oprávnění .rodata?

  1. Jak změnit přesměrování výstupu běžícího procesu?

  2. Jak rozebrat binární spustitelný soubor v Linuxu, abyste získali kód sestavení?

  3. Může program zjistit, že je spuštěn pod sudo?