зацикливание программы в hiew'e
Сохраняем изменения, запускам файл, определяет его pid, подключаем к процессу отладчик. На этот раз gdb хоть и ругается на неверный формат, но все-таки подключается к процессу, предоставляя нам полную свободу действий. Но прежде, чем начать трассировку, необходимо расциклить файл, вернув пару байт из точки входа на место.
Модификация памяти (регистров и переменных) осуществляется командой "set", в нашем случае вызываемой следующим образом:
./tiny-crackme
# запускаем зацикленный tiny-crackme и переходим на соседней консоли
# ps -a
PID TTY TIME CMD
13414 pts/7 00:00:03 tiny-crackme
13419 pts/5 00:00:00 ps
# gdb -q
(gdb) attach 13414
Attaching to process 13414
"/home/kpnc/gdb/tiny-crackme": not in executable format:
File format not recognized
# ^ gdb ругается на неверный формат файла,
# но все-таки аттачится к процессу
(gdb) set *(unsigned char*)$pc = 0xB3
(gdb) set *(unsigned char*)($pc+1) = 0x2A
# ^ восстановление оригинальных байт командой set