0x00
x86遍历堆栈(忽略FPO)的原理很简单,就不多说了,直接上代码。
__asm push ebx
__try {
PVOID addr = NULL;
__asm mov ebx,ebp
for (size_t i = 0; i < 15; i++)
{
addr = NULL;
__asm mov eax, [ebx + 4]
__asm mov dword ptr[addr], eax
__asm mov ebx, [ebx]
si.Stack[i] = addr;
if (!addr) {
break;
}
__asm mov dword ptr[addr], ebx
if (!addr) {
break;
}
}
}
__except (EXCEPTION_EXECUTE_HANDLER) {
}
__asm pop ebx