Как вызвать функцию в Windows ASM - PullRequest
0 голосов
/ 10 октября 2018

как вызвать этот вызов, функция имеет параметры, я не знаю вызова,

00EC17E7    68 347BEC00     push Project2.00EC7B34                   ;                                                -----------------------------------------------
00EC17EC    E8 48FBFFFF     call Project2.00EC1339
00EC17F1    83C4 04         add esp,0x4                              ;esp是栈指针
00EC17F4    8BF4            mov esi,esp
00EC17F6    6A 04           push 0x4
00EC17F8    68 707BEC00     push Project2.00EC7B70                   ; 参数1:标题提示
00EC17FD    68 7C7BEC00     push Project2.00EC7B7C                   ; 参数2:是否
00EC1802    6A 00           push 0x0                                 ; 参数3:0
00EC1804    FF15 98B0EC00   call dword ptr ds:[<&USER32.MessageBoxA>>; 函数调用:USER32.MessageBoxA
00EC180A    3BF4            cmp esi,esp                              ; true
00EC180C    E8 1BF9FFFF     call Project2.00EC112C
00EC1811    68 347BEC00     push Project2.00EC7B34                   ; -----------------------------------------------

Как вызвать этот вызов функции

зачем показывать ошибку, спасибо мастеру.

mov esp,00FCFB54
add esp,0x4
mov esi,esp
push 0x4
push 0x00EC7B70
push 0x00EC7B7C
push 0x0
call 0xECB098
cmp esi,esp

1 Ответ

0 голосов
/ 10 октября 2018

зависит от процессора, который вы используете для функции вызывающего абонента, прежде чем вызывать другую функцию вызываемого абонента, вы можете сделать 2 вещи:

1 - скопировать параметры в стек, и вызываемый абонент получит его от оперативной памяти.(x86).

2 - передать эти параметры в сами регистры ЦП (64-битный x86)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...