- 博客(141)
- 资源 (37)
- 收藏
- 关注
原创 十个有用的内核 API
RtlPcToFileName() 和 RtlPcToFilePath() 演练定位在 PsLoadedModuleList 的 KLDR_DATA_TABLE_ENTRY 结构列表,并确定给定地址 (Pc) 是否属于 KLDR_DATA_TABLE_ENTRY 中的盘区。根据 Buffer 参数中传递的结构类型,UnitSize 参数可以是 sizeof(RTL_MODULE_BASIC_INFO) 或 sizeof(RTL_MODULE_EXTENDED_INFO)。
2024-10-17 14:03:36
827
原创 ImageMagick 给图片添加文字,设置颜色、倾斜、透明度,铺满图片
ImageMagick 给图片添加文字,设置颜色、倾斜、透明度,铺满图片
2024-08-21 16:39:15
398
原创 守护进程和线程
共享 ./text./data ./rodataa ./bsss heap ---> 共享【全局变量】( errno)daemon 进程。通常运行与操作系统后台,脱离控制终端。一般不与用户直接交互。ps -Lf 进程 id ---> 线程号。LWP --》 cpu 执行的最小单位。进程:有独立的 进程地址空间。分配资源的最小单位。线程:有独立的 pcb。没有独立的进程地址空间。不受用户登录注销影响。通常采用以 d 结尾的命名方式。某个事件发生或周期性执行某一动作。独享 栈空间(内核栈、用户栈)
2023-03-31 14:20:46
175
原创 临界区死锁和死循环
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
962
原创 建造者模式
1.建造者模式建造者模式,又叫生成器模式,是一种对象构建模式,它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。建造者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。建造者模式的四个角色:Product(产品角色):一个具体的产品对象。 Builder(抽象建造者):创建一个Product对象的各个部件指定的接口/抽象类。 ConcreteBuild
2021-06-23 20:54:35
99
原创 原型模式(Prototype)
1.原型模式(Prototype)原型模式是一种创建型设计模式, 使你能够复制已有对象, 而又无需使代码依赖它们所属的类。所有的原型类都必须有一个通用的接口, 使得即使在对象所属的具体类未知的情况下也能复制对象。 原型对象可以生成自身的完整副本, 因为相同类的对象可以相互访问对方的私有成员变量。原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。通俗的讲就是当需要创建一个新的实例化对象时,我们刚好有一个实例化对象,但是已经存在的实例化对象又不能直接使用。这种情况下拷贝一个现
2021-06-23 17:32:20
162
原创 工厂模式
1.工厂模式工厂方法模式是一种创建型设计模式, 其在父类中提供一个创建对象的方法, 允许子类决定实例化对象的类型。1.1简单工厂模式简单工厂模式是属于创建型模式,是工厂模式的一种。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式。简单工厂模式:定义了一个创建对象的类,由这个类来封装实例化对象的行为。在软件开发中,当我们会用到大量的创建某种、某类或者谋批对象时,就会使用到工厂模式。 /* 关键代码:创建过程在工厂类中完
2021-06-23 16:51:52
119
原创 单例模式(Singleton)
1.单例模式(Singleton)单例是一种创建型设计模式, 让你能够保证一个类只有一个实例, 并提供一个访问该实例的全局节点。单例拥有与全局变量相同的优缺点。 尽管它们非常有用, 但却会破坏代码的模块化特性。在某些其他上下文中, 你不能使用依赖于单例的类。 你也将必须使用单例类。 绝大多数情况下, 该限制会在创建单元测试时出现。实现单例模式必须注意一下几点:单例类只能由一个实例化对象。 单例类必须自己提供一个实例化对象。 单例类必须提供一个可以访问唯一实例化对象的接口。单例模式分
2021-06-23 16:50:32
284
原创 类之间的关系:依赖、泛化、实现、关联、聚合、组合
类之间的关系有:依赖、泛化、实现、关联、聚合、组合。类图的六大关系依赖依赖关系是指类中用到了对方。可以是“类的成员属性”、“方法的返回类型”、“方法接收的参数类型”和“方法中使用到的类”。对应的类图: class PersonServiceBean { private : PersonDao personDao; public: void save(Person person) { }...
2021-06-23 16:49:22
3029
原创 认识设计模式
1.认识设计模式1.1什么是设计模式“每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动”。 ——Christopher Alexander设计模式,就是对经常出现的软件设计问题的成熟解决方案。很多人把设计模式想象成非常高深的概念,实际上设计模式仅仅是对特定问题的一种惯性思维。笔者见过一些学员喜欢抱着一本设计模式的书研究,以期成为一个“高手”,实际上设计模式的理解必须以足够的代码积累量作为基础,最好是经历过某.
2021-06-23 16:40:20
206
原创 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
1519
原创 段描述符S位,TYPE域
段描述符S位,TYPE域S=1,表示代码段/数据段;S=0,表示系统段。Type 类型描述如下表: 类型域 描述 十进制 数据段 E W A 0 0 0 0 0 只读 ..
2021-03-12 15:35:18
284
原创 代码间的跳转
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
497
原创 段权限检查
段权限检查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
321
WRK1.2 source
2020-02-04
WINDOWS2000.API.超级宝典+404个源代码.rar
2010-04-30
深入解析WINDOWS操作系统(第4版).part1.rar
2010-02-01
深入解析Windows操作系统(第四版)
2010-01-26
高质量c++c编程指南.pdf
2009-12-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人