0
Main
push ebp
mov ebp, esp
and esp, 0FFFFFFF0h
sub esp, 30h
mov dword ptr [esp], 8 ; size
call _malloc
mov [esp+2Ch], eax
mov dword ptr [esp+4], 4
mov eax, [esp+2Ch]
mov [esp], eax
call __start
__start
arg_0= dword ptr 8
arg_4= dword ptr 0Ch
push ebp
mov ebp, esp
mov eax, [ebp+arg_4]
mov edx, eax
sar edx, 1Fh
shr edx, 1Eh
add eax, edx
and eax, 3
sub eax, edx
mov [ebp+arg_4], eax
mov eax, [ebp+arg_4]
cmp eax, 1
jz short loc_80489F0
上面的代碼代表了我正在開發的項目的一部分,我需要將此程序集反向工程到相應的C代碼中。我相信我已經將main()放置在堆棧上,其中[esp]包含指向malloc的指針,[esp + 4]包含數字4.arg在ASM函數中包含什麼?
我在計算哪些arg包含,我假設arg_0包含4,但arg_4讓我拋棄。
arg_0和arg_4指的是什麼?
謝謝!