天翼云内核知识文档专栏是天翼云为开发者提供的互联网技术内容平台。内容涵盖内核相关内容资讯。开发者在内核专栏是可以快速获取到自己感兴趣的技术内容,与其他开发者们学习交流,共同成长。
在上一篇博文《驱动开发:内核通过PEB得到进程参数》中我们通过使用KeStackAttachProcess附加进程的方式得到了该进程的PEB结构信息,本篇文章同样需要使用进程附加功能,但这次我们将实现一个更加有趣的功能,在某些情况下应用层与内核层需要共享一片内存区域通过这片区域可打通内核与应用层的隔离,此类功能的实现依附于MDL内存映射机制实现。
通常使用Windows系统自带的任务管理器可以正常地结束掉一般进程,而某些特殊的进程在应用层很难被结束掉,例如某些系统核心进程其权限是在0环内核态,但有时我们不得不想办法结束掉这些特殊的进程,当然某些正常进程在特殊状态下也会无法被正常结束,此时使用驱动前行在内核态将其结束掉就变得很有用了,驱动结束进程有多种方法。
在笔者前一篇文章《驱动开发:内核枚举Registry注册表回调》中实现了对注册表的枚举,本章将实现对注册表的监控,不同于32位系统在64位系统中,微软为我们提供了两个针对注册表的专用内核监控函数,通过这两个函数可以在不劫持内核API的前提下实现对注册表增加,删除,创建等事件的有效监控
多数ARK反内核工具中都存在驱动级别的内存转存功能,该功能可以将应用层中运行进程的内存镜像转存到特定目录下,内存转存功能在应对加壳程序的分析尤为重要,当进程在内存中解码后,我们可以很容易的将内存镜像导出,从而更好的对样本进行分析,当然某些加密壳可能无效但绝大多数情况下是可以被转存的。
在前几篇文章中给大家具体解释了驱动与应用层之间正向通信的一些经典案例,本章将继续学习驱动通信,不过这次我们学习的是通过运用Async异步模式实现的反向通信,反向通信机制在开发中时常被用到,例如一个杀毒软件如果监控到有异常进程运行或有异常注册表被改写后,该驱动需要主动的通知应用层进程让其知道,这就需要用到驱动反向通信的相关知识点,如下将循序渐进的实现一个反向通信案例。
在笔者前面有一篇文章《驱动开发:断链隐藏驱动程序自身》通过摘除驱动的链表实现了断链隐藏自身的目的,但此方法恢复时会触发PG会蓝屏,偶然间在网上找到了一个作者介绍的一种方法,觉得有必要详细分析一下他是如何实现的驱动隐藏的,总体来说作者的思路是最终寻找到MiProcessLoaderEntry的入口地址,该函数的作用是将驱动信息加入链表和移除链表,运用这个函数即可动态处理驱动的添加和移除问题。
本篇文章与上一篇文章《驱动开发:内核注册并监控对象回调》所使用的方式是一样的都是使用ObRegisterCallbacks注册回调事件,只不过上一篇博文中LyShark将回调结构体OB_OPERATION_REGISTRATION中的ObjectType填充为了PsProcessType和PsThreadType格式从而实现监控进程与线程
在笔者上一篇文章《驱动开发:内核特征码搜索函数封装》中为了定位特征的方便我们封装实现了一个可以传入数组实现的SearchSpecialCode定位函数,该定位函数其实还不能算的上简单,本章LyShark将对特征码定位进行简化,让定位变得更简单,并运用定位代码实现扫描内核PE的.text代码段,并从代码段中得到某个特征所在内存位置。
微软在x64系统中推出了DSE保护机制,DSE全称(Driver Signature Enforcement),该保护机制的核心就是任何驱动程序或者是第三方驱动如果想要在正常模式下被加载则必须要经过微软的认证,当驱动程序被加载到内存时会验证签名的正确性,如果签名不正常则系统会拒绝运行驱动,这种机制也被称为驱动强制签名,该机制的作用是保护系统免受恶意软件的破坏,是提高系统安全性的一种手段。
Linux操作系统介绍-01
Linux内核之内存5: 其他工程问题以及调优
各浏览器内核JS运行速度比较
并发事务实现中,有时某个事务需要对上万行加锁,此时锁对象不适于放在内存中,PG采取的策略是,将加锁事务的ID设置到被锁记录的xmax中,同时设置t_infomask表示记录被锁,以此表示记录被锁住(共享锁或互斥锁)。
内核源码编译
操作系统权限提升之Linux提权-内核提权
注意:下面的所有案例必须使用.C结尾的文件,且必须在链接选项中加入 /INTEGRITYCHECK 选项,否则编译根本无法通过(整合修正,Win10可编译,须在测试模式下进行),内核代码相对固定,如果对内核编程不太熟的话,建议不要随意修改代
磁盘管理 主次设备号与驱动 当内核运行起来之后就会接管所有的硬件,任何程序都不得直接与硬件进行通信,任何程序都要通过内核才可以与硬件进行通信。那么内核是为什么可以接管所有的硬件?因为内核当中有各个硬件的驱动程序,这些程序集成在内核当中,
今天去德州银行处理存储的事,结果机柜里面都是满的,没有地方放置了,只能下架一台服务器,但是服务器上运行的是什么服务,主任也不确定,root密码也给忘了!只能重置密码了。第一步:重启服务器,在内核引导界里,按e进入内核编辑界面 第二步:在li
目录一、概念1、内核对CPU指令的划分2、进程的生命周期3、子进程4、写时复制、保存现场5、IO过程6、进程的类型、状态类型状态二、命令&操作pstreepsps -lps -Ups auxps -elfps -eFHps -ex
目录http并发并发访问模型响应流程从IO的角度看待响应从函数的角度看待响应日志处理 我叫张贺,贪财好色。一名合格的LINUX运维工程师,专注于LINUX的学习和研究,曾负责某中型企业的网站运维工作,爱好佛学和跑步。http并发内容概括本
2023-03-16 07:49:58
2024-07-01 01:32:23
2023-04-21 03:14:39
2023-05-12 07:20:42
2023-06-19 06:58:36
2024-07-01 01:32:08