随笔分类 - window系统底层
摘要:内存映射文件原理 内存映射文件是通过在虚拟地址空间中预留一块区域,然后通过从磁盘中已存在的文件为其调度物理存储器,访问此虚拟内存空间就相当于访问此磁盘文件了。 内存映射文件实现过程 HANDLE hFile = CreateFile(...); //创建文件对象 HANDLE hFileMappin
阅读全文
摘要:管道的分类 管道其实际就是一段共享内存,只不过Windows规定需要使用I/O的形式类访问这块共享内存,管道可以分为匿名管道和命名管道。 匿名管道就是没有名字的管道,其支持单向传输数据,如果需要双向传送数据就需要创建两条管道。而且其只支持具有父子关系的两个进程进行通信,不能在网络间进行通信。 命名管
阅读全文
摘要:__kernel_entry NTSTATUS NtQuerySystemInformation( SYSTEM_INFORMATION_CLASS SystemInformationClass, PVOID SystemInformation, ULONG SystemInformationLen
阅读全文
摘要:编译与链接过程 编译过程是源程序先被编译器编译为汇编程序,然后再由汇编器将汇编程序汇编成目标文件。 链接过程是链接器将目标文件与需要使用的库文件链接成可执行程序。 静态链接和动态链接 静态链接 静态链接是说在链接器链接目标文件与库文件时将目标代码与所引用的库文件中的导出函数代码都整合到可执行文件中,
阅读全文
摘要:操作系统中为了解决进程间同步问题提出了用信号量机制,信号量可分为四种类型分别是互斥型信号量,记录型信号量,AND型信号量,信号量集。 互斥型信号量 互斥型信号量是资源数量为1的特殊的记录型信号量。表示对于一类资源且这类资源的数量为1,也就是说任何时候只能有一个进程得到这个资源,其余进程想要获得此资源
阅读全文
摘要:前言 PE文件中的输入表含有三个重要结构IID,INT,IAT。PE文件为需要加载的DLL文件创建一个IID结构,一个DLL与一个IID对应。INT是输入名称表,IAT输入地址表,在没有绑定输入的情况下磁盘中的文件INT与IAT相同。如果有绑定输入的话因为绑定输入的函数其磁盘文件中的IAT项就已经是
阅读全文
摘要:前言 windows的SEH结构化异常处理是基于线程的,传统的SEH结构化异常会基于堆栈形成一条包含异常回调函数地址的链(SEH链)。而fs:[0](TEB的第一个字段)指向这条链的链头,当有异常发生时并产送到SEH处时其会从fs:[0]开始遍历这条链。如果那个链结点的回调函数能正确处理异常则程序会
阅读全文
摘要:INT3断点 INT3断点是利用0Xcc指令实现的,cpu在执行0xcc指令时会引发断点异常调试器会捕捉这个异常。 INT3断点引发的异常属于陷阱型异常,在执行完0xcc指令后eip指向下一条指令。但是系统对int3有特殊处理,当异常第一次分发时如果调试器没有处理那么第二次异常分发之前系统会令eip
阅读全文
摘要:中断 中断(硬件中断)是cpu为了响应外部突发事件而引入的一种机制。在没有中断机制之前cpu需要频繁查询外部设备的状态来与外部设备进行通信,而有了中断机制后,只有当外部设备要求cpu进行处理时cpu才会与其进行通信,这就大大提高了cpu的效率。 中断分类 可屏蔽中断 可屏蔽中断是为了使在执行某些任务
阅读全文
摘要:80386cpu是8086cpu的升级版,其具有32位的寄存器。(32根地址线和32根数据线) 8086cpu其是16位的寄存器但是其地址线有20根,其寻址范围为2的20次方,但是有一个16位的寄存器没办法表示一个20位的2进制数,所以8086cpu的制造商设计了一个地址加法器来用两个16位的寄存器
阅读全文