|
我刚开始学习逆向工程,请教个汇编转c语言的问题:
我有这样一个发生错误的函数:
====================================
push ebp
mov ebp,esp
push ecx
mov dword ptr[ebp-04], 00000000
......
......
mov eax,[ebp+08]
add eax,[ebp+0c]
mov ecx,[ebp-04]
mov [ecx],eax
xor eax,eax
pop ebp
ret 0008
====================================
错误发生在mov [ecx],eax一句,应该是要把两个参数的和赋值到一个未分配空间的指针中。但是,我不太明白ecx寄存器在这个函数中的作用,我记得ecx应该是一个临时指针,但是我怎么也还原不成C语言,还有ret 0008这条再汇编里应该是返回中断,但它在C里应该怎么表示,它跟直接ret有什么区别。 |
|