自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(127)
  • 资源 (37)
  • 收藏
  • 关注

原创 文件和目录

文件和目录操作

2023-03-31 14:30:06 119

原创 守护进程和线程

共享 ./text./data ./rodataa ./bsss heap ---> 共享【全局变量】( errno)daemon 进程。通常运行与操作系统后台,脱离控制终端。一般不与用户直接交互。ps -Lf 进程 id ---> 线程号。LWP --》 cpu 执行的最小单位。进程:有独立的 进程地址空间。分配资源的最小单位。线程:有独立的 pcb。没有独立的进程地址空间。不受用户登录注销影响。通常采用以 d 结尾的命名方式。某个事件发生或周期性执行某一动作。独享 栈空间(内核栈、用户栈)

2023-03-31 14:20:46 117

原创 线程同步总结

线程同步 pthread_mutex_t pthread_rwlock_t pthread_cond_t sem_t

2023-03-31 11:49:57 144

原创 Windows 0环和3环通信方式

0环与3环通讯

2022-08-03 19:54:40 507

原创 ProcessHaceker 进程模块枚举

进程模块枚举

2022-07-29 17:11:04 275

原创 应用层枚举内核模块

EnumKernelModules

2022-07-20 16:50:07 280

原创 ProcessHaceker 之进程枚举(一)

processhacker 进程枚举

2022-07-18 17:06:28 244

原创 processhacker queuedlock

processhacker queuedlock

2022-07-12 16:52:25 282

原创 processhacker fastlock 源码分析

processhacker fastlock

2022-07-12 10:23:08 253

原创 内核回调函数

Kernel Callback Functions

2022-07-05 14:53:07 606

原创 获取Windows 操作系统版本

获取windows 操作系统版本

2022-07-01 11:10:23 608

原创 Base64 IDA 代码

IDA base64

2022-06-21 10:24:39 191

原创 使用IOCTL_DISK_GET_LENGTH_INFO获取硬盘大小

使用IOCTL_DISK_GET_LENGTH_INFO获取硬盘大小

2022-05-09 22:56:36 285

原创 避免输入法注入

避免输入法注入

2022-05-02 17:24:22 384

原创 win 获取父进程全路径

开发过程中,记录一下常用的功能,方便查找

2022-05-02 16:58:47 719

原创 临界区死锁和死循环

1.临界区使用CRITICAL_SECTION 结构来保证不会有多个线程重入被保护的代码段实现在用户态的同步机制,相对内核对象来说,开销更小适用于同步同一进程内的多个线程如:CRITICAL_SECTION g_cs;EnterCriticalSection(&g_cs);//以原子方式访问共享资源LeaveCriticalSection(&g_cs);RTL_CRITICAL_SECTION 结构如下:struct RTL_CRITICAL_SECT

2022-01-07 14:20:07 706

原创 建造者模式

1.建造者模式建造者模式,又叫生成器模式,是一种对象构建模式,它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。建造者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。建造者模式的四个角色:Product(产品角色):一个具体的产品对象。 Builder(抽象建造者):创建一个Product对象的各个部件指定的接口/抽象类。 ConcreteBuild

2021-06-23 20:54:35 69

原创 原型模式(Prototype)

1.原型模式(Prototype)原型模式是一种创建型设计模式, 使你能够复制已有对象, 而又无需使代码依赖它们所属的类。所有的原型类都必须有一个通用的接口, 使得即使在对象所属的具体类未知的情况下也能复制对象。 原型对象可以生成自身的完整副本, 因为相同类的对象可以相互访问对方的私有成员变量。原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。通俗的讲就是当需要创建一个新的实例化对象时,我们刚好有一个实例化对象,但是已经存在的实例化对象又不能直接使用。这种情况下拷贝一个现

2021-06-23 17:32:20 115

原创 工厂模式

