2012年2月24日
摘要: 事件追踪(ETW)Windows提供了统一的跟踪和记录事件的机制,称为ETW。用户模式的应用程序和内核模式的驱动程序都可以使用ETW来记录事件。ETW是直接由内核支持的事件记录机制,在它的框架结构中,共有三种组件:控制器(controller)。负责启动、停止或配置事件记录会话提供者(provider)。负责向ETW注册自己的事件类,并接受控制器的命令,以便启动或停止它们所负责的事件类的记录过程消费者(consumer)。负责有针对性地读取它们想要的事件数据,选择一个活多个记录会话。它们既可以实时地接收ETW缓冲区中的数据,也可以接收日志文件中的事件数据。Windows内置了一个内核日志记录器 阅读全文
posted @ 2012-02-24 20:40 Chenny Chen 阅读(762) 评论(0) 推荐(0) 编辑
  2012年2月23日
摘要: 注册表和配置管理器Windows操作系统提供了被称为“注册表”的中心存储设施作为系统的配置和管理中心,应用程序和内核通过访问注册表来读写各种设置。Windows提供了一些API供应用程序访问注册表,这些API函数在接到注册表访问请求之后,当它们转发给内核的系统服务。在内核中,执行体包含一个成为“配置管理器”的组件,它是注册表的真正实现。注册表是一组成为储巢(hive)的文件构成的,每个储巢文件内部都包含了一个树状层次结构。Windows注册表是一个树状结构,每个节点是一个键(key)或值(value)。键是一个容器,可以包含其他的键(称为子键)和值。值存储的是数据。注册表的根是一个键,称为根键 阅读全文
posted @ 2012-02-23 10:10 Chenny Chen 阅读(605) 评论(0) 推荐(0) 编辑
  2012年2月18日
摘要: Windows内核中对象管理 Windows对象管理器的基本设计意图是: 为执行体的数据结构提供一种统一又可扩展的定义和控制机制。 提供统一的安全访问机制。 在无需修改已有系统代码的情况下,加入新的对象类型。 提供一组标准的API来对对象执行各种操作。 提供一种命名机制,与文件系统的命名机制集成在一起。 每一个对象都由两部分构成:对象头和对象体,所有对象的对象... 阅读全文
posted @ 2012-02-18 16:36 Chenny Chen 阅读(833) 评论(0) 推荐(0) 编辑
  2012年2月17日
摘要: SuperPrime Rib题目(简述):找出某一长度的超级素数。所谓的超级素数,例如7331:其中7331是素数,733是素数,73是素数,7是素数。即每次从该数中去掉最后一位数后,依然是素数的素数,被称为超级素数(superprime)。分析:判断一个数是不是超级素数,我们需要判断n次,n为这个数的位数。为了使程序更快,我们应该首先判断最高位是不是素数,然后判断最高两位是不是素数……直到判断到这个数本身是不是素数。其次,我们并不需要遍历所有的n位数,因为很多数直接就可以排除掉:除了最高位,其他任何位上有偶数的排除,1开头的数排除,至于为什么,原因很简单,大家可以自己思考。这样之后,我们其实 阅读全文
posted @ 2012-02-17 11:06 Chenny Chen 阅读(526) 评论(0) 推荐(0) 编辑
  2012年2月13日
摘要: 内容:43—51页处理器模式 在Intelx86处理器上,段描述符有一个2位长度的特权级:0表示最高特权级,3表示最低特权级。Windows只使用0和3两种特权级。特权级0表示CPU处于内核模式,3表示用户模式。处理器有许多指令只能够在特权级0的模式下使用,例如I/O指令,操纵内部寄存器(如GDT、IDT、MSR)的指令等。在Windows中,当处理器位于用户模式下,处理器只能访问当前进程的地址空间。而在内核模式下,处理器不仅可以访问当前进程的地址空间,还可以访问系统地址空间。 一个指令流(线程)在执行时,出现以下情况会发生模式切换: 1、用户模式代码触发了异常; 2、用户模式... 阅读全文
posted @ 2012-02-13 17:27 Chenny Chen 阅读(1144) 评论(0) 推荐(0) 编辑
  2012年2月11日
