首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
KeStackAttachProcess和cr3切换的区别
2024-10-03
windows:跨进程读数据
外挂.木马.病毒等可能需要读取其他进程的数据,windows提供了OpenProcess.ReadProcessMemory等函数.但越是大型的软件,防护做的越好,大概率会做驱动保护,比如hook SSDT表等,这些系统调用都会先被过滤一次,导致返回的数据不是想要的:为了确保能读到目标进程数据,最好重写ReadProcessMemory:要想读取其他进程的内容,思路大概有一下几种: 注册PsSetLoadImageNotifyRoutine函数,其他进程加载模块会时调用我们注册的函数,这个时候已
12_通过 CR3 切换_读取指定进程数据
注意: cr3 切换 ,导致eip 指向的页面,改变为对应cr3 的页面:所以代码也变了:这里需要将这部分代码放入公共区域. 解决: 使用 类似前面 山寨 systemfastcallentry 的方法:使用 int 20 将代码拷贝到 高2gb 公共区域. 注册到 int 21,然后中断调用即可.
驱动开发:内核CR3切换读写内存
首先CR3是什么,CR3是一个寄存器,该寄存器内保存有页目录表物理地址(PDBR地址),其实CR3内部存放的就是页目录表的内存基地址,运用CR3切换可实现对特定进程内存地址的强制读写操作,此类读写属于有痕读写,多数驱动保护都会将这个地址改为无效,此时CR3读写就失效了,当然如果能找到CR3的正确地址,此方式也是靠谱的一种读写机制. 在读写进程之前需要先找到进程的PEPROCESS结构,查找结构的方法也很简单,依次遍历进程并对比进程名称即可得到. #include <ntifs.h> #incl
bash登录式shell(完全切换)与非登陆式shell(不完全切换)区别
1.以登录式shell切换用户 su - username 登录式shell读取配置文件及其顺序: /etc/profile /etc/profile.d/*.sh ~/.bash_profile ~/.bashrc /etc/bashrc 2.以非登陆式shell切换用户 su username 非登陆式shell读取配置文件及其顺序: ~/.bashrc /etc/bashrc /etc/profile.d/*.sh 附:bash配置文件 1.全局配置文件 /etc/profile /etc
Linux thread process and kernel mode and user mode page table
Linux 中线程和进程切换的开销: Linux 操作系统层面的进程和线程的实现都是task_struct描述符. task_struct 包含成员变量:内核态stack. 这些都存在3-4G虚拟地址空间的内核态空间中.内核栈用于保存各个寄存器值:CS,DS,SS等. os层面的线程进程切换,都是在kernel mode下操作的.每个process都有自己unique的内核栈(因为每个process对应一个task_struct,kernel stack is member of the s
php gettext 多语言翻译
1.在window与linux下的多语言切换有些区别,主要putenv的设置区别. 参考链接:http://www.cnblogs.com/sink_cup/archive/2013/11/20/ubuntu-php-gettext-error.html http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/08/09/2132603.html 在window下echo setlocale('LANG=zh_CN'),而在linux下如果
wrk 进程管理
4.3.1 四种情况创建新进程并调用MmInitializeProcessAddressSpace, 调用完这个函数的时候,一个进程的地址空间基本建立了, 可执行文件的映像和ntdll.dll(内存区对象)已经被映射到恰当的虚拟地址范围内. 介绍到 在新进程的地址空间中,会克隆系统空间的页目录到新进程的页目录. KeAttachProcess() 与 KeDetachProcess() KeAttachProcess()函数的执行的时候,会把当前线程附载在新的的进程对象上,关键是把CR3切换为新
进程 & 线程相关知识
不管Java,C++都有进程.线程相关的内容.在这里统一整理吧. Python的线程,其实是伪线程,不能真正的并发.下面也有讲. 线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈). 多个线程共享内存. 参考了这篇文章:http://www.cnblogs.com/qiaoconglovelife/p/5319779.html 进程与PCB 进程:进程是程序的一次执行过程,是系统进行资源分配和调度的一个独立单位. 进程实体(进程映像):由程序段.相关数
ARM嵌入式整理
填空 1指令含义 列出文件列表的ls命令 切换目录的cd命令 创建目录的mkdir命令 删除目录的rmdir命令 复制文件的cp命令 删除文件或目录的rm命令 让显示画面暂停的more命令 连接文件的cat命令 移动或更换文件,目录名称的mv命令 显示当前所在目录的pwd命令 2 做移植操作系统的三步:下载bootloader,下载内核,下载文件 3 ARM7TDMI各个字母的含义:支持32位寻址范围,并弥补了ARM6不能在低于5V电源电压下工作的不足 考点: 1. vi编辑器模式
what is the “handover” and "soft handover" in mobile communication system?
Handover: 切换,属于移动通信网络中的技术术语. 所谓切换,就是指当移动台在通话过程中从一个基站覆盖区移动到另一个基站覆盖区,或者由于外界干扰而造成通话质量下降时,必须改变原有的话音信道而转接到一条新的空闲话音信道上去,以继续保持通话的过程.切换是移动通信系统中一项非常重要的技术,切换失败会导致掉话,影响网络的运行质量.因此,切换成功率(包括切入和切出)是网络考核的一项重要指标,如何提高切换成功率,降低切换掉话率是网络优化工作的重点之一. 小区更新 是手机在通话状态下,由于无线环境或者是
消息中间件 MQ
复制粘贴于:https://blog.csdn.net/wqc19920906/article/details/82193316 一.消息中间件相关知识 1.概述 消息队列已经逐渐成为企业IT系统内部通信的核心手段.它具有低耦合.可靠投递.广播.流量控制.最终一致性等一系列功能,成为异步RPC的主要手段之一.当今市面上有很多主流的消息中间件,如老牌的ActiveMQ.RabbitMQ,炙手可热的Kafka,阿里巴巴自主开发RocketMQ等. 2.消息中间件的组成 2.1 Broker 消息服务
[Java] [Lock] [Synchronized VS ReentrantLock]
Overview java编写多线程程序时,为了保证线程安全,需要对数据进行同步,经常用到的两种同步方式就是synchronized和重入锁ReentrantLock. 相似点 都是加锁方式 都是阻塞式同步.即若一个线程获得了对象锁,进入了同步块,其他访问该同步块的线程都必须阻塞在同步块外等待,而进行线程阻塞和唤醒的代价是比较高的(os需要在用户态和内核态之间来回切换). 区别 synchronized是java语言的关键字,是原生语法层面的互斥,需要jvm实现:而ReentrantLock是J
消息中间件MQ详解及四大MQ比较
一.消息中间件相关知识 1.概述 消息队列已经逐渐成为企业IT系统内部通信的核心手段.它具有低耦合.可靠投递.广播.流量控制.最终一致性等一系列功能,成为异步RPC的主要手段之一.当今市面上有很多主流的消息中间件,如老牌的ActiveMQ.RabbitMQ,炙手可热的Kafka,阿里巴巴自主开发RocketMQ等. 2.消息中间件的组成 2.1 Broker 消息服务器,作为server提供消息核心服务 2.2 Producer 消息生产者,业务的发起方,负责生产消息传输给broker, 2
libco协程库上下文切换原理详解
缘起 libco 协程库在单个线程中实现了多个协程的创建和切换.按照我们通常的编程思路,单个线程中的程序执行流程通常是顺序的,调用函数同样也是 “调用——返回”,每次都是从函数的入口处开始执行.而libco 中的协程却实现了函数执行到一半时,切出此协程,之后可以回到函数切出的位置继续执行,即函数的执行可以被“拦腰斩断”,这种在函数任意位置 “切出——恢复” 的功能是如何实现的呢? 本文从libco 代码层面对协程的切换进行了剖析,希望能让初次接触 libco 的同学能快速了解其背后的运行机理.
KVM基于X86硬件辅助的虚拟化技术实现机制【转】
内存虚拟化 Shadow Paging 作者 Shawn 在其中文博客中很详尽地介绍了 KVM 在只支持一级分页的 x86 平台上用 “Shadow Paging”进行 MMU 虚拟化的实现,由于目前新的 X86 硬件平台提供的虚拟化扩展都能支持两维分页处理,所以笔者在此没必要再细节描述“Shadow Paging” 的实现, 但仍有必要概括一下其特点 : 1. 每个虚拟机对应的 qemu-kvm 进程通过分配不同的虚拟内存区间来映射虚拟机不同的物理内存区域. 每个虚拟机对应的 struct k
消息中间件(一)MQ详解及四大MQ比较
一.消息中间件相关知识 1.概述 消息队列已经逐渐成为企业IT系统内部通信的核心手段.它具有低耦合.可靠投递.广播.流量控制.最终一致性等一系列功能,成为异步RPC的主要手段之一.当今市面上有很多主流的消息中间件,如老牌的ActiveMQ.RabbitMQ,炙手可热的Kafka,阿里巴巴自主开发RocketMQ等. 2.消息中间件的组成 2.1 Broker 消息服务器,作为server提供消息核心服务 2.2 Producer 消息生产者,业务的发起方,负责生产消息传输给broker, 2.3
集群、RAC和MAA
集群:是一种由两台或多台节点机构成的松散耦合的计算节点集合,这个集合在整个网络中表现为单一的系统,并通过单一接口进行使用和管理.给用户提供网络服务或应用程序的单一视图.大多数模式下,集群中所有计算机都拥有一个相同的名称,集群内任意一个系统都可以被所有网络客户所使用.当一个应用服务发生故障时,应用服务将被重新启动或被另一台服务器接管.客户将能很快连接到新应用服务器上,理想情况下用户甚至感觉不到这种故障存在. 一.集群技术基础 1.集群地址 维护集群地址的设施被称为负载均衡器.对内负责管理各节点加入
消息中间件之MQ详解及四大MQ比较
一.消息中间件相关知识 1.概述 消息队列已经逐渐成为企业IT系统内部通信的核心手段.它具有低耦合.可靠投递.广播.流量控制.最终一致性等一系列功能,成为异步RPC的主要手段之一.当今市面上有很多主流的消息中间件,如老牌的ActiveMQ.RabbitMQ,炙手可热的Kafka,阿里巴巴自主开发RocketMQ等. 2.消息中间件的组成 2.1 Broker 消息服务器,作为server提供消息核心服务. 2.2 Producer 消息生产者,业务的发起方,负责生产消息传输给broker
C++开发工程师面试题库 150~200道
151.简述需求分析的过程和意义 152.网状.层次数据模型与关系数据模型的最大的区别是什末 153.软件质量保证体系是什末 国家标准中与质量保证管理相关的几个标准是什末 编号和全称是什末号和全称是什末 153文件格式系统有哪几种类型?分别说说win95.win98.winMe.w2k.winNT.winXP分别支持那些文件系统 154.我现在有个程序,发现在WIN98上运行得很慢,怎么判别是程序存在问题还是软硬件系统存在问题?155.有关P2P点对点文件传输的原理 156.一台计算机的IP是1
Java分布式系统---消息中间件
简介 消息中间件也可以称消息队列,是指用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成.通过提供消息传递和消息队列模型,可以在分布式环境下扩展进程的通信.当下主流的消息中间件有RabbitMQ.Kafka.ActiveMQ.RocketMQ等.其能在不同平台之间进行通信,常用来屏蔽各种平台协议之间的特性,实现应用程序之间的协同.其优点在于能够在客户端和服务器之间进行同步和异步的连接,并且在任何时刻都可以将消息进行传送和转发.是分布式系统中非常重要的组件,主要
centos7部署rabbitMq
目录 一.消息中间件相关知识... 1 1.概述... 1 2.消息中间件的组成... 1 3 消息中间件模式分类... 2 4 消息中间件的优势... 3 5 消息中间件应用场景... 4 6 消息中间件常用协议... 6 7 常见消息中间件MQ介绍... 7 7.1 RocketMQ.. 7 7.2 RabbitMQ.. 7 7.3 ActiveMQ.. 8 7.4 Redis. 8 7.5 Kafka. 8 7.6 ZeroMQ.. 9 8.主要消息中间件的比较... 9 二.部署Rabb
热门专题
springboot 执行自定义SQL
eclipse src/main/中看不到java
mvvm 使用xutil3
mysql 包含非聚合类
装了淘宝镜像之后创建项目还是很慢
ixm6ull 内核驱动加载 helloworld
matlab 核密度图
python 子类 调用 父类属性
Spring如何绑定request到Controller入参
恢复微软商店的两个代码
python 处理grib
pytest-html 插入描述 排序
bigdecimal去掉小数末尾的0
concatMap 全部完成
创建nodejs项目
hive on spark 安装
QNetworkAccessManager内部用qftp吗
webstrom 变量区分颜色
code 128用什么扫码
微信小程序 获取输入信息