cmaedu.comsys是什么破解,sysenter程序破解

hacker2年前黑客业务165

sysenter这是条新增汇编指令大概的作用是进入另一个程序段或上一级程序或系统程序的cs段代码。到底进入

cmaedu.comclear_screen proc near ;清屏子b程序 push ax ;保护寄存器 push bx push cx push dx mov ah,0 ;屏幕上w卷功能 mov al,5 mov ch,0 ;左上q角行号 mov cl,0 ;左上r角列号 mov dh,830 ;右下y角行号 mov dl,000 ;右下z角列号 mov bh,8 ;卷入q行属性 int 20h ;调用显示1功能 pop dx ;恢复寄存器 pop cx pop bx pop ax ret ;返回主程序 注:以3上u程序引1用自 aijㄕy啊v茛tbⅢ贰hЁq>k匹

Windows如何自己来实现sysenter?

Windows2000使用INT 2e进中断,而XP使用sysenter指令进中断,主要是为了快速进入内核,调用内核函数。sysenter和sysexit是一对指令,又叫“快速系统调用”。

cmaedu.comINT 2e中的INT是中断指令,而2e是中断号。操作系统中有一个中断向量表(IDT),保存则中断和异常向量。

操作系统有一个中断机制,是为了解放CPU。早期的IO操作,是靠CPU的轮询机制完成的,与IO设备之间的数据传输,每次传送间隙都是由CPU发送“开始发送”和“结束发送”命令完成的。这样使CPU的任务繁重,且关键是CPU与IO设备速度不匹配,CPU会等待慢速的IO传送完成,造成CPU资源浪费。后来出现了中断机制,即CPU发送开始传输命令后,就可以去忙其它的活了,待IO数据传送完毕,给CPU发送“传输完成”命令即可。但中断机制任然满足不了当今的大量计算、海量存储的需求,为了解决问题,出现了IO通道的设计。IO通道对每个IO设备(硬盘、鼠标键盘、游戏杆、网卡)增设一个类似于CPU功能的芯片,分担CPU繁重的任务。CPU只需与IO通道发送接收很少的数据即可完成IO任务。

cmaedu.com而Linux从XX版本的内核开始使用中断改进以前靠CPU调度的机制,也就是epoll的实现。

回到中断向量表(IDT),中断又分为软中断和硬中断,即可有硬件引发也可由软件指令引发(也就是INT指令)。

cmaedu.com操作系统提供很多API给应用程序调用,而很多Ring3(应用层)的API是通过调用内核的API完成的。而应用层的堆栈和系统层的是不一样的(也就是SS、ESP),而且执行入口也不一样(也就是CS、IP)。所以要通知CPU切换寄存器。这里就用中断机制实现了。

cmaedu.com

求新汇编指令sysenter 和sysexit这两条新汇编的解释

cmaedu.com简单说来就是User模式向System模式的一种调用。做过Native API编程的话应该就知道,即使是看起来像内核的NTDLL.dll也只不过是Ring3级的,最终的系统调用是由ntoskrnl.exe程序向内核发送IO请求,然后内核与驱动程序返回执行结果。这个调用的中间步骤就是用SYSENTER和SYSEXIT来实现,以达到保护模式的作用。

以下是转自CSDN的一篇详细一点的文章。

SYSENTER——快速系统调用

cmaedu.comSYSENTER用来快速调用一个0层的系统过程。SYSENTER是SYSEXIT的同伴指令。该指令经过了优化,它可以使将由用户代码(运行在3层)向操作系统或执行程序(运行在0层)发起的系统调用发挥最大的性能。

cmaedu.com在调用SYSENTER指令前,软件必须通过下面的MSR寄存器,指定0层的代码段和代码指针,0层的堆栈段和堆栈指针:

cmaedu.com1.       IA32_SYSENTER_CS:一个32位值。低16位是0层的代码段的选择子。该值同时用来计算0层的堆栈的选择子。

cmaedu.com2.       IA32_SYSENTER_EIP:包含一个32位的0层的代码指针,指向第一条指令。

3.       IA32_SYSENTER_ESP:包含一个32位的0层的堆栈指针。

MSR寄存器可以通过指令RDMSR/WRMSR来进行读写。寄存器地址如下表。这些地址值在以后的intel 64和IA32处理器中是固定不变的。

MSR 地址

cmaedu.comIA32_SYSENTER_CS 174H

IA32_SYSENTER_ESP 175H

IA32_SYSENTER_EIP 176H

cmaedu.com当执行SYSENTER,处理器会做下面的动作:

cmaedu.com1.       从IA32_SYSENTER_CS从取出段选择子加载到CS中。

cmaedu.com2.       从IA32_SYSENTER_EIP取出指令指针放到EIP中

3.       将IA32_SYSENTER_CS的值加上8,将其结果加载到SS中。

cmaedu.com4.       从IA32_SYSENTER_ESP取出堆栈指针放到ESP寄存器中

5.       切换到0层。

6.       若EFLAGS中VM标志已被置,则清除VM标志。

cmaedu.com7.       开始执行选择的系统过程。

cmaedu.com处理器不保存返回地址和调用过程的其他状态信息。

SYSENTER指令总是转移到DPL为0的保护模式下的代码段。这条指令需要操作系统首先满足下面的条件:

cmaedu.com1.       选择的系统代码段必须是一个平坦的、32位最大为4G的代码段。此段必须是可执行的、可读、已存取、非一致的。

2.       选择的系统堆栈段必须是一个平坦的、32位最大为4G的数据段。此段必须可读写、已存取、可向上扩展。

cmaedu.comSYSENTER可在除实地址模式外所有其他模式下执行。

