我正在尝试对软件进行逆向工程,以按我的预期扩展其功能。所以我没有源代码。无论如何,我习惯于看到像下面这样开头的代码,并且我很清楚那里实际发生了什么。
push ebp
mov ebp,esp
sub esp,10h
但是当我看到下面这个样子时,我的担忧就来了
mov edi,dword ptr [0E9A474h];
imul eax,dword ptr [edi+5AF4h],70h;
cmp dword ptr [ebp+eax-35DCh],0h;
je some_location
并且函数的序言没有这样的指令
sub esp,10h
至少我可以知道函数用于局部变量存储的堆栈的大小。
额外的问题是:
- 就汇编语言而言,这是一个好的编程吗?
- 这个函数和另一个函数之间会不会在内存中发生冲突?
- 是否有可能知道这个函数在堆栈中的限制?无论是大小