记录学习日常
WaitForSingleObject WaitForSingleObject
WaitForSingleObject由于进程间通信必须凭借某个已打开的对象才能发生,所以Windows调用NtWaitForSingleObject和NtWaitForMultipleObjects使线程在对象上等待,NtWaitForM
2022-07-05
ReadProcessMemory调用过程 ReadProcessMemory调用过程
ReadProcessMemory调用过程基本用法根据进程读句柄取内存空间 BOOL ReadProcessMemory( HANDLE hProcess, //进程句柄 LPCVOID lpBaseAddress, //
2022-07-02
Windows APC机制 Windows APC机制
Windows APC机制APC(Asynchronous Procedure Call),即异步过程调用,也称不确定调用。Windows的APC机制本质上是一种对于应用软件(线程)的“软件中断”机制。与DPC不同,APC是针对线程的,每个
2022-06-24
KiSwapThread线程切换 KiSwapThread线程切换
KiSwapThread线程切换KiSwapThread是通过切换线程上下文来实现线程切换的函数 KiSwapThread主函数0040AB8A mov edi, edi 0040AB8C push
2022-05-23
Windows进程和线程 Windows进程和线程
Windows进程和线程众所周知,进程是空间,线程是任务 进程结构体进程有两个结构体_kprocess和_eprocess,_eprocess继承了_kprocess 在Windbg中可以使用dt _kprocess [ADDR] 和dt
2022-05-14
编写驱动Hook SSDT 编写驱动Hook SSDT
编写驱动Hook SSDT查找函数偏移要hook SSDT中的函数,就必须先找到这个函数在SSDT表中的偏移才能修改这个偏移上的地址 随意打开一个程序,下个API调用时候的断点,这里下writeFile的断点 F8调试指导出现调用ntdl
2022-05-14
int 0x2e和sysenter int 0x2e和sysenter
int 0x2e和sysenterint 0x2eint 0x2e是一个自陷(Trap)指令,告诉CPU将用户态切换成系统态。从TSS中装入本线程的系统空间堆栈段寄存器SS和堆栈指针寄存器ESP,再将SS、ESP、EFLAGS、CS、EIP
2022-04-29
TLB和控制寄存器 TLB和控制寄存器
TLB和控制寄存器TLBTLB(Translation Lookaside Buffer)中文一般翻译为转译后备缓冲区,也就是页表缓存,用来存放线性地址相对应的物理地址及其相关信息。TLB是在MMU中包括的一段小的缓存,比内存快了十几倍不等
2022-04-27
MIT 6.828环境搭建及Lab1运行 MIT 6.828环境搭建及Lab1运行
MIT 6.828 环境搭建及Lab1运行最近学了点Windows保护模式对操作系统底层有些感兴趣了,边学Windows边开个新坑吧,6.828的资料在网上不算难找,慢慢填坑 运行环境搭建搭建环境的系统:Ubuntu18.04.6 安装编译
2022-04-23
Windows分页 Windows分页
Windows分页Windows32主要有两种分页方式,10-10-12 和 2-9-9-12,加起来就是32位,其中2,9,10,12代表2的x次方 10-10-12分页 根据因特尔手册给出的图可以看出,当前程序的页目录索引存在CR3中,
2022-04-20
1 / 2