我怎么知道哪个Windows API版本被调用?

时间:2020-09-21 21:10:45

标签: windows winapi x86 reverse-engineering

如果要设置几个断点,如何知道程序是否在没有蛮力的情况下调用了A或W版本?

3 个答案:

答案 0 :(得分:2)

只需在两个版本上设置断点即可。

通过明确指定哪个版本,任何程序都可以同时使用ANSI和Wide版本。

答案 1 :(得分:1)

我创建一个简单的示例:

#include <Windows.h>

int main(int argc, const char* argv[])
{
    MessageBox(NULL, TEXT("test"), TEXT("test"), 0);
    return 0;
}

MessageBox处设置一个断点,然后在反汇编中进入MessageBox

如果您使用Multi-Byte Character Set,则可以看到:

enter image description here

当您使用Unicode Character Set时:

enter image description here

您可以通过反汇编轻松查看它调用了哪个函数。

答案 2 :(得分:0)

如果在输入断点之前将断点放置在给定的函数调用之外,那么当到达断点时,您可以进入该调用以查看实际跳至哪个函数。

如果在两个函数中都放置一个断点,则很容易看到哪个被调用。

相关问题