В данный момент я изучаю кибербезопасность, и мы узнали, как создавать стеки из фрагмента кода сборки. Но из-за отсутствия примеров я не уверен в своей идее сделать это.
Вопрос:
Предположим, что пустой стек и что регистр rax
изначально равен 1, все остальные 0. Нарисуйте макет стека после завершения следующего кода и отметьте, куда указывает rsp
. Примечание: стек растет сверху вниз.
push rax
inc rax
push rax
lea r11, [rip]
push r11
pop rcx
xor rcx, rcx
push rcx
mov rdx, 0xffff0000
push dx
pop r10w
push r10
add rax, 40
push rax
Я знаю, как работают pop
, push
, inc
и т. Д. (Кроме lea
Я не уверен в этом).
Я получил следующий результат для стека:
2
0x00 (or 0 not so sure About this)
0x00
0x00
0x00
42
и rsp
у входа с 42.
Я оглянулся, но не нашел ни одного примера, похожего на мое упражнение. Я надеюсь, что кто-то может сказать мне, где я допустил ошибку, если я ее сделал, потому что для меня это выглядит неправильно.