これは、x86 インライン アセンブリを使用した C++ [Intel 構文] です。
関数:
DWORD *Call ( size_t lArgs, ... ){
DWORD *_ret = new DWORD[lArgs];
__asm {
xor edx, edx
xor esi, esi
xor edi, edi
inc edx
start:
cmp edx, lArgs
je end
push eax
push edx
push esi
mov esi, 0x04
imul esi, edx
mov ecx, esi
add ecx, _ret
push ecx
call dword ptr[ebp+esi] //Doesn't return to the next instruction, returns to the caller of the parent function.
pop ecx
mov [ecx], eax
pop eax
pop edx
pop esi
inc edx
jmp start
end:
mov eax, _ret
ret
}
}
この関数の目的は、複数の関数/アドレスを個別に呼び出さずに呼び出すことです。
なぜデバッグしてもらうのですか?その日は学校を始めなければならず、夕方までに終わらせる必要があります。
どうもありがとう、iDomo