Actually sub esp, 32 is only 3 bytes long, so undo some of the pop rax changes.
This commit is contained in:
parent
bfb164eb68
commit
85e3b0caef
|
@ -37,10 +37,7 @@ _start:
|
||||||
push 0 # arg5 = NULL
|
push 0 # arg5 = NULL
|
||||||
mov r9, rcx # arg4 = image_handle
|
mov r9, rcx # arg4 = image_handle
|
||||||
# arg1 = ImageHandle (already set)
|
# arg1 = ImageHandle (already set)
|
||||||
push rax # allocate shadow stack space for UEFI function
|
sub esp, 32 # allocate shadow stack space for UEFI function
|
||||||
push rax # allocate shadow stack space for UEFI function
|
|
||||||
push rax # allocate shadow stack space for UEFI function
|
|
||||||
push rax # allocate shadow stack space for UEFI function
|
|
||||||
call r14 # system->boot->open_protocol(image_handle, &guid, &image, image_handle, 0, EFI_OPEN_PROTOCOL_BY_HANDLE_PROTOCOL);
|
call r14 # system->boot->open_protocol(image_handle, &guid, &image, image_handle, 0, EFI_OPEN_PROTOCOL_BY_HANDLE_PROTOCOL);
|
||||||
mov rax, [rsp+64] # get image
|
mov rax, [rsp+64] # get image
|
||||||
|
|
||||||
|
@ -79,10 +76,7 @@ loop_options2: # Skip argv[1]
|
||||||
push 0 # arg5 = NULL
|
push 0 # arg5 = NULL
|
||||||
mov r9, r15 # arg4 = image_handle
|
mov r9, r15 # arg4 = image_handle
|
||||||
mov rcx, [rcx+24] # arg1 = root_device = image->device
|
mov rcx, [rcx+24] # arg1 = root_device = image->device
|
||||||
push rax # allocate shadow stack space for UEFI function
|
sub esp, 32 # allocate shadow stack space for UEFI function
|
||||||
push rax # allocate shadow stack space for UEFI function
|
|
||||||
push rax # allocate shadow stack space for UEFI function
|
|
||||||
push rax # allocate shadow stack space for UEFI function
|
|
||||||
call r14 # system->boot->open_protocol(root_device, &guid, &rootfs, image_handle, 0, EFI_OPEN_PROTOCOL_BY_HANDLE_PROTOCOL);
|
call r14 # system->boot->open_protocol(root_device, &guid, &rootfs, image_handle, 0, EFI_OPEN_PROTOCOL_BY_HANDLE_PROTOCOL);
|
||||||
mov rcx, [rsp+64] # get rootfs
|
mov rcx, [rsp+64] # get rootfs
|
||||||
|
|
||||||
|
@ -106,10 +100,7 @@ loop_options2: # Skip argv[1]
|
||||||
|
|
||||||
mov r8, r13 # arg3 = out
|
mov r8, r13 # arg3 = out
|
||||||
mov rcx, r14 # arg1 = rootdir
|
mov rcx, r14 # arg1 = rootdir
|
||||||
push rax # allocate shadow stack space for UEFI function
|
sub esp, 32 # allocate shadow stack space for UEFI function
|
||||||
push rax # allocate shadow stack space for UEFI function
|
|
||||||
push rax # allocate shadow stack space for UEFI function
|
|
||||||
push rax # allocate shadow stack space for UEFI function
|
|
||||||
call [rcx+8] # rootdir->open()
|
call [rcx+8] # rootdir->open()
|
||||||
mov r13, [rsp+40] # get fout
|
mov r13, [rsp+40] # get fout
|
||||||
|
|
||||||
|
@ -121,10 +112,7 @@ loop_options2: # Skip argv[1]
|
||||||
pop r9 # arg4 = EFI_FILE_MODE_READ
|
pop r9 # arg4 = EFI_FILE_MODE_READ
|
||||||
mov r8, r12 # arg3 = in
|
mov r8, r12 # arg3 = in
|
||||||
mov rcx, r14 # arg1 = rootdir
|
mov rcx, r14 # arg1 = rootdir
|
||||||
push rax # allocate shadow stack space for UEFI function
|
sub esp, 32 # allocate shadow stack space for UEFI function
|
||||||
push rax # allocate shadow stack space for UEFI function
|
|
||||||
push rax # allocate shadow stack space for UEFI function
|
|
||||||
push rax # allocate shadow stack space for UEFI function
|
|
||||||
call [rcx+8] # rootdir->open()
|
call [rcx+8] # rootdir->open()
|
||||||
mov r12, [rsp+40] # get fin
|
mov r12, [rsp+40] # get fin
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue