8.3.3 快速系统调用 —— XP SP3上SystemCallStub的奇怪问题
依书上的例子,ReadFile()函数会调用ntdll!NtReadFile(),后者将服务号放到eax之中,然后调用SharedUserData!SystemCallStub(),由此函数执行sysenter指令来切入内核。
但是实际操作查看反汇编却是这个样子:

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

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

反汇编此地址:

发现是名为ntdll!KiFastSystemCall()的函数,其内部正是执行了sysenter指令来切入内核。
可能由于实际操作的系统为XP SP3,而书中使用的系统为XP SP1,故有所偏差。
最后在网上搜索,找到了《软件调试》作者张银奎老师的本人回答:

疑问解决!
8.3.3 快速系统调用 —— XP SP3上SystemCallStub的奇怪问题的更多相关文章
- 一个XP SP3调用0地址蓝屏BUG
0x00 蓝屏的堆栈 在XP SP3上跑POC之后,一段时间之后会出现蓝屏,蓝屏的堆栈如下,可以看出是ACKData里面CALL了一个0指针导致的蓝屏 0x01 蓝屏原因 1 ETW(Event Tr ...
- Windows XP SP3中远程桌面实现多用户登陆
Windows XP SP3配置为支持多用户远程桌面连接,注意:此多用户远程桌面连接必须是不同的用户登录,不能像Windows server 2003那样,同一个用户可以同时登录,只能登陆2个不同用户 ...
- 用“U盘”重新安装(MSDN)原版Windows XP sp3操作系统(图文)
安装微软(MSDN)原版Windows XP sp3系统的方法不少,可以说是很多,但是我就用“U盘”安装.用“U盘”装XP系统也不是什么稀罕事,不会的,就按照下面我常用的“U盘”装原版Windows ...
- Windows XP SP3 Professional 微软(MSDN)官方原版系统
Windows XP SP3 Professional 微软(MSDN)官方原版系统 Windows XP(版本号:5.1,开发代号:Whistler)是微软公司推出供个人电脑使用的操作系统,其RTM ...
- 经典系统windows xp sp3官方原版下载(附XP序列号)
经典系统windows xp sp3官方原版下载(附XP序列号) 在过几日,微软最新的操作系统windows 7就将像外发售了!虽然Vista操作系统已经问世多年,但XP系统仍然占据着王位,在市 ...
- 官方原版Windows XP SP3(VOL)中文简体版ISO下载
今天,向各位朋友推荐今年五月,由MSDN官方集成的XP With SP3专业VOL版. 文 件:Windows XP Professional with Service Pack 3 (x86) ...
- 蜻蜓特派员 Windows XP SP3 纯净终结版
蜻蜓特派员Windows XP SP3 纯净安装版 终结版,系统纯净无广告.无插件,网卡等驱动和运行库齐全,安全更新补丁全网最新!微软停止了 Windows XP 的支持之后还是偶尔为 WinXP 提 ...
- Microsoft Windows XP SP3 官方原版镜像下载,绝对原版加系列号!
转:http://blog.sina.com.cn/s/blog_638c2e010100op5z.html 写在前面:1. VOL是Volume Licensing for Organization ...
- xp sp3安装.Net 4.0提示严重错误,0x80070643,解决办法2017版
客户电脑上要装金税开票软件,需要.net 4.0.30319.1,电脑环境是xp sp3,已经安装了.net 2, .net 3.5sp1,安装.net 4.0的时候提示错误0x80070643 因为 ...
随机推荐
- nyoj 999
nyoj 999: 点击打开题目链接 题目思路,处理一下地图,把 D E 能看到的地方标记一下.然后就是暴力广搜一下.标记状态,因为同样在同一个点,但是你刚出发到达那点和找到D之后到达相同的点和找到E ...
- 创建Android本地repo
/**************************************************************************** * 创建Android本地repo * 说明 ...
- python利用mongodb上传图片数据 : GridFS 与 bson两种方式
利用mongodb保存图片通常有两种方法,一种是将图片数据转化为二进制作为字典的键值对进行保存,另一种是利用mongodb提供的GridFS进行保存,两者各有利弊.性能方面的优劣未曾测试,无法进行评价 ...
- Visual Studio 中使用的正则表达式 说明
Visual Studio 中使用的正则表达式 说明 2013-10-11 21:10:12| 分类: VB和VBA知识|举报|字号 订阅 参考:详解Visual Studio正则替换大 ...
- iOS多线程 NSThread/GCD/NSOperationQueue
无论是GCD,NSOperationQueue或是NSThread, 都没有线程安全 在需要同步的时候需要使用NSLock或者它的子类进行加锁同步 "] UTF8String], DISPA ...
- 【旧文章搬运】ZwQuerySystemInformation枚举进线程信息
原文发表于百度空间,2008-10-15========================================================================== 很古老的东 ...
- Gradle系列之三 Gradle概述以及生命周期
1 Gradle是一种编程框架 gradle主要由以下三部分组成 1 groovy核心语法 2 build script block 3 gradle api 注:本章所有的代码都在 https:// ...
- hihoCoder搜索二·骑士问题
#include <stdio.h> #include <string.h> #include <math.h> #include <algorithm> ...
- Linux下下载百度网盘资料
因为百度网盘没有Linux下的客户端,所以无法直接下载网盘里的资料了.各路大神各显神通,提出了各种解决方法,这里只介绍两种. 1.BaiduPCS Github上有人通过Go语言写了一个Baidu网盘 ...
- Log2Net组件代码详解(附开源代码)
上一篇,我们介绍了Log2Net的需求和整体框架,我们接下来介绍我们是如何用代码实现Log2Net组件的功能的. 一.整体介绍 Log2Net组件本身是一个Dll,供其他系统调用. 本部分由以下几部分 ...