-
-
[旧帖]
[求助]奇怪的现象!
0.00雪花
-
发表于:
2008-2-14 17:05
3627
-
请看如下驱动中的代码
_asm {
...
mov eax ,ZwCreateFile;
...
}
编译后用IDA反汇编分析如下:
mov eax, ds:ZwCreateFile(x,x,x,x,x,x,x,x,x,x,x)
该语句执行后EAX = ZwCreateFile的地址。这也是很多高手的文章中可看到的。
而普通应用程序中如下代码:
_asm{
...
mov eax,printf
...
}
反汇编变成如下:
00401095 mov eax,[printf (004010d0)]
该语句执行后EAX = 83EC8B55,即printf函数代码的前4个字节
我的疑问是为何同样的代码用法,为何编译后得到的结果不同???前者为函数地址,后者为函数代码前4字节
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!