让程序进入ring0级执行

看nt下无驱执行ring0代码 X86平台上,cpu可以工作在三个特权级别下,ring0—ring3,其中ring0具有最高权限,可以执行任何指令而无限制,ring3受到cpu保护机制限制,只能执行非特权指令。当在ring3下执行特权指令如lgdt、iret等时,会触发general protection异常(也就是出错啦,跳转到相应得错误处理程序)。在nt平台下,普通应用程序运行在ring3下,操作系统运行于ring0。如 阅读详情

在保护模式下,ring0有至高无上的权限,他一直是很多黑客程序员追求的目标,在NT平台上,MS对系统表格作了保护,不能在象win9x那样,去直接修改系统表格,但是还是有不少办法能够进入ring0的,例如,在国内,最早sinister利用编写驱动程序的方法进入ring0,这也是最通用的方法了,紧跟着WebCrazy又使用读写物理内存的方法来读写GDT所在的物理内存,在GDT上生成自己的调用门来随意进出ring0。后来由MGF提出一种更新的方法,这也就是我要介绍的方法,修改NTLDR。

为什么要修改NTLDR呢,因为windows在启动之时,需要装载GDT上的描述符,而NT的引导程序是NTLDR,那么也就是说描述符可能在NTLDR中,如果我们的假设成立,那么我们就能够在NTLDR中找到系统描述符,好,我们首先来做个实验,用UE打开NTLDR,搜索16进制数ffff 0000 009a cf00(这是GDT上的一个描述符,它的选择子为8h),结果我们搜到了,那么证明想法是对的,在向后看,发现还有不少描述符,哈哈,如果我们在搜索到的描述符区域中空的地方加入自己的调用门和自己的系统描述符,当系统重新启动的时候我们的调用门就会被操作系统装载到内存中,这样我们就有了我们需要的调用门,就可以利用这个调用门自由进出ring0了。这里可能有人要问为什么不用系统选择子08h所对应的描述符,而自己生成自己的选择子和描述符,这是因为我们的调用门所指向的代码一般都在用户区,MS会做检测,如果发现运行在选择子为8h的代码在0x80000000以下,就会认为是非法进入ring0,就会产生异常。下面请看代码
;修改ntldr添加调用门,运行任意ring0代码的例子
.386
.model        flat,stdcall
option        casemap:none
include        d:/masm32/include/windows.inc
include        d:/masm32/include/kernel32.inc
include        d:/masm32/include/user32.inc
includelib d:/masm32/lib/kernel32.lib
includelib d:/masm32/lib/user32.lib
.data
szFileName        db        'C:/NTLDR',0
dwAttrib                dd        0
hFile                                dd        0
hMap                                dd        0
pFile                                dd        0
dwFileSize        dd        0
dwC3Code                dd        0
GDTFlag                        dw 0ffffh,0000,9a00h,00cfh,0ffffh,0000,9200h,00cfh        ;GDT中的第一个和第二个描述符
CallGate                 dw 0000,0108h

ring0下使用内核重载绕过杀软hook 内核重载听起来是一个很高大上的概念,但其实跟PE的知识息息相关,那么为什么会有内核重载的出现呢? 我们知道从ring3进入ring0需要通过int2e/sysenter(syscall)进入ring0,而进入ring0之后又会通过KiFastCallEntry/KiSystemService去找SSDT表对应响应的内核函数,那么杀软会在这两个地方进行重点盯防。 首先是对int2e/sysenter的盯防,我们知道大多数函数都是通过一系列的调用链,最终找到ntdll.dll里面的函数,找到调用号后通过int 阅读详情

相关推荐

利用调用门从Ring 3进入Ring 0[转]

☆ 利用调用门从Ring 3进入Ring 0观察用户空间程序memdump.exe执行时CS、DS、FS所对应的段描述符:--------------------------------------------------------------------------> memdump -l 8GDTR.base             = 0x8003F000GDTR.limit       

LionD8' Blog 个人作品 www.360kdj.com 360KDJ股票实验室 5563

Linux获取ring0权限,Ring0和Ring3权限级

