- DKOM 即直接内核对象操作,我们所有的操作都会被系统记录在内存中,而驱动进程隐藏就是操作进程的EPROCESS结构与线程的ETHREAD结构、链表,要实现进程的隐藏我们只需要将某个进程中的信息,在系统EPROCESS链表中摘除即可实现进程隐藏。 DKOM 即直接内核对象操作,我们所有的操作都会被系统记录在内存中,而驱动进程隐藏就是操作进程的EPROCESS结构与线程的ETHREAD结构、链表,要实现进程的隐藏我们只需要将某个进程中的信息,在系统EPROCESS链表中摘除即可实现进程隐藏。
- Windows内核中是无法使用`vector`容器等数据结构的,当我们需要保存一个结构体数组时,就需要使用内核中提供的专用链表结构`LIST_ENTRY`通过一些列链表操作函数对结构体进行装入弹出等操作,如下代码是本人总结的内核中使用链表存储多个结构体的通用案例。 Windows内核中是无法使用`vector`容器等数据结构的,当我们需要保存一个结构体数组时,就需要使用内核中提供的专用链表结构`LIST_ENTRY`通过一些列链表操作函数对结构体进行装入弹出等操作,如下代码是本人总结的内核中使用链表存储多个结构体的通用案例。
- 首先CR3是什么,CR3是一个寄存器,该寄存器内保存有页目录表物理地址(PDBR地址),其实CR3内部存放的就是页目录表的内存基地址,运用CR3切换可实现对特定进程内存地址的强制读写操作,此类读写属于有痕读写,多数驱动保护都会将这个地址改为无效,此时CR3读写就失效了,当然如果能找到CR3的正确地址,此方式也是靠谱的一种读写机制。 首先CR3是什么,CR3是一个寄存器,该寄存器内保存有页目录表物理地址(PDBR地址),其实CR3内部存放的就是页目录表的内存基地址,运用CR3切换可实现对特定进程内存地址的强制读写操作,此类读写属于有痕读写,多数驱动保护都会将这个地址改为无效,此时CR3读写就失效了,当然如果能找到CR3的正确地址,此方式也是靠谱的一种读写机制。
- 提到自旋锁那就必须要说链表,在上一篇`《驱动开发:内核中的链表与结构体》`文章中简单实用链表结构来存储进程信息列表,相信读者应该已经理解了内核链表的基本使用,本篇文章将讲解自旋锁的简单应用,自旋锁是为了解决内核链表读写时存在线程同步问题,解决多线程同步问题必须要用锁,通常使用自旋锁,自旋锁是内核中提供的一种高IRQL锁,用同步以及独占的方式访问某个资源。 提到自旋锁那就必须要说链表,在上一篇`《驱动开发:内核中的链表与结构体》`文章中简单实用链表结构来存储进程信息列表,相信读者应该已经理解了内核链表的基本使用,本篇文章将讲解自旋锁的简单应用,自旋锁是为了解决内核链表读写时存在线程同步问题,解决多线程同步问题必须要用锁,通常使用自旋锁,自旋锁是内核中提供的一种高IRQL锁,用同步以及独占的方式访问某个资源。
- 本文主要讲解了脏牛漏洞的提全过程及其修复建议。 本文主要讲解了脏牛漏洞的提全过程及其修复建议。
- 在上一篇文章`《驱动开发:内核取ntoskrnl模块基地址》`中我们通过调用内核API函数获取到了内核进程`ntoskrnl.exe`的基址,当在某些场景中,我们不仅需要得到内核的基地址,也需要得到特定进程内某个模块的基地址,显然上篇文章中的方法是做不到的,本篇文章将实现内核层读取32位应用层中特定进程模块基址功能。 在上一篇文章`《驱动开发:内核取ntoskrnl模块基地址》`中我们通过调用内核API函数获取到了内核进程`ntoskrnl.exe`的基址,当在某些场景中,我们不仅需要得到内核的基地址,也需要得到特定进程内某个模块的基地址,显然上篇文章中的方法是做不到的,本篇文章将实现内核层读取32位应用层中特定进程模块基址功能。
- 进程 概念进程和程序的区别程序是静态的指令集合进程是动态的程序的一次执行过程进程是进程实体的运行过程,是系统资源分配和调度的基本单位注意:进程之间可以是独立的,也可以是交互性的 进程实体的组成PCB(面向操作系统)进程标识符PID用户标识符UID进程优先级堆栈指针是进程的唯一标识,进程创建时创建,进程结束时结束程序段(面向进程自己)数据段(面向进程自己) 进程的状态状态就绪态 :无CPU,... 进程 概念进程和程序的区别程序是静态的指令集合进程是动态的程序的一次执行过程进程是进程实体的运行过程,是系统资源分配和调度的基本单位注意:进程之间可以是独立的,也可以是交互性的 进程实体的组成PCB(面向操作系统)进程标识符PID用户标识符UID进程优先级堆栈指针是进程的唯一标识,进程创建时创建,进程结束时结束程序段(面向进程自己)数据段(面向进程自己) 进程的状态状态就绪态 :无CPU,...
- 🎄JVM线程私有和共享的区域JVM线程私有的区域有:虚拟机栈,本地方法栈,程序计数器。虚拟机栈:主要存储方法,局部变量,运行的数据。本地方法栈:主要存储本地方法(含有Native关键字的方法)。程序计数器:存储程序运行位置的字节码行号指示器。JVM线程共享的区域有:Java堆,元空间Java堆:存储所有创建的对象,数组等。元空间:存储虚拟机加载的字节码数据,常量,静态变量,运行时常量池等... 🎄JVM线程私有和共享的区域JVM线程私有的区域有:虚拟机栈,本地方法栈,程序计数器。虚拟机栈:主要存储方法,局部变量,运行的数据。本地方法栈:主要存储本地方法(含有Native关键字的方法)。程序计数器:存储程序运行位置的字节码行号指示器。JVM线程共享的区域有:Java堆,元空间Java堆:存储所有创建的对象,数组等。元空间:存储虚拟机加载的字节码数据,常量,静态变量,运行时常量池等...
- 计算机的设计就是为了帮助人类或者模仿人类的某些行为。生活中的多任务:人可以一边唱歌,一边跳舞;人开车的时候是通过手、脚和眼睛共同配合来驾驶一辆车。多任务编程就是这样一个鲜明的例子,计算机也可以实现多任务编程:比如一边听歌一边玩游戏、打开浏览器上网同时能登录微信、QQ等聊天工具。那么Python的多任务有哪些方式呢?Python多任务编程的三种方式多线程多进程协程今天我们先来聊一聊Python... 计算机的设计就是为了帮助人类或者模仿人类的某些行为。生活中的多任务:人可以一边唱歌,一边跳舞;人开车的时候是通过手、脚和眼睛共同配合来驾驶一辆车。多任务编程就是这样一个鲜明的例子,计算机也可以实现多任务编程:比如一边听歌一边玩游戏、打开浏览器上网同时能登录微信、QQ等聊天工具。那么Python的多任务有哪些方式呢?Python多任务编程的三种方式多线程多进程协程今天我们先来聊一聊Python...
- 原子性首先看到的这个原子性,对于我们肯定都不陌生,因为在接触数据库的四大特性的时候就遇到过(原子性,一致性,隔离性,持久性)。在数据库中,原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚。当然此时说的原子性操作也类似,即线程执行一系列操作,这些操作都会被看着一个不可分割的整体,要么全部执行,要么全部不执行。原子性是指,CPU在执行一个或多个操作的过程具有原子性,它们是一个不可分割... 原子性首先看到的这个原子性,对于我们肯定都不陌生,因为在接触数据库的四大特性的时候就遇到过(原子性,一致性,隔离性,持久性)。在数据库中,原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚。当然此时说的原子性操作也类似,即线程执行一系列操作,这些操作都会被看着一个不可分割的整体,要么全部执行,要么全部不执行。原子性是指,CPU在执行一个或多个操作的过程具有原子性,它们是一个不可分割...
- Synchronized的用法在多线程并发问题中,常用Synchronized锁解决问题。Synchronized锁通常用于同步示例方法,同步静态方法,同步代码块等。 同步示例方法我们可能自己使用过在方法前加Synchronized锁修饰,在多线程并发同时调用同一个实例化对象时,如果这个方法加上了Synchronized锁,那么也是线程安全的。举个栗子:package Thread;imp... Synchronized的用法在多线程并发问题中,常用Synchronized锁解决问题。Synchronized锁通常用于同步示例方法,同步静态方法,同步代码块等。 同步示例方法我们可能自己使用过在方法前加Synchronized锁修饰,在多线程并发同时调用同一个实例化对象时,如果这个方法加上了Synchronized锁,那么也是线程安全的。举个栗子:package Thread;imp...
- synchronized锁简述前面说到,synchronized锁用于同步实例方法,同步静态方法和同步代码块。自从Java1.6开始,就对synchronized锁进行了很多方面的优化。对其引入了偏向锁,轻量级锁,适应性自旋锁,锁粗化,锁消除等各种技术方面的优化。synchronized锁是基于monitor锁实现的,因此在讲解synchronized锁之前,有必要了解一下monitor锁... synchronized锁简述前面说到,synchronized锁用于同步实例方法,同步静态方法和同步代码块。自从Java1.6开始,就对synchronized锁进行了很多方面的优化。对其引入了偏向锁,轻量级锁,适应性自旋锁,锁粗化,锁消除等各种技术方面的优化。synchronized锁是基于monitor锁实现的,因此在讲解synchronized锁之前,有必要了解一下monitor锁...
- AQS简介AQS位于java.util.concurrent.locks包下,其全称是AbstractQueuedSynchronizer,即抽象队列同步器,是阻塞式锁和相关的同步器工具的框架。在AQS内部,主要维护了一个基于FIFO(First Input First Output)的等待队列,类似于前面讲到的monitor锁的WaitSet集合。 AQS底层数据结构同时,双向链表中的每... AQS简介AQS位于java.util.concurrent.locks包下,其全称是AbstractQueuedSynchronizer,即抽象队列同步器,是阻塞式锁和相关的同步器工具的框架。在AQS内部,主要维护了一个基于FIFO(First Input First Output)的等待队列,类似于前面讲到的monitor锁的WaitSet集合。 AQS底层数据结构同时,双向链表中的每...
- 前言博主个人社区:开发与算法学习社区博主个人主页:Killing Vibe的博客欢迎大家加入,一起交流学习~~ 一、线程间等待与唤醒机制wait()和notify()是Object类的方法,用于线程的等待与唤醒,必须搭配synchronized 锁来使用。多线程并发的场景下,有时需要某些线程先执行,这些线程执行结束后其他线程再继续执行。比如: 一个长跑比赛,裁判员要等跑步运动员冲线了才能宣... 前言博主个人社区:开发与算法学习社区博主个人主页:Killing Vibe的博客欢迎大家加入,一起交流学习~~ 一、线程间等待与唤醒机制wait()和notify()是Object类的方法,用于线程的等待与唤醒,必须搭配synchronized 锁来使用。多线程并发的场景下,有时需要某些线程先执行,这些线程执行结束后其他线程再继续执行。比如: 一个长跑比赛,裁判员要等跑步运动员冲线了才能宣...
- 1. 线程的同步 2. 线程同步机制 3. 同步具体方法–Synchronized 4. 分析同步原理 5. 互斥锁 5.1 基本介绍 1. 线程的同步在这个案例中,出现了售票“超卖”的现象。https://blog.csdn.net/qq_41684621/article/details/124015715下面就使用synchronized解决售票“超卖”的问题 2. 线程同步机制在多线... 1. 线程的同步 2. 线程同步机制 3. 同步具体方法–Synchronized 4. 分析同步原理 5. 互斥锁 5.1 基本介绍 1. 线程的同步在这个案例中,出现了售票“超卖”的现象。https://blog.csdn.net/qq_41684621/article/details/124015715下面就使用synchronized解决售票“超卖”的问题 2. 线程同步机制在多线...
上滑加载中
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
回顾中 -
关于RISC-V生态发展的思考2025/09/02 周二 17:00-18:00
中国科学院计算技术研究所副所长包云岗教授
中科院包云岗老师将在本次直播中,探讨处理器生态的关键要素及其联系,分享过去几年推动RISC-V生态建设实践过程中的经验与教训。
回顾中 -
一键搞定华为云万级资源,3步轻松管理企业成本2025/09/09 周二 15:00-16:00
阿言 华为云交易产品经理
本直播重点介绍如何一键续费万级资源,3步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签