-
-
[旧帖]
[求助]一个关于函数调用时传递参数的问题
0.00雪花
-
发表于:
2008-2-29 16:33
3418
-
[旧帖] [求助]一个关于函数调用时传递参数的问题
0.00雪花
07B2F3F1 8B4D 14 mov ecx, dword ptr [ebp+14]
07B2F3F4 51 push ecx
07B2F3F5 8B55 10 mov edx, dword ptr [ebp+10]
07B2F3F8 52 push edx
07B2F3F9 8B45 0C mov eax, dword ptr [ebp+C]
07B2F3FC 50 push eax
07B2F3FD 8B4D 08 mov ecx, dword ptr [ebp+8]
07B2F400 51 push ecx
07B2F401 8B4D FC mov ecx, dword ptr [ebp-4]; *
07B2F404 FF15 B8B6BA07 call dword ptr [<&WndSys.FUN>; fun函数调用
//WndSys.FUN函数的反汇编代码
10028C0D >/$ 55 push ebp
10028C0E |. 8BEC mov ebp, esp
10028C10 |. 51 push ecx ; 此处对ecx有疑问
10028C11 |. 894D FC mov dword ptr [ebp-4], ecx
10028C14 |. 837D 08 01 cmp dword ptr [ebp+8], 1
10028C18 |. 75 28 jnz short 10028C42
10028C1A |. 8B4D FC mov ecx, dword ptr [ebp-4]
10028C1D |. E8 4CFFFFFF call XButton::GetBitmap
......
疑问:正常在调用函数时是通过堆栈来传递参数的,但在这个调用中, fun函数中却用到了ecx来传递数值。请问什么形式的c++或者c代码能产生这样的反汇编代码,是不是源代码中加入了汇编代码,还是编译器对代码进行优化产生了这样的代码
谢谢帮助解答问题,本人初学!
[课程]Android-CTF解题方法汇总!