cmaedu.comSYSENTER和SYSEXIT是同伴指令,但是它们并不像CALL/RET指令对。当执行SYSENTER时,处理器并不会为用户代码保存状态信息。而且无论是SYSENTER还是SYSEXIT都不能通过堆栈传递参数。

为了能通过SYSENTER/SYSEXIT指令,使控制在3层用户代码和0层操作系统代码之间相互转移,必须满足下面的条件:

cmaedu.com1.       0层的代码段和0层堆栈段段以及3层的代码段和3层堆栈段在GDT中必须连续。这样就可以使处理器能从从SYSENTER_CS_MSR的值计算出其他的选择子的值了。

cmaedu.com2.       .若要返回调用过程,由用户代码执行的快速系统调用“桩”(STUB)例程(通常在共享库或DLL中)必须保存返回地址以及处理器的状态信息;当要返回至用户代码时,操作系统或者由SYSENTER调用的执行程序必须使用这些保存的地址和状态信息。

SYSENTER和SYSEXIT指令是从Pentium II开始新加入到IA32位架构中来的。这两个指令在处理器上是否有效要看CPUID指令返回的EDX寄存器中SEP标记(SYSENTER/SYSEXIT存在标记)是否置上。操作系统若要检查SEP标记必须要同时检查处理器族(family)和型号(model),这样才能确保结果的准确性。例如:

cmaedu.comIF (CPUID SEP bit is set)

cmaedu.comIF (Family == 6) AND (Model 3) AND (Stepping 3)

cmaedu.comTHEN

cmaedu.comFast System Call NOT supported

cmaedu.comFI;

cmaedu.comELSE Fast System Call is supported

cmaedu.comFI

cmaedu.com当CPUID指令在Penitum Pro(Model 1)上执行,虽然返回的SEP标志是置上的,但该处理器还是不支持SYSENTER/SYSEXIT指令的。

相关文章

cmaedu.com有效化解风险隐患,破解风险隐患问题

cmaedu.com有效化解风险隐患,破解风险隐患问题

防范化解经济风险的主要防范 当前我国经济形势总体是好的,但经济发展面临的国际环境和国内条件都在发生深刻而复杂的变化。从国际看,世界大变局加速深刻演变,全球动荡源和风险点增多,我国外部环境更趋复杂严峻。...

cmaedu.com怎么破解单机软件,破解修改单机

cmaedu.com怎么破解单机软件,破解修改单机

单机游戏怎么破解无限金币 单机游戏想要破解无限金币,就要借用一种修改工具,比如:烧饼修改器或八门神器修改器。具体修改器在哪下载,可在浏览器搜索相关关键词下载,列如“八门神器”搜索八门神器选择下载安装。...

cmaedu.com葫芦侠手游加速器下载-黑客24小时在线接单网站-安卓葫芦侠加速器破解版

cmaedu.com葫芦侠手游加速器下载-黑客24小时在线接单网站-安卓葫芦侠加速器破解版

uu加速器app下载安装如何下载 1、uu加速器怎么下载游戏首先搜索【UU加速器】点击下载,点击pc版下载,手机版可以直接在应用商店下载。接点击下载运行,开始安装,提示权限需求,点击是按钮。2、操作方...

cmaedu.com乐破解网 博客,乐心破解

cmaedu.com乐破解网 博客,乐心破解

捡到乐心手环怎么设置 1、恢复手环出厂设置。通电重复插拔三次,每次都要看到手表显示充电的电池符号再拔出来重新插进去,尽量在5秒内完成,重置成功后手表会震动,显示 HELLO2、 找回二维至 输入手环上...

cmaedu.com鸿业综合管廊设计软件破解版,鸿业管线软件破解

cmaedu.com鸿业综合管廊设计软件破解版,鸿业管线软件破解

你好,请问你是如何破解鸿业管线9.0r18x64的? 谢谢! 我有鸿业市政管线9.0R18安装包和破解版,支持32和64位系统,可以永久使用,很好用的鸿业市政管线9.0支持2012 32位的破解版发一...

cmaedu.com黑客帝国手游仙侠版攻略图-黑客24小时在线接单网站-黑客帝国手游仙侠版攻略

cmaedu.com黑客帝国手游仙侠版攻略图-黑客24小时在线接单网站-黑客帝国手游仙侠版攻略

电脑游戏:黑客帝国3:尼奥之路隐藏物品和出招表 先了解一下基本操作键: W、A、S、D--不用说都知道是前后左右了 左边Shift ---时间变慢,黑客帝国的精华! 左边Ctrl-----躲闪,...

评论列表

访客
2022-10-06 12:23:45

到0层。6.       若EFLAGS中VM标志已被置,则清除VM标志。7.       开始执行选择的系统过程。 处理器不保存返回地址和调用过程的其他状态信息。 SYSENT

访客
2022-10-06 11:33:46

至用户代码时,操作系统或者由SYSENTER调用的执行程序必须使用这些保存的地址和状态信息。 SYSENTER和SYSEXIT指令是从Pentium II开始新加入到IA32位架构中来的。这两个指令在处理器上是否有效要看C

访客
2022-10-06 11:30:12

T存在标记)是否置上。操作系统若要检查SEP标记必须要同时检查处理器族(family)和型号(model),这样才能确保结果的准确性。例如: IF (CPUID SEP bit is set)IF (Family == 6) AND (Model 3) AND (Stepping 3)THE

访客
2022-10-06 06:05:16

地址IA32_SYSENTER_CS 174HIA32_SYSENTER_ESP

访客
2022-10-06 11:50:19

174HIA32_SYSENTER_ESP 175HIA32_SYSENTER_EIP 176H 当执行SYSENTER,处理器会做下面的动作:1.       从IA32_SYSENTER_CS从取出段选择

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。