依书上的例子,ReadFile()函数会调用ntdll!NtReadFile(),后者将服务号放到eax之中,然后调用SharedUserData!SystemCallStub(),由此函数执行sysenter指令来切入内核。

但是实际操作查看反汇编却是这个样子:

指令完全是错乱的,猜测此处应该是不是指令,回看一下ntdll!NtReadFile()处的调用代码:

发现是将SharedUserData!SystemCallStub()处的地址写入edx寄存器,再通过edx间接寻址调用,所以推测该处数据应该为函数指针:

反汇编此地址:

发现是名为ntdll!KiFastSystemCall()的函数,其内部正是执行了sysenter指令来切入内核。

可能由于实际操作的系统为XP SP3,而书中使用的系统为XP SP1,故有所偏差。

最后在网上搜索,找到了《软件调试》作者张银奎老师的本人回答:

疑问解决!

最新文章

  1. css border属性做小三角标
  2. CentOS如何挂载硬盘
  3. linux操作系统的分类及解释
  4. WCF入门教程(三)属性标签
  5. 一段经典的node.js 数据库高并发实现
  6. SDN:软件定义网络
  7. S_OK与S_FALSE,E_FAIL
  8. python socket 编程之三:长连接、短连接以及心跳
  9. hibernate 单元测试 5.2
  10. 简述负载均衡&CDN技术(转)
  11. STL容器存储的内容动态分配情况下的内存管理
  12. 如何对软件开发工具 WebBuilder 进行安装?
  13. LogBack log出力路径
  14. 201521123122 《java程序设计》 第四周学习总结
  15. spring cloud 入门系列五:使用Feign 实现声明式服务调用
  16. 解决IntelliJ IDEA 创建Maven项目速度慢问题
  17. TensorFlow函数教程:tf.nn.dropout
  18. 解决Skyline6.5多球对比时,自动运行TerraExplorer软件的问题
  19. 【转】Python数据类型之“集合(Sets)与映射(Mapping)”
  20. MySQL索引失效的几种情况

热门文章

  1. (转)Vim自动补全神器:YouCompleteMe
  2. unity anim(转)
  3. RobotFramework:App滑动屏幕
  4. 【207】WinForm Chart类
  5. hdoj1150(最小点覆盖)
  6. UVA - 10564 Paths through the Hourglass
  7. Django学习:模板继承和配置静态文件
  8. 360安全中心:WannaCry勒索软件威胁形势分析
  9. LuoguP2055 [ZJOI2009]假期的宿舍【二分图最大匹配】By cellur925
  10. 第二类Stirling数初探 By cellur925