windows所有函数调用都要进入系统内核吗?
比如调用ntdll.dll中的DbgUiRemoteBreakin和DbgBreakPoint函数,通用它们会进入内核吗?...
比如调用ntdll.dll中的DbgUiRemoteBreakin和DbgBreakPoint函数,通用它们会进入内核吗?
展开
展开全部
必须进入内核的,windows的api调用,需要借助于内核栈。..一般来就是我们看到 sysenter指令,早期的windows是用的int 0x2e这个陷井指令进入内核。
windows的函数 叫做API 即appplication programing interface 应用程序接口。
windows的函数 叫做API 即appplication programing interface 应用程序接口。
更多追问追答
追问
你的意思是所有的windows函数调用都会进入内核?
追答
必须的啊,所有的操作系统都使用了封装思想啊,windows上的GUI界面就是explorer.exe主要是给电脑菜鸟的,控制界面就是cmd.exe那是主要给系统管理员的,API接口那是主要给程序员的。
每个api调用都进内核的,你用windbg调试会发现整个过程的,来这里,可以详细看一下这个过程,例子是分析 CreateFile函数如何从ring3到ring 0 的,以及如何理解api的http://tieba.baidu.com/p/2812935931
展开全部
你说的这两个函数那必须要进内核的,因为要使被调试进程挂起。
但大多WINAPI是不进内核的,WINAPI在内核的基础上多来一层的目的一是为了内核透明,二就是为了性能,老进内核性能消耗太大。
但大多WINAPI是不进内核的,WINAPI在内核的基础上多来一层的目的一是为了内核透明,二就是为了性能,老进内核性能消耗太大。
追问
首先,谢谢您的回答,不过还是有点不明白:
1.这两个函数进入内核的?进入内核后它们两是变成Nt头的还是怎么样的?
2.大多WINAPI是不进内核的,但是有什么方法知道一个函数调用进不进内核呢?
追答
没有去跟过这些函数,不知道内核里对应什么样的内容。WINAPI设计的初衷就是对程序员透明,所以要知道某个函数有没有进内核也许只能看官方的文档,当然,你也可以跟反汇编。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询