Я работаю над двоичным упражнением Capture The Flag, первым в серии. У меня была идея записать код в стек и выполнить его. Чтобы проверить это, я запустил исполняемый файл со специальным вводом, чтобы он переходил к коду в стеке. Чтобы проверить это, я использовал gdb
, и это сработало!
Однако, когда я попытался запустить это за пределами gdb
, я получил страшную Segmentation Fault
. Я думаю это потому, что Ubuntu 16.04 не позволяет выполнять код в стеке, но я не уверен.
Если это так, почему я могу выполнить в gdb
?
Также я попытался использовать execstack -s
в бинарном упражнении, ничего не получалось, поэтому я начинаю подозревать, что у меня могут быть другие проблемы. Но, если у меня возникли другие проблемы, как я могу отладить эти проблемы, не прибегая к gdb
, при котором процесс работает отлично?