1.工厂模式工厂方法模式是一种创建型设计模式, 其在父类中提供一个创建对象的方法, 允许子类决定实例化对象的类型。1.1简单工厂模式简单工厂模式是属于创建型模式,是工厂模式的一种。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式。简单工厂模式:定义了一个创建对象的类,由这个类来封装实例化对象的行为。在软件开发中,当我们会用到大量的创建某种、某类或者谋批对象时,就会使用到工厂模式。 /* 关键代码:创建过程在工厂类中完

2021-06-23 16:51:52 65

原创 单例模式(Singleton)

1.单例模式(Singleton)单例是一种创建型设计模式, 让你能够保证一个类只有一个实例, 并提供一个访问该实例的全局节点。单例拥有与全局变量相同的优缺点。 尽管它们非常有用, 但却会破坏代码的模块化特性。在某些其他上下文中, 你不能使用依赖于单例的类。 你也将必须使用单例类。 绝大多数情况下, 该限制会在创建单元测试时出现。实现单例模式必须注意一下几点:单例类只能由一个实例化对象。 单例类必须自己提供一个实例化对象。 单例类必须提供一个可以访问唯一实例化对象的接口。单例模式分

2021-06-23 16:50:32 233

原创 类之间的关系:依赖、泛化、实现、关联、聚合、组合

类之间的关系有:依赖、泛化、实现、关联、聚合、组合。类图的六大关系依赖依赖关系是指类中用到了对方。可以是“类的成员属性”、“方法的返回类型”、“方法接收的参数类型”和“方法中使用到的类”。对应的类图: class PersonServiceBean { private : PersonDao personDao; public: void save(Person person) { }...

2021-06-23 16:49:22 2720

原创 认识设计模式

1.认识设计模式1.1什么是设计模式“每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动”。 ——Christopher Alexander设计模式,就是对经常出现的软件设计问题的成熟解决方案。很多人把设计模式想象成非常高深的概念,实际上设计模式仅仅是对特定问题的一种惯性思维。笔者见过一些学员喜欢抱着一本设计模式的书研究,以期成为一个“高手”,实际上设计模式的理解必须以足够的代码积累量作为基础,最好是经历过某.

2021-06-23 16:40:20 128

原创 CPU-控制寄存器

控制寄存器有5个,分别是Cr0 Cr1 Cr2 Cr3 Cr4Cr1: 保留Cr3:页目录基地址寄存器,用来切换和定位当前正在使用的页表。Cr0 寄存器:结构图:PE 位:启用保护(Protection Enable)标志PE=1 :保护模式PE=0: 实地址模式这个标志仅开启段级保护,而没有启用分页机制若要启用分页机制,那么PE和PG标志都要置位PG 位:分页机制标志PG=1 :开启了分页机制PG=0:未开启分页机制在开启这个标志之前必须..

2021-04-24 23:13:34 1049

原创 段描述符S位,TYPE域

段描述符S位,TYPE域S=1,表示代码段/数据段;S=0,表示系统段。Type 类型描述如下表: 类型域 描述 十进制 数据段 E W A 0 0 0 0 0 只读 ..

2021-03-12 15:35:18 191

原创 代码间的跳转

1.代码间的跳转(段间跳转,非调用门之类的)段间跳转有2 种情况,即要跳转的段是一致代码段还是非一致代码段。同时修改CS与EIP的指令JMP FAR/CALL FAR /RETF /INT /ITETED注意:只改变EIP的指令JMP /CALL /JCC /RET2. 代码间的跳转执行流程JMP 0x20 : 0x00412345 CPU 如何执行这行代码呢 ? (1).段选择子拆分0x20 对应的二进制形式 0000 0000 0010 0000RPL=...

2021-03-11 11:31:18 399

原创 段权限检查

段权限检查DPL 是段的权限属性,要想访问一个数据段,段选择子和CPU当前权限必须高于DPL。DPL:段的权限RPL:段选择子的权限CPL:CPU的权限,当前特权级CPLCPL(Current Privilege Level) :当前特权级 CS和SS中存储的段选择子后2位.3.DPL (Descriptor Privilege Level ) 描述符特权级别DPL存储在段描述符中,规定了访问该段所需要的特权级别是什么。通俗理解 :如果你想访问我,那么你应该具...

2021-03-05 14:45:08 223

原创 进程结构体EPROCESS

1、进程结构体EPROCESS每个windows进程在0环都有一个对应的结构体:EPROCESS 这个结构体包含了进程所有重要的信息。kd> dt _EPROCESS +0x000 Pcb : _KPROCESS +0x078 ProcessLock : _EX_PUSH_LOCK +0x080 CreateTime : _LARGE_INTEGER +0x088 ExitTime : _LARG...

2021-02-01 14:01:17 1774

原创 分析句柄表

一、什么是句柄当一个进程创建或者打开一个内核对象时,将获得一个句柄,通过这个句柄可以访问内核对象。如:CreateMutex、CreateEvent 、CreateThread 等函数就会返回一个HANDLE类行值,这种就叫句柄,对应着一个内核对象。调用CloseHandle 函数对应某个内核对象计数减一,当内核对象计数为0,这个对象就被销毁了。内核对象在内核存储,直接把地址给3环用很不安全,所以微软设计了句柄(HANDLE)给3环使用,句柄是一个整数,它的值除以4是句柄表的下标,通过下标能

2021-01-31 22:07:39 228

原创 Windows 内核(WRK)编译

引子WRK是微软于 2006 年针对教育和学术界开放的Windows内核的部分源码,WRK(Windows Research Kernel)也就是Windows研究内核,在WRK中不仅仅只提供了Windows内核模块的部分代码,其还提供了编译工具,也就是通过这个编译工具,你可以将你的WRK编译成一个EXE文件,也就是内核可执行模块,然后你可以利用这个EXE文件来取代操作系统本身的内核,这样的话,下次开机的时候操作系统所加载的内核就是您编译的那个EXE...

2021-01-31 14:56:47 963

原创 段描述符与段选择子

段描述符与段选择子当写一个段寄存器的时候,只给了一个16位的数,但段寄存器有96位,那剩下的80位从哪里来的?GDT(全局描述符表) 和LDT(局部描述符表)gdt 数组中的每个元素都是一个段描述符。数组的索引号是段选择子。这个 gdt 数组被称为 gdt 表。Gdtr 存储 GDT 表的基址,查看gdt一、段描述符结构如图:BASE: 段基址,由上图中的两部分(BASE 31-24 和 BASE 23-0)组成G:LIMIT的单位,该位 0 表示单位是字节,1表

2021-01-15 15:44:24 2384

原创 段寄存器

一、段寄存器有哪些 ?段寄存器有ES、CS、SS、DS、FS、GS、LDTR、TR共8个。通常我们用汇编读写某一个地址时,如下:Mov dword ptr ds:[0x123846],eax这时我们把eax 的值往地址去写,写的地址是:ds.base + 0x123456二、段寄存器的结构在x86下.我们可以看如下寄存器表示图. 寄存器名称 段选择子(Select) 段属性(Attributes) .

2021-01-15 12:46:20 11099

原创 系统非换页内存池的管理算法

Windows使用了两层内存管理。下层是基于页面的内存管理,仅限于执行体内部使用;上层建立在下层的内存管理工具基础之上,对外提供各种粒度的内存服务。两层结构如图:系统非换页内存池的管理算法MiInitializeNonPagedPool 和MiInitializeNonPagedPoolThresholds 初始化非换页内存池的管理信息。用于存放空闲页面链表头的MmNonPagedPoolFreeListHead 数组。数组的每一项都是一个MMFREE_POOL_ENTRY 结构。ty.

2020-12-30 15:34:21 235

原创 系统换页内存池的管理算法

系统换页内存池的管理算法换页内存池有两个,一个是系统全局范围的,一个是会话空间中的。起始地址分别位MmPagedPoolStart和MiSessionPoolStart。换页内存池有一个数据结构来描述其页面分配状态,定义如下:typedef struct _MM_PAGED_POOL_INFO { PRTL_BITMAP PagedPoolAllocationMap; PRTL_BITMAP EndOfPagedPoolBitmap; PMMPTE FirstPteFo...

2020-12-30 15:32:15 233

原创 执行体内存池的管理算法

执行体内存池的管理算法执行体内存池对象数据结构POOL_DESCRIPTOR,定义如下:typedef struct _POOL_DESCRIPTOR { POOL_TYPE PoolType; ULONG PoolIndex; ULONG RunningAllocs; ULONG RunningDeAllocs; ULONG TotalPages; ULONG TotalBigPages; ULONG Threshold;...

2020-12-30 15:31:20 193

原创 Windows引导过程

Windows引导过程 1 内核加载 在Intel x86系统上,Windows操作系统获得控制首先从硬盘的主引导记录(MBR,Master Boot Record)开始。MBR包含代码和数据,其代码称为引导代码,在系统引导时首先获得控制;MBR的数据时一张分区表,指定了每个分区在磁盘上的位置和大小,以及分区的类型。当MBR的引导代码被执行时,它检查并找到可引导的分区(引导分区),将引导分区的第一扇区(引导扇区)读到内存中。然后MBR的代码将控制权交给引导扇区的代码。引导扇区的代码给Windo.

2020-12-23 18:22:25 872

原创 Windows的用户/内核模式切换

1. Windows的用户模式-内核模式切换Windows用户模式和内核模式的交互流程,如图:以CreateFile 为例,应用程序调用kernel32.dll 的CreateFile来创建文件,CreateFile调用ntdll.dll的存根函数NtCreateFile,然后直接将创建文件的请求转交给内核的NtCreateFile。为了转到内核,ntdll.dll 的KiIntSystemCall或KiFastSystemCall 执行”int 2e”或sysenter指令,切换到内核模式下.

2020-12-23 11:11:32 1482

原创 Intel x86的用户模式-内核模式切换

1 Intel x86的用户模式-内核模式切换Intel x86 提供了“门(gate)”机制允许可执行代码从R3 进入R0 模式,以及从R0返回R3模式。Intel x86 支持调用门(call gate)、陷阱门(trap gate)、中断门(interrupt gate)和任务门(task gate)四种门描述符。Windows 使用中断门来实现模式切换,其中断号为0x2e。意思就是,当应用程序在用户模式下运行时,它通过”int 2e”指令,切换到内核中,IDT(中断描述符表)的0x2e表项指定.

2020-12-22 22:02:01 638

原创 Windows内核中的对象管理

1 Windows内核中的对象管理每个对象都分为对象头和对象体,定义如下:typedef struct _OBJECT_HEADER{ LONG PointerCount; //引用计数 union { LONG HandleCount; //指向该对象的句柄数 PVOID NextToFree; //对象被延迟删除时加入到一条链中 }; POBJECT_TYPE Type; /...

2020-12-17 10:52:08 375

原创  Windows子系统(GUI)

Windows子系统1 Windows子系统结构Windows子系统结构,如图:Windows子系统有用户模式和内核模式组件。列出这些组件的职责:a. 内核模块win32k.sys。是Windows内核的扩展。包含两大功能组成部分:窗口管理器(window manager): 负责控制窗口显示、管理屏幕输出、手机来自键盘鼠标和其他设备的输入,以及将用户信息传递给应用程序。 GDI:图形输出设备的函数库。b.图形设备驱动程序。c.Windows环境子系统进程(csrss.e..

2020-12-15 11:42:17 4835 3

原创  进程和线程的结束

进程和线程的结束在执行体层,线程的终止函数是NtTerminateThread,内部调用PspTerminateThreadByPointer完成终止处理。系统线程的终止函数是PsTerminateSystemThread,内部调用PspTerminateThreadByPointer完成终止处理。三个函数原型如下:NTSTATUSNtTerminateThread(_in_opt HANDLE ThreadHandle,_in NTSTATUS ExitStatus);N.

2020-12-12 16:45:52 693

WRK1.2 source

集成sln可VS直接编译(支持vs2008),方便查看代码 WRK 是微软于 2006 年针对教育和学术界开放的 Windows 内核的部分源码, WRK(Windows Research Kernel)也就是 Windows 研究内核。 压缩包中包含了相关的文档,详细介绍了 WRK 的编译并加载该内核模块的过程。

2020-02-04

Windows-网络与通信程序设计(高清).pdf

Windows-网络与通信程序设计,第2版,高清版

2016-04-05

TheShellcodersHandbook.pdf

The+Shellcoders+Handbook

2014-10-29

OD 1.1 反汇编

OD 反汇编工具,地球人都知道!!!OD 反汇编工具,地球人都知道!!!

2014-10-29

MiniFilter教程

文件过滤驱动,文件过滤驱动 MiniFilter教程

2014-07-31

[高端清晰]-深度探索C++对象模型

[高端清晰]-深度探索C++对象模型 [高端清晰]-深度探索C++对象模型

2011-06-21

计算机系统结构课后习题

计算机系统结构课后习题 计算机系统结构课后习题

2010-11-22

linux 宝典 linux 宝典linux 宝典

linux 宝典 学习linux的入门书籍

2010-10-28

vc资料积累教程.rar

vc资料积累教程.rar

2010-04-30

Windows内核分析.rar Windows内核分析.rar

Windows内核分析.rar Windows内核分析.rar

2010-04-30

Windows网络编程技术》中文版PDF格式.rar

Windows网络编程技术》中文版PDF格式.rar

2010-04-30

WINDOWS2000.API.超级宝典+404个源代码.rar

WINDOWS2000.API.超级宝典+404个源代码.rar WINDOWS2000.API.超级宝典+404个源代码.rar

2010-04-30

Windows核心编程(第5版).pdf (前6章)

Windows核心编程(第5版).pdf (前6章) Windows核心编程(第5版).pdf (前6章)

2010-04-30

天书夜读 从汇编到windows内核.rar

天书夜读 从汇编到windows内核.rar 天书夜读 从汇编到windows内核.rar

2010-04-30

Windows核心编程(第五版)源码.rar

Windows核心编程(第五版)源码.rar Windows核心编程(第五版)源码.rar

2010-04-30

“操作系统”十大题型算法全实现.rar

北大上机“操作系统概论”十大题型算法全实现 里面的算法我全部通过测试,与以前的有些错误我全部修正过......

2010-02-05

“操作系统概论”十大题型算法全实现”

北大上机“操作系统概论”十大题型算法全实现 里面的算法我全部通过测试,与以前的有些错误我全部修正过......

2010-02-03

深入解析WINDOWS操作系统(第4版).part1.rar

深入解析WINDOWS操作系统(第4版).part1.rar 这是第一部分,要与其他部分结合下载,才能解压,其他部分资源分都为零

2010-02-01

Windows文件系统过滤驱动开发教程(第二版).pdf

Windows文件系统过滤驱动开发教程(第二版).pdfWindows文件系统过滤驱动开发教程(第二版).pdf

2010-01-26

c与c++嵌入式系统编程.pdf

c与c++嵌入式系统编程.pdf 对嵌入式入门很有帮助

2010-01-26

深入解析Windows操作系统(第四版)

深入解析Windows操作系统(第四版) 深入解析Windows操作系统(第四版) 深入解析Windows操作系统(第四版) 深入解析Windows操作系统(第四版)

2010-01-26

C++编程艺术.pdf

C++编程艺术.pdf C++编程艺术.pdf C++编程艺术.pdf C++编程艺术.pdf C++编程艺术.pdf C++编程艺术.pdf

2009-12-23

More+Effective+C++.pdf

More+Effective+C++.pdfMore+Effective+C++.pdfMore+Effective+C++.pdfMore+Effective+C++.pdfMore+Effective+C++.pdfMore+Effective+C++.pdfMore+Effective+C++.pdfMore+Effective+C++.pdf

2009-12-23

高质量c++c编程指南.pdf

高质量c++c编程指南.pdf高质量c++c编程指南.pdf高质量c++c编程指南.pdf高质量c++c编程指南.pdf高质量c++c编程指南.pdf高质量c++c编程指南.pdf高质量c++c编程指南.pdf高质量c++c编程指南.pdf高质量c++c编程指南.pdf高质量c++c编程指南.pdf

2009-12-23

\C++必知必会.pdf

\C++必知必会.pdf\C++必知必会.pdf\C++必知必会.pdf\C++必知必会.pdf

2009-12-23

c+c++程序员面试宝典.CHM

c+c++程序员面试宝典.CHM c+c++程序员面试宝典.CHM c+c++程序员面试宝典.CHM

2009-12-23

windows核心编程\Windows via C_C++(普通下载).chm

windows核心编程\Windows via C_C++(普通下载).chm

2009-11-17

VC++ 编程指南.chm VC++ 编程指南.chm

VC++ 编程指南.chm VC++ 编程指南.chm vVC++ 编程指南.chm

2009-11-17

CSDN VC编程经验总结 CSDN VC编程经验总结

CSDN VC编程经验总结 CSDN VC编程经验总结 CSDN VC编程经验总结 CSDN VC编程经验总结

2009-11-17

薄冰英语语法大全,薄冰英语语法大全

薄冰英语语法大全,薄冰英语语法大全,薄冰英语语法大全,薄冰英语语法大全

2009-11-17

vss教程,对代码管理非常有用

vss教程,对代码管理非常有用,vss教程,对代码管理非常有用

2009-08-05

华为c++编程规范,华为c++编程规范

华为c++编程规范,帮助你养成一个良好的编程习惯

2009-08-05

windows程序设计的源代码

windows程序设计的源代码,超级经典

2009-06-18

MFC 类库详解(.chm)

MFC 类库详解.chm,对MFC讲解非常透彻

2009-06-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除