- 论坛徽章:
- 0
|
原帖由 hackisle 于 2009-8-19 23:46 发表 ![]()
感觉楼上说的有道理
。。可是如果是动态链接的话,这样在符号解析的过程中会出问题吗?
动态链接还是有一点差别的, 我感觉应该可以, 函数调用就是多加了一层跳转表吧~ 但是不是很确定.
原帖由 CUDev 于 2009-8-19 23:52 发表 ![]()
此言差矣。如果是fopen呢?在Kernel里调fopen(),fopen()底层又调用read()系统调用,又回到了Kernel。
就出现了“先有鸡还是先有蛋”的问题
你做了这样的假设, 那不等于已经认同kernel_code里面可以调C库了吗?
当然, 能不能调是一回事, 正确与否是另外一回事. 不正确并不代表不能.
再说, 内核里面为什么就不能调用系统调用了? 系统调用不就是通过软中断指令来实现的么, 进入系统调用后没有把这个软中断屏蔽掉的吧, 中断嵌套一下怎么不可以呢?
并且我好像记得内核里面使用系统调用还是合法的. 但是不记得如果系统调用嵌套, 内核栈是怎样被处理的了...
另外, 这个也根本不是什么“先有鸡还是先有蛋”的问题, 程序的执行是有源头的.
从系统启动, 到内核初始化, 再到用户进程被创建执行, 再到shell被执行, 再到这个攻击用的程序被执行, 再到这个程序以某种手断进入内核, 再到这个程序的代码在内核态下运行... 每一步都有确切的上一步的~
[ 本帖最后由 kouu 于 2009-8-20 10:28 编辑 ] |
|