在DegToRad函数中,简单创建了一个Local_0x0004的局部变量来表示[esp + 4]。这种方式无法处理局部变量中使用结构体或者类的情况。换个角度看,数据在栈中的表示完成可以用一个结构体进行表示,这样可以避免编译器对局部变量进行重排,而不是从上到下的按顺序排列,同时还可以与后继结构体的分析共用代码。
说做就做,对这部分代码进行一些修改,在逆向代码里栈变量就变成了:
struct CStack_0x30001020
{
fnCallback113 Offset_0x0004;
}stack;
stack.Offset_0x0004 = param1;