Погружение в технику и философию gdb

       

зацикливание программы в 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



Содержание раздела