push
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
BITS 64
|
||||
DEFAULT REL
|
||||
|
||||
section .text
|
||||
|
||||
global setjmp
|
||||
global longjmp
|
||||
|
||||
setjmp:
|
||||
mov [rdi + 0x00], rbx
|
||||
mov [rdi + 0x08], rbp
|
||||
mov [rdi + 0x10], r12
|
||||
mov [rdi + 0x18], r13
|
||||
mov [rdi + 0x20], r14
|
||||
mov [rdi + 0x28], r15
|
||||
lea rax, [rsp + 8]
|
||||
mov [rdi + 0x30], rax
|
||||
mov rax, [rsp]
|
||||
mov [rdi + 0x38], rax
|
||||
xor eax, eax
|
||||
ret
|
||||
|
||||
longjmp:
|
||||
mov rbx, [rdi + 0x00]
|
||||
mov rbp, [rdi + 0x08]
|
||||
mov r12, [rdi + 0x10]
|
||||
mov r13, [rdi + 0x18]
|
||||
mov r14, [rdi + 0x20]
|
||||
mov r15, [rdi + 0x28]
|
||||
mov rsp, [rdi + 0x30]
|
||||
mov eax, esi
|
||||
test eax, eax
|
||||
jnz .done
|
||||
mov eax, 1
|
||||
.done:
|
||||
jmp qword [rdi + 0x38]
|
||||
|
||||
section .note.GNU-stack noalloc noexec nowrite progbits
|
||||
Reference in New Issue
Block a user