• windows 句柄表

    https://www.vergiliusproject.com/ 在 Windows 操作系统中,句柄(Handle) 是一种 用于标识和管理系统对象的抽象引用。它本质上是一个 索引值或小整数,由内核分配给用户态程序,用户通过它间接访问和操作内核对象。 在内核中,句柄是通过句柄表(Handle Table)管理的: 用户得到的是一个 整数句柄值(HANDLE)。 该值是句柄表的一个索引,...
  • windows 保护模式

    参考 英特尔开发手册 CPU 的模式x86 CPU 的三个主要模式分别是实模式(Real Mode)、保护模式(Protected Mode)和虚拟8086模式(Virtual 8086 Mode)。它们各自的功能和特点如下: 实模式(Real Mode) 简介 :实模式是x86架构最早的工作模式,与8086 CPU的工作方式相同。 内存管理 :在实模式下,CPU可以访问1MB的内存。内存地...
  • windows 用户态逆向开发

    基础VS 导入第三方 lib 库待更新 获取进程句柄这里指的是如何通过进程名来获取目标进程 id 。这样做的好处是代码更具有通用性,因为通常每次程序启动 pid 会变化但进程名不变。 CreateToolhelp32Snapshot 函数用于创建一个包含系统中进程、线程、模块或堆的快照。我们使用它来获取当前系统中所有进程的快照。 1234cppCopy codeHANDLE CreateTo...
  • windows 系统调用

    https://www.vergiliusproject.com/ R3 调用过程这里以 OpenProcess 为例分析 Windows API 在 3 环部分的逻辑。 12345678910111213[User App 调用 OpenProcess] │ ▼kernel32.dll!OpenProcess(导出 API 函数,实际上是个 IAT 跳板 thunk...
  • 异架构相关

    环境搭建qemu 仿真 QEMU(Quick Emulator) 是一个开源的通用虚拟化和仿真框架,该框架主要有如下分类: qemu-user:提供用户态的简单仿真。适用于对一些相对简单程序的进行仿真。 qemu-system:提供完整的系统级仿真。例如有些固件的运行需要一整套复杂的环境,单纯使用 qemu-user 仿真比较麻烦并且容易出问题,因此一个比较简单的方法是把整个 IOT 设...
  • windows 进程线程

    https://www.vergiliusproject.com/ KPCR12345678910111213141516171819202122232425262728293031323334353637383940414243444546// 0x3748 bytes (sizeof)struct _KPCR{ union { struct ...
  • windows 驱动基础

    Windows 基础内核对象内核对象(Kernel Object),是 Windows 内核里对各种内核资源进行统一管理、统一命名、统一访问控制、统一生命周期控制的一种抽象机制。 设计思想在没有内核对象之前,Windows 内核里存在着大量不同类型的资源(如设备,文件,进程线程等),这些资源每种结构体都不一样,但是每种都要支持用户态访问(有名字,有权限控制,有引用计数,有安全策略)。 因此 ...
1345