摘要: 内容:18—42页 操作系统本身属于软件的范畴,但它与底层硬件打交道,为上层应用软件或应用程序提供了一层抽象,专门负责硬件资源的管理与分配。应用软件不直接使用硬件,而是通过操作系统提供的功能来实现各种应用任务。 LPC:进程间通信 现代操作系统的基本结构:应用环境-----------系统环境----------硬件设备| |系统服务 硬件抽象 现代计算机系统中,设备的即插即用(PnP)和电源管理越来越重要Windows系统结构 双模式:内核模式与用户模式。应用程序通过硬件指令从用户模式切换到内核模式。 Windows子系统与Windows内核共同构成了应用程序的执行环境。Wind... 阅读全文
posted @ 2012-02-11 14:47 Chenny Chen 阅读(2526) 评论(0) 推荐(0) 编辑
  2011年11月20日
摘要: 第一章概念与工具 在这个章节,我们将介绍有关微软windows操作系统的概念和词汇,比如Windows API、进程、线程、虚拟内存、内核模式和用户模式、对象、句柄、安全以及注册表,它们将贯穿于整本书。我们同样将介绍一些能够帮助我们“遨游”Windows内核世界的工具,如内核调试器、可靠性与性能监视器以及从Windows Sysinternals(www.microsoft.com/technet/sysinternals)上得到的关键工具。另外,我们将告诉你如何使用Windows Driver Kit(WDK)和Windows Software Development Kit(SDK),让它 阅读全文
posted @ 2011-11-20 21:20 Chenny Chen 阅读(676) 评论(0) 推荐(0) 编辑
摘要: 1 /* 2 题目:输入一个整数和一颗二叉树。 3 从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。 4 打印出与输入整数相等的所有路径。 5 例如 输入整数22和如下二元树 6 10 7 / \ 8 5 12 9 / \10 4 711 则打印出两条路径:10,12和12,5,712 分析:13 在二叉树中寻找满足条件的所有结点序列,需要输出所有的序列。14 此时,很自然的就应该想到使用栈这样的数据结构。15 访问结点为一个函数,在进入这个函数的时候,首先把... 阅读全文
posted @ 2011-11-20 19:26 Chenny Chen 阅读(1234) 评论(0) 推荐(0) 编辑
  2011年11月10日
摘要: 前一段时间参加了学校的网络安全竞赛。其中有一道题目是“拦截注册表”,使用SSDT HOOK ZwSetKeyValue函数。在自己的ZwSetKeyValue函数中,需要对传递进来的注册表路径与设定好的注册表路径进行匹配(ANSII 比较),如果一样,则被拦截。否则,则放行。 虽然在Windows内核中并不推荐使用C语言的字符串操作的库函数,但又没有其他好的办法的时候仍然需要使用。我在程序中使用了strcpy()与strcmp()函数。可以成功生成驱动,但加载之后,系统会蓝屏。开始始终搞不清楚,多次尝试之后,发现取消DriverEntry开头的#defineINITCODEcode_se... 阅读全文
posted @ 2011-11-10 11:36 Chenny Chen 阅读(674) 评论(0) 推荐(0) 编辑
摘要: 还是如此的把持不定,别人对自己好一些,就觉得有那么些可能。前天晚上的那话,已经是第二个人那样说了。只是现在的情形又不比以前。以前可以大大咧咧地去做,毫无忌惮地去迎合,偶尔狠一下心还能做出一些自己从来不敢做的事情。失败了又如何?但是现在,面对的却是我在交大为数不多的可做为朋友的人,在我眼里是接近于美好的存在。加上以前的挫败自己更加小心翼翼,不想因为一次冒失而失去所有甚至连见面都感到尴尬。 后天就要考试了,自己却一点儿都静不下来。看一会儿书就发呆,思绪不知道飘到了哪里。消失了许久的这样的感觉又来了。为什么又要去关心一个人,想一个人。何必折磨自己?记得曾经被称为“伟大”,内心想想,自己有什么伟... 阅读全文
posted @ 2011-11-10 11:25 Chenny Chen 阅读(147) 评论(0) 推荐(0) 编辑