我在 Windows 7 机器上,我尝试在 IDA 中打开 kernel32.dll,IDA 说 IsDebuggerPresent 函数的地址是 0x77e2b020。我正在尝试使用内联汇编调用该函数。
在 vs2010 平台上,我尝试使用以下代码:-
#include<iostream>
using namespace std;
int blah() {
__asm {
xor eax, eax
mov ebx, 0x77e2b020
call ebx
}
}
int main() {
cout<<blah();
return 0;
}
在构建 exe 时,它显示 kernel32.dll 正在加载。
我尝试在 OllyDbg 中调试 exe,当“调用”指令执行时,错误是“访问冲突”。
是的,我知道直接从 C++ 调用 API 是最好/正确的方法,我这样做是为了好玩,我只是不明白为什么这不起作用。