摘要: 消息与钩子众所周知,Windows系统是消息驱动的,现在我们就来看Windows的消息机制. 早期的Windows的窗口图形机制是在用户空间实现的,后来为了提高图形处理效率,将这部分移入内核空间,在Win32k.sys模块中实现。这个模块作为一个扩展的内核模块,提高了... 阅读全文
posted @ 2018-12-17 22:13 jadeshu 阅读(553) 评论(0) 推荐(0) 编辑
摘要: 基于同步对象的等待、唤醒机制:一个线程可以等待一个对象或多个对象而进入等待状态(也叫睡眠状态),另一个线程可以触发那个等待对象,唤醒在那个对象上等待的所有线程。一个线程可以等待一个对象或多个对象,而一个对象也可以同时被N个线程等待。这样,线程与等待对象之间是多对多的关... 阅读全文
posted @ 2018-12-17 22:11 jadeshu 阅读(338) 评论(1) 推荐(0) 编辑
摘要: APC:异步过程调用。这是一种常见的技术。前面进程启动的初始过程就是:主线程在内核构造好运行环境后,从KiThreadStartup开始运行,然后调用PspUserThreadStartup,在该线程的apc队列中插入一个APC:LdrInitializeThunk,... 阅读全文
posted @ 2018-12-17 22:01 jadeshu 阅读(1164) 评论(0) 推荐(0) 编辑
摘要: 本篇主要讲述进程的启动过程、线程的调度与切换、进程挂靠进程的启动过程:BOOL CreateProcess( LPCTSTR lpApplicationName, // LPTSTR lpCommandLine, ... 阅读全文
posted @ 2018-12-17 21:59 jadeshu 阅读(1293) 评论(0) 推荐(1) 编辑
摘要: 写过Windows应用程序的朋友都常常听说“内核对象”、“句柄”等术语却无从得知他们的内核实现到底是怎样的, 本篇文章就揭开这些技术的神秘面纱。常见的内核对象有:Job、Directory(对象目录中的目录)、SymbolLink(符号链接),Section(内存映射... 阅读全文
posted @ 2018-12-17 21:56 jadeshu 阅读(938) 评论(0) 推荐(0) 编辑
摘要: 32位系统中有4GB的虚拟地址空间每个进程有一个地址空间,共4GB,(具体分为低2GB的用户地址空间+高2GB的内核地址空间)各个进程的用户地址空间不同,属于各进程专有,内核地址空间部分则几乎完全相同虚拟地址如0x11111111, 看似这8个数字是一个整体,其实是... 阅读全文
posted @ 2018-12-17 21:55 jadeshu 阅读(745) 评论(0) 推荐(0) 编辑
摘要: Windows的地址空间分用户模式与内核模式,低2GB的部分叫用户模式,高2G的部分叫内核模式,位于用户空间的代码不能访问内核空间,位于内核空间的代码却可以访问用户空间一个线程的运行状态分内核态与用户态,当指令位... 阅读全文
posted @ 2018-12-17 21:42 jadeshu 阅读(628) 评论(0) 推荐(0) 编辑
摘要: Windows的地址空间分用户模式与内核模式,低2GB的部分叫用户模式,高2G的部分叫内核模式,位于用户空间的代码不能访问内核空间,位于内核空间的代码却可以访问用户空间 一个线程的运行状态分内核态与用户态,当指令位于用户空间时,就表示当前处于内核态,当指令位于内核空间时,就处于内核态. 一个线程由用 阅读全文
posted @ 2018-12-17 21:42 jadeshu 阅读(417) 评论(0) 推荐(0) 编辑
摘要: 本文说明:这一系列文章(笔记)是在看雪里面下载word文档,现转帖出来,希望更多的人能看到并分享,感谢原作者的分享精神。 说明 本文结合《Windows内核情景分析》(毛德操著)、《软件调试》(张银奎著)、《Windows核心编程》、《寒江独钓-Windows内核安全编程》、《Windows PE权 阅读全文
posted @ 2018-12-17 21:36 jadeshu 阅读(1238) 评论(0) 推荐(0) 编辑
摘要: 1.当工作需要直流电,而给的是交流电时,这时候需要整流电路; 单向半波整流电路 2.当电路二极管正偏导通通电时,形成证半周期波形3.当二极管反向截止时,如下图 4.这样的过程已很高的频率交替进行,于是便得到... 阅读全文
posted @ 2018-12-17 19:12 jadeshu 阅读(818) 评论(0) 推荐(0) 编辑
摘要: 首先需要您在网上下载NASM编译器,可以将汇编编译为二进制文件 1.写一段汇编代码在屏幕上打印一段字符,可以运行的!并进行nasm为二进制文件,如下"test.asm" 该段汇编主要是向显卡循环显示一个一个字符,最后取值为0就跳转fin执行HLT让CPU睡眠,死循环! 要显示一个字符,int 0x1 阅读全文
posted @ 2018-12-17 00:31 jadeshu 阅读(524) 评论(0) 推荐(0) 编辑