【发布时间】:2013-12-28 21:28:01
【问题描述】:
public main
main proc near
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
上面的代码代表了我正在进行的一个大型项目的一部分。我正在尝试将此代码反转为 C 等效项,但我很难理解 malloc 的工作原理。
我认为 8 个字节将是分配的内存大小;但是,我不确定这条线。
mov eax, [esp+2ch]
malloc 对 eax 做了什么?
此外,这是否是等效的 C 代码?
int main(void)
{
int *ptr1;
ptr1 = (int *)malloc(sizeof(8));
*ptr1 = 4;
__start(*ptr1);
【问题讨论】:
标签: c assembly x86 reverse-engineering