我正在查看的 C++ 程序似乎是用 MSVC 编译的。它链接到 MSVCR100.dll,包含 MSVC 的安全 cookie 代码并使用 Microsoft 重整方案。但是,我使用的其中一个函数在 EAX 寄存器中发送了它唯一的参数,该参数立即作为参数传递给LoadLibraryW(在 BP 帧初始化之后)。
看代码,有其他函数引用的序列和字符串(内联的证据),所以我认为这不是直接的汇编代码工作。
据我所知,根据我的消息来源,MSVC 没有通过 EAX 发送参数的调用约定。Watcom 和 Delphi 有选项,但没有 MSVC。编译器是否有可能将函数优化为寄存器调用?还是在 MSVC 中还有另一个未记录的调用约定?