为什么汇编有参关键CALL而调用的时候不传参而不崩溃

2020-07-17 财经 88阅读
有可能这个call,是调用者来平衡堆栈的。
00465379 |. 51 PUSH ECX
0046537A |. E8 412D1400 CALL elementc.005A80C0;关键CALL
==》这里,有add esp,4
如果这样,那你直接调用call,它使用的是一个非法的参数,只是参数错误罢了。

push ecx ;//这句省略
call 005A80C0;
add esp,4//这句省略
这样,省略参数入栈和出栈,直接调用005A80C0,那得到的参数是错误的,但却不会崩溃,因为堆栈平衡,仅仅是使用了一个无效的错误参数罢了。
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com