一直到今天才找到滴水的逆向练习
arg_0= dword ptr 8
arg_4= dword ptr 0Ch
push ebp //保存当前执行函数栈栈底
mov ebp, esp //平栈,将当前函数栈顶赋给栈底,相当于开辟新空间执行下面的代码
push ebx
push edi //使用中的寄存器压栈,当前函数执行完之后需要将两个寄存器中原先的值弹回寄存器
mov eax, [ebp+arg_0]
mov edi, [ebp+arg_4]
mov [edi], eax
cpuid
mov [edi+4], eax
mov [edi+8], ebx
mov [edi+0Ch], ecx
mov [edi+10h], edx
pop edi
pop ebx //弹回原先寄存器
leave
retn 8
重点分析中间代码
mov eax, [ebp+arg_0]
mov edi, [ebp+arg_4] //只能分析出将栈空间中两个值存入寄存器,具体这两个值是什么未知
mov [edi], eax //将存入eax中的值存入edi中存的地址值,由此得出[ebp+arg_4]中存的是个指针变量
cpuid