又是控制台问题,救命啊Windows系统(精选4篇)
篇1:又是控制台问题,救命啊Windows系统
因为我修改了qctl01为IPL为no,重起以后,什么控制台都练不上去了,怎么办,这台机器是没有联接网络的,
居士 回复于:-06-24 13:08:19光盘启动
rockyii 回复于:2003-06-24 15:01:44问题已经解决,手工启动,修改一下东西,进入dst,修改cfg 命令,
使得ctl01随IPL自启动。
原文转自:www.ltesting.net
篇2:又是控制台问题,救命啊Windows系统
老是跟服务器连不上~
这个操作系统有关吗?
hanyu 回复于:-06-09 20:40:06其他pc机可不可联?
服务器可不可以telnet,如果可以golicpgm看装了5722XE1没有,
救命~Windows系统
,
用CA操作导航器添加联结时验证一下联结看看报什么错。
如果还不行,STRTCPSVRSERVER(*ALL)试试。
向唐 回复于:2003-06-10 13:44:19看能不能PING通。能PING通的话,应该是没问题的。
居士 回复于:2003-06-10 18:11:23hanyu说的很详细。我就不补充了:)
篇3:又是控制台问题,救命啊Windows系统
Windows操作系统以其方便简易的操作占有了绝大部分的用户群,但是在享受方便的背后,广大用户亦感受到其存在的一系列问题。比如:对于病毒的入侵和破坏显得无能为力。往往要借助另外一些软件来做防护。这使得Windows因此而损耗大量CPU时间,系统运行速度明显变慢。而且近些年来,关于计算机泄密,重要信息被盗事件层出不穷,使得广大用户惶恐不安。其实,我们不难看出,所有这一切,归根结底,最终都来自于非授权用户的非法操作。基于此,本文决定从Windows文件系统访问控制方面来做一些探索。
Windows的总体设计是基于分层设计思路设计的。内核模式的接口对用户模式的应用程序提供服务。在内核模式下,各个模块各司其职,并且有良好的机制保证各个模块进行正确的通信,通过层层调用,最终由底层实现来自用户层的请求操作。
其实整个Windows操作系统就像一个庞大的社会管理体系:用户永远只能与前台的人打交道,陈述自己的请求。而前台工作人员仅仅将你的要求转发给相关管理人员,然后该管理人员又转发给具体负责该类事情的单位。表面看起来是前台人员给你处理,实际上在内部你的请求信息被层层传递,最终由具体的人处理,这才真正完成了你的请求。之后再向上层层传送,将请求结果呈现给你。作为用户,你只能和前台人员沟通,你永远见不到后台运作。图1显示了Windows的系统框架。
对于图1中涉及到的执行体组件,下面做简要说明。
1 对象管理程序
Windows操作系统提供的所有服务几乎都是以对象的形式存在的。在Windows中,定义了很多数据结构,这些数据结构就是所谓的“对象”。这些数据结构中的某些变量可以被程序员直接读写,有些变量必须通过Windows提供的一些例程来访问。
对象管理器就是创建、管理、回收这些对象的组件。在驱动开发中,涉及很多的对象,如驱动程序对象(Driver Object)、设备对象(Device Object)等。
2 进程管理程序
进程管理器负责创建和终止进程,线程的调度是由内核负责的。进程管理程序依赖其他执行程序组件,如对象管理程序、虚拟内存管理程序等。
3 虚拟内存管理程序
虚拟内存有别于物理内存的概念。在CPU的内存管理单元(MMU)的协助下,通过某种映射将物理内存和虚拟内存关联起来。虚拟内存管理程序是负责对虚拟内存管理的模块。对虚拟内存的申请、回收等操作时由该模块实现的。
4 I/O管理器
I/O管理器负责发起I/O请求,并且管理这些请求。它由一系列内核模式下的例程所组成。这些例程为用户模式下的进程提供了统一接口。I/O管理器的目标是使来自用户模式的I/O请求独立于设备。
无论对端口的读写、对键盘的访问,还是对磁盘文件的操作都统一为IRP的请求形式。其中IRP包含了对设备操作的重要数据,例如是读操作还是写操作、读多少字节、写多少字节,是直接读到用户进程中,还是先读到缓冲中,再读到用户进程中。
IRP被传递到具体的驱动程序中,驱动程序负责完成这些IRP,并将完成的状态按原路返回到用户模式下的应用程序中。实际上,I/O担当着用户模式代码和设备驱动程序之间的接口。
5 配置管理程序
在Windows上,配置管理程序记录所有的计算机软件、硬件的配置信息。它使用一个被称为注册表(registry)的数据库保存这些数据。设备驱动程序根据注册表中的信息进行加载。
另外,驱动程序还会从注册表中提取相应的参数,这样可以提高驱动程序的灵活性。例如,设备操作的延迟时间,可以作为参数写进注册表。驱动程序加载的时候读取该值,而不是将延迟时间在编写程序的时候写成定值。
6 驱动程序
I/O管理器接受到应用程序的请求后,创建相应的IRP,并传送至驱动程序进行处理,有如下几种处理的方法。
(1)根据IRP的请求,直接操作具体硬件,然后完成此IRP,并返回。
(2)将此IRP的请求,转发到底层的驱动中去,并等待底层驱动的返回。
(3)接受到IRP请求后,不是急于完成。而是分配新的IRP发到其他驱动程序中,并等待返回。
下面以用户层的Create File创建文件请求为例,可以清楚的看到应用程序到驱动程序的具体操作过程(如图2)。
下面讨论一下文件系统。
Windows的设计者们为了简化对不同设备的操作,实现对不同设备统一接口,将所有设备以普通文件看待。也就是说在Windows中,无论何种设备,都用操作文件的方法去操作设备。当然,对于磁盘上的文件就更不用说了。
所有文件均存放在磁盘中,对于来自用户层的文件请求IRP,文件系统驱动生成相应的IRP,并将该IRP传给磁盘驱动,由磁盘驱动具体访问磁盘,并将访问结果层层上传给用户。
Windows上两种常见的文件系统是FAT32和NTFS,其驱动分别是fastfat.sys和ntfs.sys。
可见,对于文件的访问离不开文件系统驱动,若我们能在其中添加一些限制代码,则可以达到控制文件访问的目的。事实上,在IRP下传的每一个阶段,我们都有机会加以限制。
下面具体列举本人编写过的一个例子,通过该例我们可以从中体会驱动编程的思路,以及进行文件访问控制的方法。
具体实现需要两个模块,一个应用程序,一个驱动程序。
在应用程序中,允许用户选中要保护的文件,将该文件路径存入注册表。这里之所以存入注册表而非普通文件的原因在于,普通文件大家都可以访问到,可以随意修改。放入注册表,一般人不会关注它。当然,存入的文件路径不能太多。
而在内核的文件驱动程序中,我们在驱动一开始就直接读取注册表,将文件路径名悉数读入双向链表中。然后对于来自应用层的IRP,可以判断其中的文件路径,若在链表中存在该字符串,说明该文件为敏感文件,不允许用户访问。这时直接在这里调用Io Complete Request函数完成请求。这样一来,来自用户层的IRP请求被截断,没有再往下发送,底层未收到相关IRP,自然不会进行文件访问。拒绝访问文件的目的就达到了。当然,比对链表,若不存在相应字符串,说明该文件不是敏感文件,应该允许访问。则直接将IRP下发,让真正的文件驱动程序去处理。
我们再分析一下驱动程序,它是将真正的文件访问功能交由系统自带的文件系统驱动来实现,比如fastfat.sys或者ntfs.sys。而我们编写的驱动,仅仅只是进行文件过滤,即只是将我们认为不敏感的文件请求放行,而对于敏感请求直接挡回。像这样的驱动程序称为过滤程序。
当然,驱动过滤设备必须附加在真正的文件系统驱动设备上(垂直附加)。实际的访问还是交由它来完成,而该驱动操作系统已经提供,我们只需在它加载的时候,将我们自己编写的过滤驱动附加在它上面即可。
我们再来整体看一下。用户层程序给用户提供了选择敏感文件的功能,而内核层的过滤程序则根据用户层的选择进行过滤,两者协作完成文件的访问控制功能。
下面我们看一下代码的关键技术部分。
应用程序:首先利用Reg Create Key Ex函数生成具体子键名称,通过其参数lpdw Dispition可以查看以前是否存在该子键。若存在,重新设定子键名称,必须保证不能与注册表中已存在的子键名冲突。成功后,在循环体中调用Reg Delete Key函数将选定的敏感文件路径写入注册表。如此,应用程序功能完成。
驱动程序:微软的sfilter文件过滤驱动程序仅仅提供了一个框架,要使其真正实现自己设定的过滤要求,必须在其中写入自己的代码。我正是基于此思路来编写文件过滤驱动程序的。
具体如下:
在Driver Entry入口函数中,利用Zw Open Key函数打开注册表,然后两次调用Zw Query Key,一次探测长度,一次用于实际获取数据。然后再两次调用Zw Enumerate Key函数,一次用于获取数据长度,一次用于获取实际文件路径(存于结构体中),然后存于双向链表中。
在Sf Read函数中,添加循环核查代码:
以上是一个简单的过滤驱动编写过程,由于篇幅所限,不能展现全部代码。本文仅展示具体文件控制方面。
笔者曾经采用多种方法,包括常规的破解软件,均无法打开限定的文件,有效的达到文件保护的目的。
7 总结
计算机安全实际上就是文件的安全。本文在分析了Windows系统框架的基础上,对Windows驱动编程技术在文件访问控制方面的应用进行了详细阐述。希望会对大家有所启发。
参考文献
[1]张帆.Windows驱动开发技术.北京:电子工业出版社.
[2]谭文,杨潇,邵坚磊.Windows内核安全编程.电子工业出版社.
[3]王兰英,居锦武.NTFS文件系统剖析.四川理工学院.2004.
篇4:又是控制台问题,救命啊Windows系统
1 DLP拼接墙系统说明
DLP拼接墙系统一般由DLP显示单元、视频信号处理器、信号源、交换机、控制PC以及网络和信号线缆等部件组成。信号源一般为摄像机、摄像头、DVD播放器等。信号源将信号接入到视频信号处理器, 接入的信号经视频信号处理器处理后输出, 接入到DLP显示单元上进行显示。DLP拼接墙系统的示意图如图1所示。
DLP拼接墙系统的各个显示单元通过路由器或者交换机与控制PC以及视频信号处理器一起接入到同一个局域网中。控制软件通过网络对DLP拼接墙系统中的各个显示单元进行控制。由运行在控制PC上的DLP控制软件通过网络通信线缆及TCP/IP协议与DLP拼接墙系统的各个显示单元进行通信, 发送命令完成对DPL拼接墙系统的各个显示进行控制以及状态查询等。
2 控制软件实现说明
2.1 操作系统相关层
操作系统的网络驱动对控制PC的网络硬件相关设备进行驱动, 控制软件通过TCP/IP协议与DLP拼接墙设备进行通信。操作系统提供Win Sock API接口函数供控制软件的网络应用层调用。
2.2 控制软件网络应用层
控制软件的网络应用层使用Windows操作系统对外提供的Win Sock API接口函数, 根据协定的TCP端口号与DLP拼接墙的显示单元中的服务端建立TCP连接, 通过API接口函数完成命令包的发送以及对显示单元回码的接收和处理。
2.3 控制通信协议层
该层具体实现每一条通信协议命令。该层定义了通信协议命令字, 每个命令的命令结构体, 实现每一个通信控制命令的接口函数。通信协议指令分为设备控制指令、系统状态查询指令、故障及告警查询指令和信号开窗指令。
设备控制指令用来控制DLP显示单元及视频信号处理器。主要完成开关机、屏幕亮度、色度、饱和度等颜色参数的调整、光源功率的调整、屏幕桌面的切换等操作。系统状态查询指令用来查询系统的环境温度、光源温度、板卡温度以及各个风扇的转速等系统状态。故障及告警查询指令用来获取系统的故障及告警信息。信号开窗指令用来控制视频信号处理器输出的信号窗口的位置及大小。
2.4 界面及菜单实现
软件的界面及菜单对用户提供了友好的图形界面接口, 方便用户使用软件完成各种操作。界面和菜单主要分为以下几个模块:色彩调整、设备管理、系统参数管理、工程维护管理。
色彩调整界面可以让用户使用调整按钮和输入数字两种方式方便的对屏幕的色彩进行调整。设备管理模块可以让用户通过按钮及菜单完成设备的开关机等操作。通过系统参数管理模块, 用户可以方便的设置系统的光学及信号等参数, 并将参数保存在EEPROM中, 可以并可以方便地进行导入和导出。工程维护管理模块可以使工程维护人员方便地到处系统的故障及告警日志, 并可以收集系统的状态及硬件制造信息。
2.5 虚拟墙图形界面
虚拟墙图形界面模块会根据DLP拼接墙系统的单元个数 (m行n列) , 生成一个虚拟的DLP拼接墙, 方便用户使用此界面对DLP拼接墙的单个单元或者多个单元进行控制。假如是一个2行4列的系统, 软件将生成如图2所示的一个虚拟墙。
用户可以单点一个显示单元进行控制, 也可以框选多个显示单元进行控制, 操作十分方便。
摘要:本文介绍了DLP拼接墙系统的构成要素, 并说明了DLP系统各个构成要素的组成方式。根据DLP系统的组成特点, 说明了DLP系统的控制方法, 描述了DLP控制软件的层次结构。详细描述了控制通信协议层、界面和菜单层、虚拟墙图形界面层的具体实现方法, 并说明了每个软件层次中的功能模块划分方法。
关键词:DLP,拼接墙,显示单元
参考文献
[1]刘旭, 李海峰.现代投影显示技术[M].浙江大学出版社, 2009.03.
[2]王宏伟.大屏幕投影与智能系统集成技术[M].国防工业出版社, 2010.6.
[3]肖运虹.显示技术[M].西安电子科技大学出版社, 2011.10.
[4]张水波.Visual C++2008完全学习手册[M].清华大学出版社, 2011.01.