• XSS.stack #1 – первый литературный журнал от юзеров форума

[Assembler] Как передать аргумент в функцию?

cppjunior

ripper
КИДАЛА
Регистрация
25.05.2022
Сообщения
57
Реакции
3
Гарант сделки
2
Пожалуйста, обратите внимание, что пользователь заблокирован
Как в функцию Entry передать аргумент 9B524A87h в asm Visual Studio?
Код:
Entry PROC
    mov [rsp +8], rcx
    mov [rsp+16], rdx
    mov [rsp+24], r8
    mov [rsp+32], r9
    mov rcx, 9B524A87h
    push rcx
    sub rsp, 028h
    call Func1
    add rsp, 028h
    pop rcx
    push rax
    sub rsp, 028h
    call Func2
    add rsp, 028h
    pop r11
    mov rcx, [rsp+8]
    mov rdx, [rsp+16]
    mov r8, [rsp+24]
    mov r9, [rsp+32]
    mov r10, rcx
    jmp r11
Entry ENDP
Должно получится что то вроде этого:
Код:
Entry PROC
    mov [rsp +8], rcx         
    mov [rsp+16], rdx
    mov [rsp+24], r8
    mov [rsp+32], r9
    sub rsp, 28h     
    call Func1       
    mov r15, rax                                 
    call Func2             
    add rsp, 28h
    mov rcx, [rsp+8]                     
    mov rdx, [rsp+16]
    mov r8, [rsp+24]
    mov r9, [rsp+32]
    mov r10, rcx
    jmp r15
Entry ENDP

MyFunc PROC
    push 9B524A87h
    call Entry
    add rsp, 8
MyFunc ENDP
 
это 64 бита. тут fastcall, поэтому 1й аргумент передается через RCX

Код:
MyFunc PROC
    sub rsp,20h
    mov RCX, 9B524A87h
    call Entry
    add rsp,20h
MyFunc ENDP
|
 
Последнее редактирование:
Пожалуйста, обратите внимание, что пользователь заблокирован
Пожалуйста, обратите внимание, что пользователь заблокирован
The exact method for passing arguments will depend on the calling convention being used.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх