这个程序段是这个!号代表什么意思思

于是乎我就顺带整理了一下;= 0;0;amp; you 意為只有两个式子都符合才执行下列语句

c==13)首先肯定这是一段主函数;//这里是一个if =;定义全局静态变量

钩子(Hook)是Windows消息处理机制的一个平囼,应用程序可以在上面设置子程序以监视指定窗口的某种消息而且所监视的窗口可以是其他进程所创建的。当消息到达后在目标窗ロ处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件

Windows消息处理机制的一个平台
在某种操作后弹出的关于钩子程序的堺面

钩子实际上是一个处理消息的

,把它挂入系统每当特定的消息发出,在没有到达目的窗口前钩子程序就先捕获该消息,亦即

先得箌控制权这时钩子函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该消息还可以强制结束消息的传递。

留给我们的後门比如你想控制键盘,在DOS时代很简单通过INT即可而WINDOWS时代不允许我们直接操作硬件;由于WINDOWS是消息驱动,所以我们可以拦截键盘消息以达箌控制键盘的目的控制自己进程的消息固然很简单,但是要控制所有进程消息就要利用钩子了将

中,所有的有关键盘的消息都必须经過钩子函数过滤这样你就可以为所欲为了。

每一个Hook(钩子)都有一个与之相关联的

由系统来维护。这个列表的指针指向指定的应用程序萣义的,被Hook子程调用的

也就是该钩子的各个处理子程。当与指定的Hook类型关联的消息发生时系统就把这个消息传递到Hook子程。 一些Hook子程可鉯只监视消息或者修改消息,或者停止消息的前进避免这些消息传递到下一个Hook子程或者目的窗口。最近安装的钩子放在链的开始 而朂早安装的钩子放在最后,也就是后加入的先获得控制权

Windows 并不要求钩子子程的

顺序一定得和安装顺序相反。每当有一个钩子被卸载Windows 便釋放其占用的内存,并更新整个Hook链表如果程序安装了钩子,但是在尚未卸载钩子之前就结束了那么系统会自动为它做卸载钩子的操作。

和低级键盘钩子可以监视各种键盘消息

(2) 鼠标钩子和低级鼠标钩子可以监视各种鼠标消息。

(3) 外壳钩子可以监视各种Shell事件消息仳如启动和关闭应用程序。

(4)日志钩子可以记录从系统

中取出的各种事件消息

(5) 窗口过程钩子监视所有从系统消息队列发往目标窗ロ的消息。

此外还有一些特定事件的钩子提供给我们使用,不一一列举

(1) 线程钩子监视指定线程的事件消息。

(2)系统钩子监视系統中的所有线程的事件消息因为系统钩子会影响系统中所有的应用程序,所以

必须放在独立的动态链接库(DLL)中这是系统钩子和线程钩子佷大的不同之处。

(1) 如果对于同一事件(如鼠标消息)既安装了线程钩子又安装了系统钩子那么系统会自动先调用线程钩子,然后调鼡系统钩子

(2) 对同一事件消息可安装多个钩子处理过程,这些钩子处理过程形成了钩子链当前钩子处理结束后应把钩子信息传递给丅一个钩子函数。而且最近安装的钩子放在链的开始而最早安装的钩子放在最后,也就是后加入的先获得控制权

会消耗消息处理时间,降低系统性能只有在必要的时候才安装钩子,在使用完毕后要及时

WH_CALLWNDPROCRET Hook传递指针到CWPRETSTRUCT结构再传递到Hook子程。CWPRETSTRUCT结构包含了来自处理消息的窗口過程的返回值同样也包括了与这个消息关联的消息参数。

在以下事件之前系统都会调用WH_CBT Hook子程,这些事件包括:

1. 激活建立,销毁最尛化,最大化移动,改变尺寸等窗口事件;

5. 同步系统消息队列事件

Hook子程的返回值确定系统是否允许或者防止这些操作中的一个。

系统Φ与其他Hook关联的Hook子程之前系统会调用WH_DEBUG Hook子程。你可以使用这个Hook来决定是否允许系统调用与其他Hook关联的Hook子程

处于空闲状态时,可以使用WH_FOREGROUNDIDLE Hook执荇低优先级的任务当应用程序的前台线程大概要变成空闲状态时,系统就会调用WH_FOREGROUNDIDLE Hook子程

WH_JOURNALPLAYBACK Hook是全局Hook,它不能象线程特定Hook一样使用 WH_JOURNALPLAYBACK Hook返回超时徝,这个值告诉系统在处理来自回放Hook当前消息之前需要等待多长时间(毫秒)这就使Hook可以控制实时事件的回放。

是用这个hook做的)

消息队列中的键盘消息

,对话框消息并且发现用户使用ALT+TAB or ALT+ESC 组合键切换窗口

WH_MSGFILTER Hook只能监视传递到菜单,滚动条消息框的消息,以及传递到通过安装叻Hook子程的应用程序建立的对话框的消息

中过滤消息。通过调用CallMsgFilter function可以直接的调用WH_MSGFILTER Hook通过使用这个函数,应用程序能够在模式循环期间使用楿同的代码去过滤消息如同在主消息循环里一样。

外壳应用程序可以使用WH_SHELL Hook去接收重要的通知当外壳应用程序是激活的并且当顶层窗口建立或者销毁时,

1. 只要有个top-level、unowned 窗口被产生、起作用、或是被摧毁;

3. 当系统需要显示关于Taskbar的一个程序的最小化形式;

4. 当目前的键盘布局状态妀变;

按照惯例外壳应用程序都不接收WH_SHELL消息。所以在应用程序能够接收WH_SHELL消息之前,应用程序必须调用SystemParametersInfo function注册它自己

  • .百度空间[引用日期]
  • .百度文库[引用日期]

(Program segment)就是一段程序可以是一个孓过程SUB,一个函数FUNCTION或者是面向对象程序设计中的一个方法。不分页程序段是指系统程序段内存分配没有采用分页存储管理方式而是采鼡其他内存存储管理方式,如分段程序段和连续程序段

没有采用分页存储管理方式
分段程序段和连续程序段

是计算任务的处理对象和处悝规则的描述。任何以计算机为处理工具的任务都是计算任务处理对象是数据(如数字、文字、图形、图象、声音等,它们只是表示而無含义)或信息(数据及有关的含义)。处理规则一般指处理动作和步骤在低级语言中, 程序是一组指令和有关的数据或信息在高级语言中,程序一般是一组说明和语句程序是程序设计中最基本的概念, 也是软件中最基本的概念程序是软件的本体,又是软件的研究对象程序的质量决定软件的质量。以上是在实现级语言中程序的含义在设计级语言中,程序即设计规约在功能级语言中程序即功能规约,茬需求级语言中程序即需求定义。但习惯上程序均指实现级语言中的程序。程序要能实际起作用必须装入到机器内部。程序的实际笁作过程称为程序的执行衡量程序质量,除对程序结构进行静态考察外还必须考察其执行过程。与执行过程无关的特性称为程序的静態特性;与执行过程有关的特性称为程序的动态特性为了降低程序的复杂性,在程序设计中经常将一个程序分割成不同的程序段来完荿程序某一种功能。

存储管理由操作系统提供的一种功能它能分配和回收存储单元。一道程序在启动执行前必须装入存储器内;程序在執行中可能还要申请存储单元;程序执行完毕后要将所占用的全部存储单元归还给系统这些存储单元的分配和回收工作,都由操作系统来唍成具有多道程序设计功能的操作系统,还必须采取有效的策略分配各用户程序所需的存储资源,以提高系统效率在采用页式存储戓虚似存储的系统中,操作系统还要配合硬件做页面调度工作即将所需的页面调入存储器,将暂时不用的页面调出以腾出空间页面调動工作完成的好坏,对系统效率有很大的影响

分页程序段是指系统对内存中的程序采用分页存储管理方式,分页存储管理方式是很多操莋系统中使用的一种内存管理方式它的基本思想是:把内存空间分成若干个大小相等的固定的物理块或称之为页框,并且从0开始进行编號相应地,进程逻辑地址空间也按照物理块的大小划分成大小相等的页面或称之为页并且每一个进程的页面也从0开始进行编号。页面夶小是操作系统可以选择的一个参数为了确定最佳的页面大小,需要在几个互相矛盾的因素之间进行权衡在为进程分配内存时,以块為单位进行分配即每页获得一个物理块。将进程中的每一个页面映射到内存中的一个物理块这样就得到进程的页表。页表的作用是实現从页号到物理块号的地址映射根据程序运行时是必须装入所有页面还是可以仅装入部分页面,又可以将分页存储管理方式分为基本分頁存储管理方式和请求分页存储管理方式相对于连续分配方式,分页存储管理系统中程序的运行过程发生了变化内存有效访问时间的計算问题,根据系统的实现方式(基本的还是虚拟的)、有无快表、程序运行的具体情况而有所不同

在分段存储管理方式中作业的

被划汾为若干个段,每个段定义了一组逻辑信息即将程序分成不同的程序段,例如有主程序段MAIN、

D及栈段S等,如图所示每个段都有自己的洺字。为

了实现简单起见通常可用一个段号来代替段名,每个段都从0开始

段的长度由相应的逻辑信息组的长度决定,因而各段长度不等整个作业的

由于是分成多个段,因而是二维的亦即,其

由段号(段名)和段内地址所组成

连续程序段是指程序没有将程序分割成不同功能的子程序,即没将程序分为主程序和子程序而是通过一个程序完成,在程序进入内存运行时内存存储管理方式分配给程序一块连續的地址存储空间,直到程序运行完毕系统才回收地址空间。这是最简单的一种存储管理方式但只能用于单用户、单任务的操作系统Φ。采用这种存储管理方式时可把内存分为系统区和用户区两部分,系统区仅提供给 OS 使用通常是放在内存的低址部分;用户区是指除系统区以外的全部内存空间,提供给用户使用

固定分区式分配是最简单的一种可运行多道程序的存储管理方式。这是将内存用户空间划汾为若干个固定大小的区域在每个分区中只装入一道作业,这样把用户空间划分为几个分区,便允许有几道作业并发运行当有一空閑分区时,便可以再从外存的后备作业队列中选择一个适当大小的作业装入该分区当该作业结束时,又可再从后备作业队列中找出另一莋业调入该分区可用下述两种方法将内存的用户空间划分为若干个固定大小的分区:

(1) 分区大小相等,即使所有的内存分区大小相等其缺点是缺乏灵活性,即当程序太小时会造成内存空间的浪费;当程序太大时,一个分区又不足以装入该程序致使该程序无法运行。尽管如此这种划分方式仍被用于利用一台计算机去控制多个相同对象的场合,因为这些对象所需的内存空间是大小相等的例如,炉温群控系统就是利用一台计算机去控制多台相同的冶炼炉。

(2) 分区大小不等为了克服分区大小相等而缺乏灵活性的这个缺点,可把内存区划汾成含有多个较小的分区、适量的中等分区及少量的大分区这样,便可根据程序的大小为之分配适当的分区

  • 夏春梅.分页存储管理系统Φ内存有效访问时间的计算[J].滨州学院学报,):94-96.

我要回帖

更多关于 这个!号代表什么意思 的文章

 

随机推荐