Notes 27.远程线程注入 注入 所谓注入就是在第三方进程不知道或者不允许的情况下将模块或者代码写入对方进程空间,并设法执行的技术 已知注入方式 远程线程注入,APC注入、消息钩子注入、注册表注入、导入表注入、输入法注入等等。 流程 思路:在进程A中创建线程,将线程函数指向为:LoadLibrary() 具体实现步骤 在进程A中分配空间,存储“A… 2026-8-2 字数 236 阅读全文
Notes 23.静态链接库 C 语言调用静态库 静态库是把多个目标文件( .o )打包成一个归档文件,链接时直接把代码复制进可执行文件。下面以最简单的例子说明整个过程。 1. 编写库源码 mylib.h (头文件,声明接口): mylib.c (实现): 2. 生成静态库 Linux / macOS(gcc + ar): Windows(MSVC… 2026-8-1 字数 347 阅读全文
Notes 24.动态链接库 动态链接库 动态链接库是微软公司在微软Windows操作系统中,实现共享函数库的一种方式。 这些库函数的扩展名是”.dll”、”.ocx”。 2026-8-1 字数 68 阅读全文
Notes 21.文件系统 文件系统 文件系统是操作系统用于管理磁盘上文件的方法和数据结构;简单点说就是在磁盘上如何组织文件的方法。 以32位系统为例 NTFS FAT32 磁盘分区容量 2T(2048G) 32G 单个文件容量 4G以上 最大4G EFS加密 支持 不支持 磁盘配额 支持 不支持 卷相关API 目录相关API 文件相关API 2026-7-30 字数 139 阅读全文
Notes 17.子窗口 子窗口控件 WINODWS提供了几个预定义的窗口类以方便我们的使用,我们一般就它们叫做子窗口控件,简称控件。 空间会自己处理消息,并在自己状态发生时通知父窗口 预定义的控件有 按钮、复选框、编辑框、静态字符串标签和滚动条等 2026-7-29 字数 107 阅读全文
Notes 18.虚拟内存与物理内存 虚拟内存与物理内存的关系 进程内存(虚拟内存)空间的地址划分 分区 x86 32位Windows 空指针赋值区 0x00000000-0x00000FFFF 用户模式区 0x00010000-0x7FFEFFFFF 64KB禁入区 0x7FFF0000-0x7FFFFFFFF 内核 0x80000000-FFFFFFF… 2026-7-29 字数 302 阅读全文
Notes 19.私有内存的申请与释放 申请内存的两种方式 通过VirtualAlloc/VirtualAllocEx申请的Private Memory 通过CreateFileMapping映射的Mapped Memory 堆与栈 2026-7-29 字数 91 阅读全文
Notes 13.窗口的本质 窗口的本质 win32k.sys模块实现图形界面、消息管理 ntoskrnl.exe模块实现进程、线程、内存管理等 GDI 图形设备接口 设备对象HWND:画在哪里? DC(设备上下文,Device Contexts) 图形对象 图形对象 作用 画笔(Pen) 影响线条,包括颜色、粗细、虚实、箭头形状等 画刷(Brus… 2026-7-27 字数 220 阅读全文
Notes 14.消息队列 消息 当我们点击鼠标的时候,或者当我们按下键盘的时候,操作系统都要把这些动作记录下来,存储到一个结构体中,这个结构体就是消息 消息队列 每个线程只有一个消息队列 窗口与线程 2026-7-27 字数 82 阅读全文
Notes 11.互斥体 互斥体 互斥体与线程锁的区别 线程锁只能用于单个进程间的线程控制 互斥体可以设定等待超时,但线程锁不能 线程意外终结时,Mutex可以避免无限等待 Mutex效率没有线程锁高 2026-7-26 字数 82 阅读全文