内核、驱动
文章平均质量分 74
better0332
这个作者很懒,什么都没留下…
展开
-
CPU同步机制漫谈
张银奎 yinkui.zhang@gmail.com更快是计算机世界的一个永恒主题。要做到更快有两个方向:一是提高串行执行的速度,二是并行计算(Parallel Computing)。并行计算又可分为同一CPU内部多个流水线间的并行、同一个系统内多个CPU间的并行、和同一个网络中多个计算机系统间的并行。当并行运行的多个任务彼此无关,互不依赖时,整个系统的性能是最高的。但在现实的并行计算中,转载 2008-12-29 11:48:00 · 5316 阅读 · 0 评论 -
Copy-On-Write机制,全局hook(一)
我本来想在ring3下全局hook,大约有这么几种方法:1: 用SetWindowsHookEx,安装的钩子类型,如WH_GETMESSAGE,WH_KEYBOARD等,但这种方法只能挂接系统中的所有GUI线程。2: 还有一种通过插入注册表来实现 HKEY_LOCAL_MACHINE/Software/Microsoft/Windows NT/CurrentVersion/Windows/AppInit_DLLs,这种方法简单,但是还是只能挂钩GUI 程序,并且这个键值已经被广大HI原创 2010-09-28 18:29:00 · 6647 阅读 · 0 评论 -
Windows APC机制(二)
上文中讲到投递User Mode APCs是很特殊的,道理很简单,因为User Mode APC是ring3下的回调函数,显然ring0中的KiDeliverAPC()不能像Kernel Mode APC那样直接call,必须要先回到ring3环境下。当然不能像普通情况那样返回(否则就回到ring3系统调用的地方了),只有一个办法,那就是修改TrapFrame ,欺骗系统返回“APC回调函数”!K原创 2009-06-29 13:32:00 · 6115 阅读 · 0 评论 -
Windows APC机制(一)
异步过程调用(APCs) 是NT异步处理体系结构中的一个基础部分,理解了它,对于了解NT怎样操作和执行几个核心的系统操作很有帮助。1) APCs允许用户程序和系统元件在一个进程的地址空间内某个线程的上下文中执行代码。2) I/O管理器使用APCs来完成一个线程发起的异步的I/O操作。例如:当一个设备驱动调用IoCompleteRequest来通知I/O管理器,它已经结束处理一个异步I/原创 2009-06-23 18:11:00 · 13251 阅读 · 1 评论 -
Windows XP/2003 系统调用(二)
上文说到sysenter后进入内核空间后的函数是_KiFastCallEntry,在/WRK-v1.2/base/ntos/ke/i386/trap.asm中,里头有好多定义常量、宏、结构,真是麻烦!先帖几个结构上来:typedef struct _KTRAP_FRAME {//// Following 4 values are only used and defined for原创 2009-06-19 16:36:00 · 2119 阅读 · 0 评论 -
ReactOS debug(调试)
看了N多ReactOS代码,总想调试一下,于是到wiki上去看了一下关于debug的方面的资料。主要有三种调试方式:Kdbg、GDB、WinDBG(http://www.reactos.org/wiki/Debugging)l Kdbg方式这是ReactOS内建的调试机制,默认就是这种。但是Kdbg的调试客户端是什么呢?网上有篇文章说用fDebug,感觉太麻烦原创 2009-08-20 16:24:00 · 6629 阅读 · 2 评论 -
Windows XP/2003 系统调用(一)
今天在这里主要想了解一下Windows如何从ring3下的Win32 API转到ring0下的Kernel Routine。以NtReadFile为例:kd> u ntdll!NtReadFile (Win 2003 SP1)ntdll!ZwReadFile:7c821b78 b8bf000000 mov eax,0BFh;(系统调用号)7c821b7d ba00原创 2009-06-15 10:10:00 · 2969 阅读 · 0 评论 -
几个驱动开发环境
VS2008、DDK XP和DDKWizard搭建驱动开发环境:http://bbs.pediy.com/showthread.php?t=69395QuickSYS:http://www.codeproject.com/KB/applications/quicksys.aspx?df=100&forumid=2791&exp=0&select=583645EasySYS:ht原创 2008-12-15 15:36:00 · 2294 阅读 · 1 评论 -
ring0学习任务门
rootkit ring3进ring0之门系列[三] -- 任务门http://bbs.pediy.com/showthread.php?t=62510来练习一下^^先在GDT表中找出所有的TSS段描述符 0028 80042000 000020AB 0 P 1b 32-Bit TSS (Busy)//0050 8054A300 00000068 0 P原创 2008-12-11 10:17:00 · 1973 阅读 · 0 评论 -
StartIO/CancelIO
驱动程序中的StartIO,CancelIO比较复杂,也很可能出错。翻了一下WDK,删除了一些无关紧要的code,贴在这里方便以后查阅:BOOLEANIoCancelIrp( IN PIRP Irp ){ PDRIVER_CANCEL cancelRoutine; KIRQL irql; BOOLEAN returnV原创 2008-12-30 11:30:00 · 2845 阅读 · 2 评论 -
Copy-On-Write机制,全局hook(二)
如果仔细阅读前一篇文章的话,就知道只要PTE的write(bit 1)位置1,就废掉了Copy-On-Write机制(解释一下,因为不可能产生异常了嘛),为了不影响系统的运行,我找了ntdll的文件头(7c800000)做实验:!process 0 0.PROCESS 811ae9e0 SessionId: 0 Cid: 015c Peb: 7ffde000 ParentCid: 036c DirBase: 0997f000 ObjectTable: e15114原创 2010-09-29 19:56:00 · 4244 阅读 · 0 评论