本节的内容以知识为主,比较少技巧和经验。读者只需要了解,不需要熟练。如果你熟悉x86架构,请直接跳过这节。现在探讨内核程序和应用程序之间的本质区别。除了能用WDK编写内核程序和阅读一部分Windows的内核代码之外,我们还需要了解它们的本质是什么,它们和我们熟悉的应用程序有什么区别。Intel的x86处理器是通过Ring级别来进行访问控制的,级别共分4层,从Ring0到Ring3(后面简称R0、R...

weixin_42208552的博客 1270

告别串口助手!手把手教你用Matlab直接读取STM32的传感器数据(附完整代码)

本文详细介绍了如何利用Matlab直接与STM32进行串口通信,实现传感器数据的实时采集与分析。通过完整的代码示例和系统架构设计,帮助开发者告别传统的串口助手工具链,打造高效、自动化的数据采集系统。文章涵盖了从硬件配置、通信协议设计到Matlab数据处理与可视化的全流程,特别适合嵌入式开发与数据分析结合的实践场景。

weixin_42629671的博客 428

PyQtWebEngine安装避坑指南:快速解决ModuleNotFoundError

本文详细解析了PyQt5开发中常见的ModuleNotFoundError: No module named 'PyQt5.QtWebEngineWidgets'错误。核心原因是PyQt5 5.11版本后,网页引擎组件被独立为PyQtWebEngine包。文章对比了退回旧版本、独立安装及使用Conda等多种解决方案,并提供了针对Windows、macOS和Linux不同平台的实战安装指南与验证方法,帮助开发者快速解决依赖问题。

weixin_29056101的博客 427

张量积曲面:数学原理与Python实现

Suv∑i0m∑j0nPij⋅Bipu⋅BjqvSuvi0∑m​j0∑n​Pij​⋅Bip​u⋅Bjq​v其中PijP_{i,j}Pij​是控制点网格,BipuB_i^p(u)Bip​u和BjqvB_j^q(v)Bjq​v是基函数,分别沿uuu和vvv方向定义。

T20151470的博客 1155

RK3568 解决MIPI屏幕开机只显示uboot logo的问题

之前写过一篇文章介绍了RK3568驱动MIPI屏幕的方法,这次产品迭代,硬件改版,选型的新的屏幕了。所以再次开启调试屏幕的过程。本以为会和上次一样会轻车熟路,事情总是事与愿违,同样的路,遇到新的坑。

fhqlongteng的博客 5425

FDTD仿真实战:从材料导入到反射率曲线分析

本文提供了一份完整的FDTD仿真实战指南,详细讲解了从自定义材料(如WO3)数据导入、结构建模、仿真区域与网格设置,到光源与监视器配置、运行仿真并提取反射率数据的全流程。重点解决了材料库缺失、网格优化、边界条件设置等常见难题,旨在帮助研究人员高效、准确地通过FDTD仿真获取材料的关键光学特性——反射率曲线。

elastic6hunter的博客 341

XGBoost的简单安装及入门使用

XGBoost安装及简单入门 XGBoost支持多种操作系统,如Windows, Linux, MacOS等,并支持多种语言版本,如Python, R, Scale, Java等。XGBoost的安装方式一般有两种,一种是直接通过pip安装(适合用于Python),另外一种是通过源码编译安装 1、通过pip安装 通过pip安装Python包既简单又方便,只需执行如下的命令: pip install -i https://pypi.tuna.tsinghua.edu.cn/simple xgboost 使用

qq_41513230的博客 3万+

【2025年五一数学建模竞赛】A题 完整论文 模型建立与求解

2025年五一数学建模竞赛 A题:基于历史数据与模式识别的道路车流量推测模型研究

Magnolia_He的博客 3783

干货满满!AI应用架构师分享AI驱动虚拟展示干货

虚拟展示(Virtual Presentation):用数字技术将物理对象/场景转化为可交互的虚拟内容(比如3D文物、虚拟试衣间);AI驱动(AI-Powered):通过AI技术实现实时交互、智能决策、个性化生成,让虚拟内容“活”起来;AI驱动虚拟展示:以用户体验为核心,将“3D渲染+AI理解+实时数据”融合,形成“感知-决策-反馈”的闭环系统。前端交互层是用户直接体验到的部分,再厉害的AI和渲染,只要前端交互烂,用户都会跑。我见过很多团队为了“炫技”做了复杂的AI功能,结果用户不会用。

AI大模型应用之禅 535

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

上一篇: 系统底层ROOKIT拦截网络数据
下一篇: PE可执行文件的镶入式程序后门开发
wind0513
博客等级 码龄24年 3粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值