上一页 1 ··· 4 5 6 7 8 9 10 11 12 下一页
摘要: 内核线程在驱动中生成的线程一般是系统线程。系统线程所在的进程名为“System”。NTSTATUSPsCreateSystemThread( OUT PHANDLE ThreadHandle, //用来返回句柄,放入一个句柄指针即可 IN ULONG DesiredAccess, //一般总是填写0 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, //NULL IN HANDLE ProcessHandle OPTIONAL, //NULL OUT PCLIENT_ID ClientId OPTIONAL, //NULL IN PKSTART_ 阅读全文
posted @ 2011-07-11 15:32 飞翔荷兰人 阅读(861) 评论(0) 推荐(0) 编辑
摘要: 汇编部分0、call、ret、push、pop、add、sub都可以操作堆栈,栈顶比栈底的地址小,由esp寄存器指向;1、call 的本质相当于push+jmp,ret的本质相当于pop+jmp。 call用来调用函数,先将下一条指令的地址压栈,再跳转到调用函数的开始处;ret弹出返回指令,再跳转;2、数据传送指令: mov dst,src :数据移动指令; xor eax,eax :快捷的清零指令; lea edi,[ebp-0cch] :load effect address,方括号表示存储器,即ebp-0cch地址处得内容,该指令取得该内容的地址-... 阅读全文
posted @ 2011-07-07 17:48 飞翔荷兰人 阅读(1014) 评论(0) 推荐(0) 编辑
摘要: 1、数据寄存器数据寄存器主要用来保存操作数和运算结果等信息,从而节省读取操作数所需占用总线和访问存储器的时间。32位CPU有4个32位的通用寄存器EAX、EBX、ECX和EDX。对低16位数据的存取,不会影响高16位的数据。这些低16位寄存器分别命名为:AX、BX、CX和DX,它和先前的CPU中的寄存器相一致。4个16位寄存器又可分割成8个独立的8位寄存器(AX:AH-AL、BX:BH-BL、CX:CH-CL、DX:DH-DL),每个寄存器都有自己的名称,可独立存取。程序员可利用数据寄存器的这种“可分可合”的特性,灵活地处理字/字节的信息。寄存器AX和AL通常称为累加器(Accumulator 阅读全文
posted @ 2011-07-07 16:21 飞翔荷兰人 阅读(548) 评论(0) 推荐(0) 编辑
摘要: 一、前缀Windows内核函数的命名:Ex... 管理层,ExecutiveHal...硬件抽象层(Hardware Abstraction Layer 仅NT/Windows 2000)Io...I/O管理层(包括即插即用例程)Ke... 核心层,Ke是Kernel的缩写Mm...内存管理层,Memory ManagerOb...对象管理层Po...电源管理层Ps...进程管理层,processRtl...运行时程序库,Runtime LibrarySe...安全管理,SecurityZw...其他例程Cc... 文件缓存管理,Cc是Cache的缩写Cm... 系统配置管理,Configur 阅读全文
posted @ 2011-07-06 13:53 飞翔荷兰人 阅读(456) 评论(0) 推荐(0) 编辑
摘要: 一、过滤的概念 “过滤”(filter)是极其重要的一个概念。过滤是在不影响上层和下层接口的情况下,在Windows系统内核中加入新的层,从而不需要修改上层的软件或者下层的真实驱动程序,就加入了新的功能。二、绑定设备的内核Api之一 通过编程可以生成一个虚拟的设备对象,并“绑定”(Attach)在一个真实的设备上。一旦绑定,则本来操作系统发送给真实设备的请求,就会首先发送到这个虚拟设备。 在WDK中,有多个内核API能实现绑定功能。下面是其中一个函数的原型:NTSTATUSIoAttachDevice(IN PDEVICE_OBJECT SourceDevice,IN PUNICODE_STR 阅读全文
posted @ 2011-07-05 17:09 飞翔荷兰人 阅读(2655) 评论(0) 推荐(1) 编辑
摘要: Microsoft Windows Driver Kit (WDK) 包含几个单独的组件。如果您了解 WDK 的结构,您就将知道各种支持文件和信息的查找位置。默认情况下,WDK 组件将安装到计算机硬盘驱动器上的 WDKInstallationPath\BuildNumber\ 文件夹中,其中 WDKInstallationPath 为 WDK 安装到的计算机上的根目录位置(例如,C:\WinDDK),而 BuildNumber 为安装的 WDK 的内部版本号(例如 5600)。这些组件将在安装 WDK 的过程中复制到计算机上,具体取决于您在 WDK 安装向导中选择的选项。最常见的 WDK 组件 阅读全文
posted @ 2011-07-05 09:30 飞翔荷兰人 阅读(3848) 评论(0) 推荐(1) 编辑
摘要: 零、内核模块所在进程 1、内核模块位于内核空间,而内核空间又被所有的进程共享。因此,内核模块实际上位于任何一个进程空间中。 2、PsGetCurrentProcessId函数能得到当前进程的进程号,函数原型为: HANDLE PsGetCurrentProcessId();返回值时间上就是一个进程ID; 3、当DriverEntry函数被调用时,一般位于系统进程中,因为Windows一般用系统进程来加载内核模块;但是内核模块中分发函数调用时,当前进程一般都不是System进程。windows CE 数据类型大全 http://dev.10086.cn/cmdn/wiki/index.php?d 阅读全文
posted @ 2011-07-04 15:46 飞翔荷兰人 阅读(1740) 评论(1) 推荐(1) 编辑
摘要: 1.从M$的网站上去下载wdk 我现在下载的是6.1.6001.18002.081017-1400_wdksp-WDK18002SP_EN_DVD.iso 这个版本2.安装好了之后 建一个目录写入makefile sources first.c文件3.编译ps:遇到一个问题编译的时候报Do not assign include 错误解决办法sources 文件的问题 里面多加了一句 INCLUDE=$(INCLUDE);$(BASEDIR) \inc\ddk去掉就好了 阅读全文
posted @ 2011-07-04 14:18 飞翔荷兰人 阅读(577) 评论(0) 推荐(0) 编辑
摘要: 引言上篇我们介绍了Intents和Intent Filters的理论部分,主要是介绍了:activities、services、broadcast receivers三种组件的Intent机制两种Intent(显式和隐式)及它们如何去匹配目的组件、Intent对象包含哪些信息、Intent Filters的action & category & data。Intent的重要性,我不再着重介绍了,但我还是要说:Intent能够使应用程序突破沙盒与外界交流,者这使得Android的世界变得丰富多彩!本篇将用实例来介绍,如何应用Intent,而且继续用SMS方面的例子来阐述。本文的主 阅读全文
posted @ 2011-06-29 15:05 飞翔荷兰人 阅读(647) 评论(0) 推荐(0) 编辑
摘要: 引言大部分移动设备平台上的应用程序都运行在他们自己的沙盒中。他们彼此之间互相隔离,并且严格限制应用程序与硬件和原始组件之间的交互。 我们知道交流是多么的重要,作为一个孤岛没有交流的东西,一定毫无意义!Android应用程序也是一个沙盒,但是他们能够使用Intent、Broadcast Receivers、Adapters、Content Providers、Internet去突破他们的边界互相交流。有交流还会和谐,由此可见这些交流手段有多重要。上篇文章中我们在SMS接收程序和使用Intent发送SMS程序中用到了Intent,并做了简单的回顾和总结:android应用程序的三大组件——Acti 阅读全文
posted @ 2011-06-29 15:04 飞翔荷兰人 阅读(1513) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 11 12 下一页

I Love Lina~