объявление пользовательской переменной dd, записывающей байт по указанному адресу
Обратите внимание, как gdb изменил тип приглашения (">
"), когда началось определение команды! Закончив писать, мы говорим "end" и новая команда добавляется в память gdb наряду со всеми остальными. Она принимает два аргумента $arg0 – адрес по которому писать и $arg1 – записываемый байт.
Теперь для восстановления байт в точке входа, достаточно дать следующую последовательность команд (внимание! если написать "dd $pc++ 0xB3", то после выполнения команды регистр $pc увеличится на единицу, что никак не входит в наши планы!):
(gdb)set $i = $pc
(gdb)dd $i++ 0xB3
(gdb)dd $i++ 0x2A