关于作者

用户名:hubdog
笔名:hubdog
地区:
行业:其他

日历  

快速登录

+ 用户名:
+ 密 码:

在线留言



访问统计:
文章个数:9
评论个数:2
留言条数:0




Powered by BlogDriver 2.1

闪电工作室

 

文章

深入浅出剖析BOOT.INI
电脑中安装有多个操作系统的朋友知道,在电脑加电自检后会出现一个启动菜单,它列出了在这台电脑上安装的所有的操作系统,用户使用“↑”“↓”键可以选择进入哪个系统。实际上这一切都源于一个名为BOOT.INI的文件,自Windows NT开始它就存在于Windows系统中。Windows XP主要依赖BOOT.INI文件来确定计算机在重启(引导)过程中显示的可供选取的操作系统类别。一般情况下,它位于C盘根目录下,在默认状态下是一个隐藏只读的系统配置文件。要查看它,只要去掉其隐藏属性,即可用记事本打开它,也可以在“开始”中运行msconfig.exe,在弹出的“系统配置实用程序”对话框中单击“BOOT.INI”选项卡就可窥见其庐山真面目。下面就以笔者电脑中的BOOT.INI文件为例(如图1),向大家详加解释。
电脑中安装有多个操作系统的朋友知道,在电脑加电自检后会出现一个启动菜单,它列出了在这台电脑上安装的所有的操作系统,用户使用“↑”“↓”键可以选择进入哪个系统。实际上这一切都源于一个名为BOOT.INI的文件,自Windows NT开始它就存在于Windows系统中。Windows XP主要依赖BOOT.INI文件来确定计算机在重启(引导)过程中显示的可供选取的操作系统类别。一般情况下,它位于C盘根目录下,在默认状态下是一个隐藏只读的系统配置文件。要查看它,只要去掉其隐藏属性,即可用记事本打开它,也可以在“开始”中运行msconfig.exe,在弹出的“系统配置实用程序”对话框中单击“BOOT.INI”选项卡就可窥见其庐山真面目。下面就以笔者电脑中的BOOT.INI文件为例(如图1),向大家详加解释。


  图1 修改前启动菜单


  BOOT.INI文件的常见格式如下:

  [boot loader]

  timeout=30

  default=multi(0)disk(0)rdisk(0)partition(1)WINDOWS

  [operating systems]

  multi(X)disk(Y)rdisk(Z)partition(Q)WINDOWS="Microsoft Windows XP Professional" /fastdetect

  SCSI(X)disk(Y)rdisk(Z)partition(Q)WIN98="Microsoft Windows 98" /fastdetect

  该文件分为Boot loader(引导加载)和Operating systems(操作系统)两大部分。在引导加载部分,timeout=xx表示等待用户选择操作系统的时间,默认是30秒,用户可以根据需要自行更改。default=xxxx表示缺省情况下系统默认要加载的操作系统路径,表现为启动时等待用户选择的高亮条部分。但是令很多用户困惑不解的是,那些“multi(0)disk(0)rdisk(0)partition(1)”是什么意思?

  实际上这是根据ARC规则命名的,它是x86或RISC计算机中用于标识设备的一种通用方法。ARC名字指向存放操作系统文件的分区,对于磁盘设备, ARC名字的构成如下:

   (X)disk(Y)rdisk(Z)partition(Q)

  component部分有两种有效值,即multi和SCSI,它用于标明硬件适配器。multi表示一个非SCSI硬盘或一个由SCSI BIOS访问的SCSI硬盘,而SCSI则表示一个SCSI BIOS禁止的SCSI硬盘。X值表示操作系统的系统根目录所在的分区所在的硬盘所在的磁盘控制器在同一磁盘控制器上的序号(X从0开始)。

  disk(Y):对于SCSI硬盘来说,Y值表示操作系统的系统根目录所在的分区所在的硬盘在同一个磁盘控制器上的硬盘序号(Y从0开始);对于multi来说,Y值无任何意义,恒为0。

  rdisk(Z):对于multi来说,Z值表示操作系统的系统根目录所在的分区所在的硬盘在同一个磁盘控制器上的硬盘序号(Z从0开始);对于SCSI硬盘来说,Z值无意义,恒为0。

  partition(Q):Q值表示操作系统的系统根目录所在的分区在同一硬盘上主分区的序号(Q从1开始)。

  Operating systems部分列出了这台电脑上所有操作系统的路径和清单,其中还包括一些如/fastdetect、/basevideo、/sos之类的开关符。这些开关符都有特殊的含义,一般情况下建议不要更改。

 


  图2 修改后启动菜单



  OK,基于以上知识,我们对BOOT.INI文件应该有了一个比较清楚地认识。于是,我们就可以根据需要对其进行修改了。以笔者的电脑为例,BOOT.INI文件显示,硬盘中装有两个Windows XP专业版系统(实际上一个为中文版,一个为英文版),默认情况下是启动硬盘第三分区上的系统(英文版)。如果要它在默认情况下启动硬盘第一分区上的系统(中文版),而且为了以示区别,将两个Windows XP Professional分别对应的加以标记。这时,我们可以通过修改BOOT.INI文件来达到目的,修改之后如图2所示。重新启动计算机,看看你的愿望是不是实现了呢!

  由以上可知,BOOT.INI是一个非常重要的系统文件,没有它,系统将无法进行引导,所以我们平时除了要对其作必要的备份之外,还要编辑它的方法。特别是在安装多系统时,如果没有按照从低到高(Windows 98、Windows 2000、Windows XP、Windows 2003)的安装顺序,该文件往往会被损坏。如果我们掌握修改和编辑它的办法,就不会到时候无计可施了。

- 作者: hubdog 2004年11月5日, 星期五 17:35  回复(1) |  引用(0) 加入博采

SQL*PLUS命令的使用大全
Oracle的sql*plus是与oracle进行交互的客户端工具。在sql*plus中,可以运行sql*plus命令与sql*plus语句。
   我们通常所说的DML、DDL、DCL语句都是sql*plus语句,它们执行完后,都可以保存在一个被称为sql buffer的内存区域中,并且只能保存一条最近执行的sql语句,我们可以对保存在sql buffer中的sql 语句进行修改,然后再次执行,sql*plus一般都与数据库打交道。
   除了sql*plus语句,在sql*plus中执行的其它语句我们称之为sql*plus命令。它们执行完后,不保存在sql buffer的内存区域中,它们一般用来对输出的结果进行格式化显示,以便于制作报表。
   下面就介绍一下一些常用的sql*plus命令:

 

SQL*PLUS命令的使用大全
EugeneCao 发表于 2004-09-07
Oracle的sql*plus是与oracle进行交互的客户端工具。在sql*plus中,可以运行sql*plus命令与sql*plus语句。
   我们通常所说的DML、DDL、DCL语句都是sql*plus语句,它们执行完后,都可以保存在一个被称为sql buffer的内存区域中,并且只能保存一条最近执行的sql语句,我们可以对保存在sql buffer中的sql 语句进行修改,然后再次执行,sql*plus一般都与数据库打交道。
   除了sql*plus语句,在sql*plus中执行的其它语句我们称之为sql*plus命令。它们执行完后,不保存在sql buffer的内存区域中,它们一般用来对输出的结果进行格式化显示,以便于制作报表。
   下面就介绍一下一些常用的sql*plus命令:
 
1. 执行一个SQL脚本文件
SQL>start file_name
SQL>@ file_name
我们可以将多条sql语句保存在一个文本文件中,这样当要执行这个文件中的所有的sql语句时,用上面的任一命令即可,这类似于dos中的批处理。
 
2. 对当前的输入进行编辑
SQL>edit
 
3. 重新运行上一次运行的sql语句
SQL>/
 
4. 将显示的内容输出到指定文件
SQL> SPOOL file_name
   在屏幕上的所有内容都包含在该文件中,包括你输入的sql语句。
 
5. 关闭spool输出
SQL> SPOOL OFF
   只有关闭spool输出,才会在输出文件中看到输出的内容。
 
6.显示一个表的结构
SQL> desc table_name
 
7. COL命令:
主要格式化列的显示形式。
该命令有许多选项,具体如下:
COL[UMN] [{ column|expr} [ option ...]]
Option选项可以是如下的子句:
ALI[AS] alias
CLE[AR]
FOLD_A[FTER]
FOLD_B[EFORE]
FOR[MAT] format
HEA[DING] text
JUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]}
LIKE { expr|alias}
NEWL[INE]
NEW_V[ALUE] variable
NOPRI[NT]|PRI[NT]
NUL[L] text
OLD_V[ALUE] variable
ON|OFF
WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]
 
1). 改变缺省的列标题
COLUMN column_name HEADING column_heading
For example:
Sql>select * from dept;
     DEPTNO DNAME                        LOC
---------- ---------------------------- ---------
         10 ACCOUNTING                   NEW YORK
sql>col  LOC heading location
sql>select * from dept;
    DEPTNO DNAME                        location
--------- ---------------------------- -----------
        10 ACCOUNTING                   NEW YORK
 
2). 将列名ENAME改为新列名EMPLOYEE NAME并将新列名放在两行上:
Sql>select * from emp
Department  name           Salary
---------- ---------- ----------
         10 aaa                11        
SQL> COLUMN ENAME HEADING 'Employee|Name'
Sql>select * from emp
            Employee
Department  name           Salary
---------- ---------- ---------- 
         10 aaa                11
note: the col heading turn into two lines from one line.
 
3). 改变列的显示长度:
FOR[MAT] format
Sql>select empno,ename,job from emp;
      EMPNO ENAME      JOB       
---------- ----------     ---------
       7369 SMITH      CLERK     
       7499 ALLEN      SALESMAN  
7521 WARD       SALESMAN  
Sql> col ename format a40
      EMPNO ENAME                                    JOB
----------   ----------------------------------------         ---------
       7369 SMITH                                    CLERK
       7499 ALLEN                                    SALESMAN
       7521 WARD                                    SALESMAN
 
4). 设置列标题的对齐方式
JUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]}
SQL> col ename justify center
SQL> /
      EMPNO           ENAME                   JOB
----------   ----------------------------------------       ---------
       7369 SMITH                                    CLERK
       7499 ALLEN                                    SALESMAN
7521 WARD                                     SALESMAN
对于NUMBER型的列,列标题缺省在右边,其它类型的列标题缺省在左边
 
5). 不让一个列显示在屏幕上
NOPRI[NT]|PRI[NT]
SQL> col job noprint
SQL> /
      EMPNO           ENAME
----------     ----------------------------------------
       7369 SMITH
       7499 ALLEN
7521 WARD
 
6). 格式化NUMBER类型列的显示:
SQL> COLUMN SAL FORMAT $99,990
SQL> /
Employee
Department Name        Salary    Commission
---------- ---------- --------- ----------
30          ALLEN        $1,600    300
 
7). 显示列值时,如果列值为NULL值,用text值代替NULL值
COMM NUL[L] text
SQL>COL COMM NUL[L] text
 
8). 设置一个列的回绕方式
WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]
        COL1
--------------------
HOW ARE YOU?
 
SQL>COL COL1 FORMAT A5
SQL>COL COL1 WRAPPED
COL1
-----
HOW A
RE YO
U?
 
SQL> COL COL1 WORD_WRAPPED
COL1
-----
HOW
ARE
YOU?
 
SQL> COL COL1 WORD_WRAPPED
COL1
-----
HOW A
 
9). 显示列的当前的显示属性值
SQL> COLUMN column_name
 
10). 将所有列的显示属性设为缺省值
SQL> CLEAR COLUMNS
 
8. 屏蔽掉一个列中显示的相同的值
BREAK ON break_column
SQL> BREAK ON DEPTNO
SQL> SELECT DEPTNO, ENAME, SAL
FROM EMP
  WHERE SAL < 2500
  ORDER BY DEPTNO;
DEPTNO      ENAME         SAL
---------- ----------- ---------
10           CLARK        2450
MILLER      1300
20            SMITH       800
ADAMS       1100
 
9. 在上面屏蔽掉一个列中显示的相同的值的显示中,每当列值变化时在值变化之前插入n个空行。
BREAK ON break_column SKIP n
 
SQL> BREAK ON DEPTNO SKIP 1
SQL> /
DEPTNO ENAME SAL
---------- ----------- ---------
10 CLARK 2450
MILLER 1300
 
20 SMITH 800
ADAMS 1100
 
10. 显示对BREAK的设置
SQL> BREAK
 
11. 删除6、7的设置
SQL> CLEAR BREAKS
 
12. Set 命令:
该命令包含许多子命令:
SET system_variable value
system_variable value 可以是如下的子句之一:
APPI[NFO]{ON|OFF|text}
ARRAY[SIZE] {15|n}
AUTO[COMMIT]{ON|OFF|IMM[EDIATE]|n}
AUTOP[RINT] {ON|OFF}
AUTORECOVERY [ON|OFF]
AUTOT[RACE] {ON|OFF|TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]]
BLO[CKTERMINATOR] {.|c}
CMDS[EP] {;|c|ON|OFF}
COLSEP {_|text}
COM[PATIBILITY]{V7|V8|NATIVE}
CON[CAT] {.|c|ON|OFF}
COPYC[OMMIT] {0|n}
COPYTYPECHECK {ON|OFF}
DEF[INE] {&|c|ON|OFF}
DESCRIBE [DEPTH {1|n|ALL}][LINENUM {ON|OFF}][INDENT {ON|OFF}]
ECHO {ON|OFF}
EDITF[ILE] file_name[.ext]
EMB[EDDED] {ON|OFF}
ESC[APE] {\|c|ON|OFF}
FEED[BACK] {6|n|ON|OFF}
FLAGGER {OFF|ENTRY |INTERMED[IATE]|FULL}
FLU[SH] {ON|OFF}
HEA[DING] {ON|OFF}
HEADS[EP] {||c|ON|OFF}
INSTANCE [instance_path|LOCAL]
LIN[ESIZE] {80|n}
LOBOF[FSET] {n|1}
LOGSOURCE [pathname]
LONG {80|n}
LONGC[HUNKSIZE] {80|n}
MARK[UP] HTML [ON|OFF] [HEAD text] [BODY text] [ENTMAP {ON|OFF}] [SPOOL
{ON|OFF}] [PRE[FORMAT] {ON|OFF}]
NEWP[AGE] {1|n|NONE}
NULL text
NUMF[ORMAT] format
NUM[WIDTH] {10|n}
PAGES[IZE] {24|n}
PAU[SE] {ON|OFF|text}
RECSEP {WR[APPED]|EA[CH]|OFF}
RECSEPCHAR {_|c}
SERVEROUT[PUT] {ON|OFF} [SIZE n] [FOR[MAT] {WRA[PPED]|WOR[D_
WRAPPED]|TRU[NCATED]}]
SHIFT[INOUT] {VIS[IBLE]|INV[ISIBLE]}
SHOW[MODE] {ON|OFF}
SQLBL[ANKLINES] {ON|OFF}
SQLC[ASE] {MIX[ED]|LO[WER]|UP[PER]}
SQLCO[NTINUE] {> |text}
SQLN[UMBER] {ON|OFF}
SQLPRE[FIX] {#|c}
SQLP[ROMPT] {SQL>|text}
SQLT[ERMINATOR] {;|c|ON|OFF}
SUF[FIX] {SQL|text}
TAB {ON|OFF}
TERM[OUT] {ON|OFF}
TI[ME] {ON|OFF}
TIMI[NG] {ON|OFF}
TRIM[OUT] {ON|OFF}
TRIMS[POOL] {ON|OFF}
UND[ERLINE] {-|c|ON|OFF}
VER[IFY] {ON|OFF}
WRA[P] {ON|OFF}
 
1). 设置当前session是否对修改的数据进行自动提交
SQL>SET AUTO[COMMIT] {ON|OFF|IMM[EDIATE]| n}
 
2).在用start命令执行一个sql脚本时,是否显示脚本中正在执行的SQL语句
SQL> SET ECHO {ON|OFF}
 
3).是否显示当前sql语句查询或修改的行数
SQL> SET FEED[BACK] {6|n|ON|OFF}
   默认只有结果大于6行时才显示结果的行数。如果set feedback 1 ,则不管查询到多少行都返回。当为off 时,一律不显示查询的行数
 
4).是否显示列标题
SQL> SET HEA[DING] {ON|OFF}
当set heading off 时,在每页的上面不显示列标题,而是以空白行代替
 
5).设置一行可以容纳的字符数
SQL> SET LIN[ESIZE] {80|n}
   如果一行的输出内容大于设置的一行可容纳的字符数,则折行显示。
 
6).设置页与页之间的分隔
SQL> SET NEWP[AGE] {1|n|NONE}
当set newpage 0 时,会在每页的开头有一个小的黑方框。
当set newpage n 时,会在页和页之间隔着n个空行。
当set newpage none 时,会在页和页之间没有任何间隔。
 
7).显示时,用text值代替NULL值
SQL> SET NULL text
 
8).设置一页有多少行数
SQL> SET PAGES[IZE] {24|n}
如果设为0,则所有的输出内容为一页并且不显示列标题
 
9).是否显示用DBMS_OUTPUT.PUT_LINE包进行输出的信息。
SQL> SET SERVEROUT[PUT] {ON|OFF} 
在编写存储过程时,我们有时会用dbms_output.put_line将必要的信息输出,以便对存储过程进行调试,只有将serveroutput变量设为on后,信息才能显示在屏幕上。
 
10).当SQL语句的长度大于LINESIZE时,是否在显示时截取SQL语句。
SQL> SET WRA[P] {ON|OFF}
   当输出的行的长度大于设置的行的长度时(用set linesize n命令设置),当set wrap on时,输出行的多于的字符会另起一行显示,否则,会将输出行的多于字符切除,不予显示。
 
11).是否在屏幕上显示输出的内容,主要用与SPOOL结合使用。
SQL> SET TERM[OUT] {ON|OFF}
   在用spool命令将一个大表中的内容输出到一个文件中时,将内容输出在屏幕上会耗费大量的时间,设置set termspool off后,则输出的内容只会保存在输出文件中,不会显示在屏幕上,极大的提高了spool的速度。
 
12).将SPOOL输出中每行后面多余的空格去掉
SQL> SET TRIMS[OUT] {ON|OFF} 
   
13)显示每个sql语句花费的执行时间
set TIMING  {ON|OFF}
 
14.修改sql buffer中的当前行中,第一个出现的字符串
C[HANGE] /old_value/new_value
SQL> l
   1* select * from dept
SQL> c/dept/emp
   1* select * from emp
 
15.编辑sql buffer中的sql语句
EDI[T]
 
16.显示sql buffer中的sql语句,list n显示sql buffer中的第n行,并使第n行成为当前行
L[IST] [n]
 
17.在sql buffer的当前行下面加一行或多行
I[NPUT]
 
18.将指定的文本加到sql buffer的当前行后面
A[PPEND]
SQL> select deptno,
   2  dname
   3  from dept;
     DEPTNO DNAME
---------- --------------
         10 ACCOUNTING
         20 RESEARCH
         30 SALES
         40 OPERATIONS
 
SQL> L 2
   2* dname
SQL> a ,loc
   2* dname,loc
SQL> L
   1  select deptno,
   2  dname,loc
   3* from dept
SQL> /
 
     DEPTNO DNAME          LOC
---------- -------------- -------------
         10 ACCOUNTING     NEW YORK
         20 RESEARCH       DALLAS
         30 SALES          CHICAGO
         40 OPERATIONS     BOSTON
 
19.将sql buffer中的sql语句保存到一个文件中
SAVE file_name
 
20.将一个文件中的sql语句导入到sql buffer中
GET file_name
 
21.再次执行刚才已经执行的sql语句
RUN
or
/
 
22.执行一个存储过程
EXECUTE procedure_name
 
23.在sql*plus中连接到指定的数据库
CONNECT user_name/passwd@db_alias
 
24.设置每个报表的顶部标题
TTITLE
 
25.设置每个报表的尾部标题
BTITLE
 
26.写一个注释
REMARK [text]
 
27.将指定的信息或一个空行输出到屏幕上
PROMPT [text]
 
28.将执行的过程暂停,等待用户响应后继续执行
PAUSE [text]
 
Sql>PAUSE Adjust paper and press RETURN to continue.
 
29.将一个数据库中的一些数据拷贝到另外一个数据库(如将一个表的数据拷贝到另一个数据库)
COPY {FROM database | TO database | FROM database TO database}
{APPEND|CREATE|INSERT|REPLACE} destination_table
[(column, column, column, ...)] USING query
 
sql>COPY FROM SCOTT/TIGER@HQ TO JOHN/CHROME@WEST 
create emp_temp
USING SELECT * FROM EMP
 
30.不退出sql*plus,在sql*plus中执行一个操作系统命令:
HOST
 
Sql> host hostname
该命令在windows下可能被支持。
 
31.在sql*plus中,切换到操作系统命令提示符下,运行操作系统命令后,可以再次切换回sql*plus:
!
 
sql>!
$hostname
$exit
sql>
 
该命令在windows下不被支持。
 
32.显示sql*plus命令的帮助
HELP
如何安装帮助文件:
Sql>@ ?\sqlplus\admin\help\hlpbld.sql ?\sqlplus\admin\help\helpus.sql
Sql>help index
 
33.显示sql*plus系统变量的值或sql*plus环境变量的值
Syntax
SHO[W] option
where option represents one of the following terms or clauses:
system_variable
ALL
BTI[TLE]
ERR[ORS] [{FUNCTION|PROCEDURE|PACKAGE|PACKAGE BODY|
TRIGGER|VIEW|TYPE|TYPE BODY} [schema.]name]
LNO
PARAMETERS [parameter_name]
PNO
REL[EASE]
REPF[OOTER]
REPH[EADER]
SGA
SPOO[L]
SQLCODE
TTI[TLE]
USER
 
1) . 显示当前环境变量的值:
Show all
 
2) . 显示当前在创建函数、存储过程、触发器、包等对象的错误信息
Show error
当创建一个函数、存储过程等出错时,变可以用该命令查看在那个地方出错及相应的出错信息,进行修改后再次进行编译。
 
3) . 显示初始化参数的值:
show PARAMETERS [parameter_name]
 
4) . 显示数据库的版本:
show REL[EASE]
 
5) . 显示SGA的大小
show SGA
 
6). 显示当前的用户名
show user 

- 作者: hubdog 2004年11月5日, 星期五 17:22  回复(0) |  引用(0) 加入博采

MySQL管理员指南
Mysql数据库介绍
    MySQL是一个真正的多用户、多线程SQL数据库服务器。SQL(结构化查询语言)是世界上最流行的和标准
化的数据库语言。MySQL是以一个客户机/服务器结构的实现,它由一个服务器守护程序mysqld和很多不同的
客户程序和库组成。

MySQL管理员指南

--------------------------------------------------------------------------------
阅读: 时间:2004-11-3 6:36:44 来源:黑客基地 编辑:古典辣M°  
 
Mysql数据库介绍
    MySQL是一个真正的多用户、多线程SQL数据库服务器。SQL(结构化查询语言)是世界上最流行的和标准
化的数据库语言。MySQL是以一个客户机/服务器结构的实现,它由一个服务器守护程序mysqld和很多不同的
客户程序和库组成。

    SQL是一种标准化的语言,它使得存储、更新和存取信息更容易。例如,你能用SQL语言为一个网站检索
产品信息及存储顾客信息,同时MySQL也足够快和灵活以允许你存储记录文件和图像。

    MySQL 主要目标是快速、健壮和易用。最初是因为我们需要这样一个SQL服务器,它能处理与任何可不昂
贵硬件平台上提供数据库的厂家在一个数量级上的大型数据库,但速度更快,MySQL就开发出来。自1996年以
来,我们一直都在使用MySQL,其环境有超过 40 个数据库,包含 10,000个表,其中500多个表超过7百万行
,这大约有100 个吉字节(GB)的关键应用数据。

Mysql数据库特点
1.  使用核心线程的完全多线程。这意味着它能很容易地利用多CPU(如果有)。
2.  可运行在不同的平台上。
3.  多种列类型:1、 2、 3、4、和 8 字节长度的有符号/无符号整数(INT)、FLOAT、DOUBLE、CHAR、
    VARCHAR、TEXT、BLOB、DATE、TIME、DATETIME、 TIMESTAMP、YEAR、SET和ENUM类型。
4.  利用一个优化的一遍扫描多重联结(one-sweep multi-join)非常快速地进行联结(join)。
5.  在查询的SELECT和WHERE部分支持全部运算符和函数。
6.  通过一个高度优化的类库实现SQL函数库并且像他们能达到的一样快速,通常在查询初始化后不应该有任
    何内存分配。
7.  全面支持SQL的GROUP BY和ORDER BY子句,支持聚合函数( COUNT()、COUNT(DISTINCT)、AVG()、STD()、
    SUM()、 MAX()和MIN() )。
8.  支持ANSI SQL的LEFT OUTER JOIN和ODBC语法。
9.  你可以在同一查询中混用来自不同数据库的表。
10. 一个非常灵活且安全的权限和口令系统,并且它允许基于主机的认证。口令是安全的,因为当与一个服
    务器连接时,所有的口令传送被加密。
11. ODBC for Windiws 95。
12. 具备索引压缩的快速B树磁盘表。
13. 每个表允许有16个索引。每个索引可以由1~16个列或列的一部分组成。最大索引长度是 256 个字节(在
    编译MySQL时,它可以改变)。一个索引可以使用一个CHAR或VARCHAR字段的前缀。
14. 定长和变长记录。
15. 用作临时表的内存散列表。
16. 大数据库处理。我们正在对某些包含 50,000,000 个记录的数据库使用MySQL。
17. 所有列都有缺省值,你可以用INSERT插入一个表列的子集,那些没用明确给定值的列设置为他们的缺省
    值。
18. 一个非常快速的基于线程的内存分配系统。
19. 没有内存漏洞。用一个商用内存漏洞监测程序测试过(purify)。
20. 包括myisamchk,一个检查、优化和修复数据库表的快速实用程序。
21. 全面支持ISO-8859-1  Latin1 字符集。
22. 所有数据以 ISO-8859-1  Latin1 格式保存。所有正常的字符串比较是忽略大小写的。
23. DELETE、INSERT、REPLACE和UPDATE 返回有多少行被改变(受影响)。
24. 函数名不会与表或列名冲突。例如ABS是一个有效的列名字。对函数调用的唯一限制是函数名与随后的
    "("不能有空格。
25. 所有MySQL程序可以用选项--help或-?获得联机帮助。
26. 服务器能为客户提供多种语言的出错消息。
27. 客户端使用TCP/IP 连接或Unix套接字(socket)或NT下的命名管道连接MySQL。
28. MySQL特有的SHOW命令可用来检索数据库、表和索引的信息,EXPLAIN命令可用来确定优化器如何解决一
    个查询。
   
MySQL服务器的启动与停止

一、启动服务器的方法
启动服务器由三种主要方法:

1、 直接调用mysqld。
#./mysqld&
这可能是最不常用的方法,建议不要多使用。

2、调用safe_mysqld脚本,最好的方法。
#./safe_mysqld -O join_buffer=128M -O key_buffer=128M -O record_buffer=256M -O sort_buffer=128M -O table_cache=2048 -O tmp_table_size=16M -O max_connections=2048 &

3、调用mysql.server脚本。
safe_mysqld脚本安装在MySQL安装目录的bin目录下,或可在MySQL源代码分发的scripts目录下找到。
mysql.server脚本安装在MySQL安装目录下的share/mysqld目录下或可以在MySQL源代码分发的support_files
目录下找到。如果你想使用它们,你需要将它们拷贝到适当的目录下mysql/bin下。
#./mysql.server start

Sun Solariys开机自动启mysql的方法
写一个启动和关闭的批处理文件Web (在路径/etc/init.d 下), 内容如下:

#!/bin/sh
OPT_=$1

case "$OPT_" in
    start)
 /bin/echo "$0 : (start)"
 #
 # Your service startup command goes here.
 #
       /usr/local/apache/bin/apachectl start
       /home3/mysql/bin/safe_mysqld -O join_buffer=128M -O key_buffer=128M -O record_buffer=256M -O sort_buffer=128M -O table_cache=2048 -O tmp_table_size=16M -O max_connections=2048 &

 # NOTE: Must exit with zero unless error is severe.
 exit 0
 ;;
    stop)
 /bin/echo "$0 : (stop)"
 #
 # Your service shutdown command goes here.
 #
       /usr/local/apache/bin/apachectl stop

 # NOTE: Must exit with zero unless error is severe.
 exit 0
 ;;
    *) /bin/echo ''
 /bin/echo "Usage: $0 [start|stop]"
 /bin/echo "       Invalid argument ==> \"${OPT_}\""
 /bin/echo ''
 exit 0
 ;;
esac
确认此文件有可执行的权利
#chmod 500 web
#cd /etc/rc2.d
#ln -s ../init.d/web S99mysql
在系统启动时,S99mysql脚本将自动用一个start参数调用。注意头字母必须大写。

二、停止服务器的方法
1、要手工停止服务器,使用mysqladmin:
#mysqladmin -u 用户名 -p'密码' shutdown
2、 调用mysql.server脚本,最好的方法。
#./mysql.server stop
3、 直接杀掉OS的进程号
#kill -9 进程号
这可能是最不常用的方法,建议不要多使用。

要自动停止服务器,你不需做特别的事情。只需要加另外一个关闭程序。
#cd /etc/rc0.d
#ln -s ../init.d/web K01mysql
在系统启动时,K01mysql脚本将自动用一个stop参数调用。

MySQL目录结构和常用命令
一、 数据目录的位置
这是默认的mysql目录结构
bin        info       libexec    share      var
include    lib        man        sql-bench  

一个缺省数据目录被编译进了服务器,如果你从一个源代码分发安装MySQL,典型的缺省目录为
/usr/local/var,如果从RPM文件安装则为/var/lib/mysql,如果从一个二进制分发安装则是
/usr/local/mysql/data。
作为一名MySQL管理员,你应该知道你的数据目录在哪里。如果你运行多个服务器,你应该是到所有数据目录
在哪里,但是如果你不知道确切的位置,由多种方法找到它:

1、使用mysqladmin variables从你的服务器直接获得数据目录路径名。查找datadir变量的值,在Unix上,其输出类似于:
%mysqladmin -u username -p'*****' variables

+----------------------+----------------------+
| variable_name        | Value                |
+----------------------+----------------------+
| back_log             | 5                    |
| connect_timeout      | 5                    |
| basedir              | /var/local/          |
| datadir              | /usr/local/var/      |
....
2、查找mysql运行的路径
%ps -ef | grep mysqld           

二、数据目录结构
每个数据库对应于数据目录下的一个目录。
在一个数据库中的表对应于数据目录下的文件。
数据目录也包含由服务器产生的几个状态文件,如日志文件。这些文件提供了关于服务器操作的重要信息。
对管理特别在出了问题而试图确定问题原因时很有价值。

1、数据库表的表示
数据库目录中有3种文件:一个样式(描述文件)、一个数据文件和一个索引文件。每个文件的基本名是表
名,文件名扩展名代表文件类型。扩展名如下表。数据和索引文件的扩展名指出表使用老式IASM索引或新式
MyISAM索引。

MySQL文件类型
文件类型 文件名扩展名   文件内容  
样式文件 .frm    描述表的结构(它的列、列类型、索引等)
数据文件 .ISD(ISAM)或.MYD(MyISAM) 包含表里所有的数据
索引文件 .ISM(ISAM)或.MYI(MyISAM) 包含数据文件上的所有索引的索引树


当你发出一条CREATE TABLE tbl_name时语句定义表的结构时,服务器创建一个名为tbl_name.frm的文件,它
包括该结构的内部编码,同时也创建一个空数据和索引文件,初始化为包含指出无记录和无索引的信息(如
果CREATE TABLE语句包括索引指定,索引文件反映出这些索引)。对应于表的文件的属主和模式被设置为只
允许MySQL服务器用户访问。

下面介绍一下常用的mysql命令
进入mysql数据库
#./mysql -u 用户名 -p'密码'
 查看所有的数据库
 mysql> show databases;
 进入一个特定的数据库
 mysql> use 数据库名;
 查看数据库里所有的表
 mysql> show tables;
 把表改名
 mysql> alter table 表名1 rename 表名2;
 例子:mysql>alter table dept rename dept2;

2、 建索引的注意事项:
先要把要加索引的字段设为非空
mysql> alter table 表名 change 字段名 字段名 字段描述 not null;
例子:
我们创建这样一个表
mysql> create table employee
( id int(5) not null,
 depno int(5),
 name varchar(20) not null,
 cardnumber bigint(15) not null);

mysql> alter table employee change depno depno int(5) not null;
加索引
mysql> alter table 表名 add index 索引名 (字段名1[,字段名2 ...]);
例子: mysql> alter table employee add index emp_name (name);

加主关键字的索引
mysql> alter table 表名 add primary key (字段名);
例子: mysql> alter table employee add primary key(id);

加唯一限制条件的索引
mysql> alter table 表名 add unique 索引名 (字段名);
例子: mysql> alter table employee add unique emp_name2(cardnumber);

查看某个表的索引
mysql> show index from 表名;
例子: mysql> show index from employee;

删除某个索引
mysql> alter table 表名 drop index 索引名;
例子: mysql>alter table employee drop index emp_name;

MySQL用户管理
MySQL管理员应该知道如何设置MySQL用户账号,指出哪个用户可以连接服务器,从哪里连接,连接后能做什
么。MySQL 3.22.11开始引入两条语句使得这项工作更容易做:GRANT语句创建MySQL用户并指定其权限,而
REVOKE语句删除权限。两条语句扮演了mysql数据库的前端角色,并提供与直接操作这些表的内容不同的另一
种方法。CREATE和REVOKE语句影响4个表:

授权表内容:
user 能连接服务器的用户以及他们拥有的任何全局权限
db 数据库级权限
tables_priv 表级权限
columns_priv 列级权限

还有第5个授权表(host),但它不受GRANT和REVOKE的影响。
当你对一个用户发出一条GRANT语句时,在user表中为该用户创建一条记录。如果语句指定任何全局权限(管
理权限或适用于所有数据库的权限),这些也记录在user表中。如果你指定数据库、表和列级权限,他们被
分别记录在db、tables_priv和columns_priv表中。

在下面的章节中,我们将介绍如何设置MySQL用户账号并授权。我们也涉及如何撤权和从授权表中删除用户。

一、创建用户并授权
GRANT语句的语法看上去像这样:

GRANT privileges (columns)
    ON what
    TO user IDENTIFIED BY "password"
    WITH GRANT OPTION 
要使用该语句,你需要填写下列部分:

privileges
授予用户的权限,下表列出可用于GRANT语句的权限指定符:
权限指定符 权限允许的操作:
ALTER 修改表和索引
CREATE 创建数据库和表
DELETE 删除表中已有的记录
DROP 抛弃(删除)数据库和表
INDEX 创建或抛弃索引
INSERT 向表中插入新行
REFERENCE 未用
SELECT 检索表中的记录
UPDATE 修改现存表记录
FILE 读或写服务器上的文件
PROCESS 查看服务器中执行的线程信息或杀死线程
RELOAD 重载授权表或清空日志、主机缓存或表缓存。
SHUTDOWN 关闭服务器
ALL 所有;ALL PRIVILEGES同义词
USAGE 特殊的"无权限"权限

columns
权限运用的列,它是可选的,并且你只能设置列特定的权限。如果命令有多于一个列,应该用逗号分开它们.

what
权限运用的级别。权限可以是全局的(适用于所有数据库和所有表)、特定数据库(适用于一个数据库中的
所有表)或特定表的。可以通过指定一个columns字句是权限是列特定的。

user
权限授予的用户,它由一个用户名和主机名组成。MySQL中的一个用户名就是你连接服务器时指定的用户名,
该名字不必与你的Unix登录名或Windows名联系起来。缺省地,如果你不明确指定一个名字,客户程序将使用
你的登录名作为MySQL用户名。这只是一个约定。你可以在授权表中将该名字改为nobody,然后以nobody连接
执行需要超级用户权限的操作。

password
赋予用户的口令,它是可选的。如果你对新用户没有指定IDENTIFIED BY子句,该用户不赋给口令(不安全)。
对现有用户,任何你指定的口令将代替老口令。如果你不指定口令,老口令保持不变,当你用IDENTIFIED BY
时,口令字符串用改用口令的字面含义,GRANT将为你编码口令,不要象你用SET PASSWORD 那样使用password()
函数。

WITH GRANT OPTION子句是可选的。如果你包含它,用户可以授予权限通过GRANT语句授权给其它用户。你可
以用该子句给与其它用户授权的能力。

用户名、口令、数据库和表名在授权表记录中是大小写敏感的,主机名和列名不是。
举例:创建一个超级用户test1
mysql> grant all privilleges on *.* to test1@localhost identified by '123456' with grant option;
   创建一个只能查询的用户 test2
mysql> grant select on *.* to test2@localhost identified by '9876543';

二、撤权并删除用户
要取消一个用户的权限,使用REVOKE语句。REVOKE的语法非常类似于GRANT语句,除了TO用FROM取代并且没有
INDETIFED BY和WITH GRANT OPTION子句:

REVOKE privileges (columns) ON what FROM user

user部分必须匹配原来GRANT语句的你想撤权的用户的user部分。privileges部分不需匹配,你可以用GRANT
语句授权,然后用REVOKE语句只撤销部分权限。REVOKE语句只删除权限,而不删除用户。即使你撤销了所有
权限,在user表中的用户记录依然保留,这意味着用户仍然可以连接服务器。要完全删除一个用户,你必须
用一条DELETE语句明确从user表中删除用户记录:

#mysql -u root mysql
mysql>DELETE FROM user
     ->WHERE User="user_name" and Host="host_name";
mysql>FLUSH PRIVILEGES; 
DELETE语句删除用户记录,而FLUSH语句告诉服务器重载授权表。(当你使用GRANT和REVOKE语句时,表自动
重载,而你直接修改授权表时不是。)
举例:删除用户test1
mysql> revoke all on *.* from test2@localhost;
mysql> use mysql;
mysql> delete from user where user='test' and host='localhost';
mysql> flush privileges;
MySQL数据库备份
在数据库表丢失或损坏的情况下,备份你的数据库是很重要的。已经知道表被破坏,用诸如vi或Emacs等编辑
器试图直接编辑它们,这对表绝对不是件好事!

备份数据库两个主要方法是用mysqldump程序或直接拷贝数据库文件(如用cp、cpio或tar等)。每种方法都
有其优缺点:

mysqldump与MySQL服务器协同操作。直接拷贝方法在服务器外部进行,并且你必须采取措施保证没有客户正
在修改你将拷贝的表,一般在数据库关闭情况下做。mysqldump比直接拷贝要慢些。mysqldump生成能够移植
到其它机器的文本文件,甚至那些有不同硬件结构的机器上。直接拷贝文件可以移植到同类机器上,但不能
移植到其它机器上,除非你正在拷贝的表使用MyISAM存储格式。

一、使用mysqldump备份和拷贝数据库
当你使用mysqldump程序产生数据库备份文件时,缺省地,文件内容包含创建正在倾倒的表的CREATE语句和包
含表中行数据的INSERT语句。换句话说,mysqldump产生的输出可在以后用作mysql的输入来重建数据库。

Mysqldump参数如下:
#mysqldump -u 用户名-p'密码' 数据库名 [表名] > 操作系统下文件名

举例:#./mysqldump -u root -p'123456' samp_db>samp.db.txt
输出文件的开头看起来象这样:
# MySQL Dump 6.0
#
# Host: localhost    Database: samp_db
#---------------------------------------
# Server version 3.23.2-alpha-log
#
# Table structure for table 'absence'
#
CREATE TABLE absence(
  student_id int(10) unsigned DEFAULT '0' NOT NULL,
  date date DEFAULT '0000-00-00' NOT NULL,
  PRIMARY KEY (student_id,date)
);
#
# Dumping data for table 'absence'
#
INSERT INTO absence VALUES (3,'1999-09-03');
INSERT INTO absence VALUES (5,'1999-09-03');
INSERT INTO absence VALUES (10,'1999-09-08');
...... 
文件剩下的部分有更多的INSERT和CREATE TABLE语句组成。
输出单个的表:
#mysqldump samp_db student score event absence >grapbook.sql
#mysqldump samp_db member president >hist-league.sql

缺省地,mysqldump在写入前将一个表的整个内容读进内存。这通常确实不必要,并且实际上如果你有一个大
表,几乎是失败的。你可用--quick选项告诉mysqldump只要它检索出一行就写出每一行。为了进一步优化倾
倒过程,使用--opt而不是--quick。--opt选项打开其它选项,加速数据的倾倒和把它们读回。

二、使用直接拷贝数据库的备份和拷贝方法
另一种不涉及mysqldump备份数据库和表的方式是直接拷贝数据库表文件。典型地,这用诸如cp、tar或cpio
实用程序。本文的例子使用cp。
%cd DATADIR
%cp -r samp_db /usr/archive/mysql
单个表可以如下备份:

%cd DATADIR/samp_db
%cp member.* /usr/archive/mysql/samp_db
%cp score.* /usr/archive/mysql/samp_db
....
当你完成了备份时,你可以重启服务器(如果关闭了它)或释放加在表上的锁定(如果你让服务器运行)。
要用直接拷贝文件把一个数据库从一台机器拷贝到另一台机器上,只是将文件拷贝到另一台服务器主机的适
当数据目录下即可。要确保文件是MyIASM格式或两台机器有相同的硬件结构,否则你的数据库在另一台主机
上有奇怪的内容。你也应该保证在另一台机器上的服务器在你正在安装数据库表时不访问它们。

建一个sh文件bakmysql.sh
#!/bin/sh
cd /usr/local/mysql/
tar cvf  /mount2/mysqlvar.tar var

 可以设到操作系统自动运行。
root用户crontab文件
/var/spool/cron/crontabs/root增加以下内容

0 2 1 * * /mount2/bakmysql.sh

 #/etc/rc2.d/S75cron stop
 #/etc/rc2.d/S75cron start
 重新击活Sun Solaris自动处理进程

三、用备份恢复数据
数据库损坏的发生有很多原因,程度也不同。如果你走运,你可能仅损坏一两个表(如掉电),如果你倒霉
,你可能必须替换整个数据目录(如磁盘损坏)。在某些情况下也需要恢复,比如用户错误地删除了数据库
或表。不管这些倒霉事件的原因,你将需要实施某种恢复。
如果表损坏但没丢失,尝试用myisamchk或isamchk修复它们,如果这样的损坏可有修复程序修复。

1、 恢复整个数据库
Mysqldump参数如下:
#mysqldump -u 用户名-p'密码' 数据库名 < 操作系统下文件名

举例:
先在Mysql里创建另一个数据库
mysql> create database test;
然后将备份的数据导入
#mysqldump -u root -p'123456' test2 < samp.db.txt


 

- 作者: hubdog 2004年11月5日, 星期五 17:18  回复(0) |  引用(0) 加入博采

绕过缓冲溢出防护系统
绕过缓冲溢出防护系统

绕过缓冲溢出防护系统

--------------------------------------------------------------------------------
阅读: 时间:2004-11-2 7:57:39 来源:黑客基地 编辑:古典辣M°  
 
文章翻译:SystEm32[ITS]

phrack62 Bypassing_Win_BufferOverflow_Protection
--[目录

1-介绍

2-栈回溯

3-躲避内核Hooks
3.1-内核堆栈回溯
3.2-伪造堆栈栈帧

4-躲避用户态Hooks
4.1-执行问题-不完全的API Hooking
4.1.1-未能Hooking所有的API版本
4.1.2-未能Hooking地足够深
4.1.3-未能Hooking地足够彻底

4.2-蹦床的乐趣
4.2.1 补丁表跳转
4.2.2 跳过Hook

4.3-重新修补Win32 API

4.4-攻击用户态组件
4.4.1 IAT 补丁
4.4.2 数据节补丁

4.5-直接调用系统调用(Syscalls)

5.总结

--[1-介绍
近来一段时间,一些商业化的安全机构开始提出一些方案来解决缓冲区溢出问题。本文分析这些保护方案,并且介绍一些技术来绕过这些缓冲区溢出保护系统.

现在不少商业化组织创造了许多技术来防止缓冲区溢出。最近,最流行的一种技术是栈回溯技术,它是一种最容易实现的防溢出技术,但是同时它也是最容易被攻击者绕过的一项技术.

值得一提的是,许多著名的商业化产品,比如Entercept和Okena就使用了这项技术。

--[2-栈回溯
现存的大多数商业安全体系实际上并不是防止缓冲区溢出,而是试图检测Shellcode的执行.

最普遍的检测Shellcode的技术是检查代码页的权限,通过检测代码是否在一个可写的内存页上执行来判断是否执行了Shellcode.这种办法是可行的,因为代码段的内存属性通常是不可写的,并且X86体系不支持non-executable这种内存属性位。

有些溢出防护体系也执行一些额外的检查,用来判断代码的内存页是否属于一个PE文件节区的内存映射,并且不属于一个匿名的内存节区

[-----------------------------------------------------------]

page = get_page_from_addr( code_addr );
if (page->permissions & WRITABLE)
return BUFFER_OVERFLOW;

ret = page_originates_from_file( page );
if (ret != TRUE)
return BUFFER_OVERFLOW;

[-----------------------------------------------------------]
Pseudo code for code page permission checking
依赖栈回溯的缓冲区溢出保护技术(BOPT)并不真正创建一个不可执行的堆栈段,而是通过Hook操作系统调用来监测Shellcode的执行。

大多数的操作系统可以在用户态或者内核态被Hook.

下面的章节我们讲述如何逃避内核hook,再下一节讲述如何绕过用户态hook。

--[3-逃避内核态hook
当hook内核时,主机入侵保护系统(HIPS)必须能够监测用户态的API是被哪里调用的。

由于kernel32.dll和ntdll.dll中的函数被大量的调用,一个API调用通常与真正的系统陷阱调用( syscall trap call)
相隔很多栈帧。因此,一些入侵防护系统依赖栈回溯来定位系统调用的原始调用者。

--[3.1-内核栈回溯
虽然栈回溯可以发生用户态和内核态,但是相比用户态组件而言,栈回溯技术对于缓冲区溢出保护技术的内核组件而言要重要得多.现有的商业BOPT的内核组件完全依赖栈回溯来检测Shellcode的执行,因此逃避内核Hook可以简化为使栈回溯机制失效。
栈回溯牵涉到历遍栈帧,和把返回地址传递给上层的缓冲溢出检测程序来进行检测。

通常情况下,有一个附加的"return into libc"检查,包括检查一个返回地址是否指向Call或者Jmp的下一条指令。最基本的栈回溯操作的代码(通常被用于BOPT),就像下面这个一样
[-----------------------------------------------------------]

while (is_valid_frame_pointer( ebp )) {
ret_addr = get_ret_addr( ebp );

if (check_code_page(ret_addr) == BUFFER_OVERFLOW)
return BUFFER_OVERFLOW;

if (does_not_follow_call_or_jmp_opcode(ret_addr))
return BUFFER_OVERFLOW;

ebp = get_next_frame( ebp );
}

[-----------------------------------------------------------]
Pseudo code for BOPT stack backtracing
当讨论如何逃避栈回溯,最要弄明白的一点就是栈回溯如何在X86体系上工作的,当调用一个函数时,一个典型的栈帧看起来就像下面这个一样:

: :
|-------------------------|
| function B parameter #2 |
|-------------------------|
| function B parameter #1 |
|-------------------------|
| return EIP address |
|-------------------------|
| saved EBP |
|=========================|
| function A parameter #2 |
|-------------------------|
| function A parameter #1 |
|-------------------------|
| return EIP address |
|-------------------------|
| saved EBP |
|-------------------------|
EBP寄存器指向下一个栈帧。没有EBP寄存器,就会非常困难,或者根本不可能正确地标识和追踪所有的栈帧

现代编译器通常不使用EBP作为栈帧指针,而是作为一个通用寄存器,经过EBP优化,一个栈帧看起来如下

|-----------------------|
| function parameter #2 |
|-----------------------|
| function parameter #1 |
|-----------------------|
| return EIP address |
|-----------------------|
注意EBP寄存器并没有出现在栈中,没有EBP寄存器,缓冲区溢出检测技术就没法准确地实施栈回溯.这样一来,他们就很难进行检测,一个简单的"return into libc "型的攻击就可以绕过保护。

简单的调用比BOPT hook住的API更底层的API可以使这种检测技术失效。

--[3.2-伪造栈帧

由于栈是在Shellcode的完全控制之下的,所以可以在API调用之前彻底更改它的内容,专门改造过的栈帧可以被用来绕过缓冲溢出的监测.

如同前面解释的那样,缓冲溢出检测工具寻找格法代码的3个关键标志:只读的页属性,内存映射文件节区和指向call,jmp后面的指令的返回地址.Since function pointers change
calling semantics, BOPT do not (and cannot) check that a call or jmp
actually points to the API being called. Most importantly, the BOPT cannot
check return addresses beyond the last valid EBP frame pointer
(it cannot stack backtrace any further).

因此,逃避BOPT可以通过创建一个带有有效返回地址的最终(final)栈帧,这个返回地址必须指向一条驻留在只读内存页上的来自于内存映射文件节的,并且紧跟在一条call或者jmp指令之后的指令.假设伪造的返回地址合理的接近于第2个返回地址,Shellcodeo可以轻松地再次获得控制权

为了指向伪造的返回地址,理想的指令顺序是
[-----------------------------------------------------------]

jmp [eax] ; or call [eax], or another register
dummy_return: ... ; some number of nops or easily
; reversed instructions, e.g. inc eax
ret ; any return will do, e.g. ret 8

[-----------------------------------------------------------]
绕过内核BOPT组件很容易,因为它们必须依赖用户控制的数据(栈)来检验API调用的有效性,通过正确地操作栈,可以有效地结束站返回地址的分析

这种栈回溯逃避技术也影响用户态的hooks

--[4.逃避用户态hooks
假使在一个有效的内存区域内出现了一系列正确的指令,那么绕过内核缓冲溢出保护是可能的.相似的技术可以被用来绕过用户态的BOPT组件,更加的是,由于Shellcode运行的时候拥有和用户态Hook相同的权限,我们还能采取其他不少技术来逃避BOPT的监测.

--[4.1-实际问题-不完全的API Hooking
用户态缓冲溢出防护技术存在很多问题.例如攻击者会选择很多不同的办法来实现他们的目的,而溢出保护系统可能只能检测其中的一部分.

尝试预先判断一个攻击者会如何构造它的Shellcode是非常困难的,甚至是不可能的,要选择一种好的办法并不容易,有很多障碍横在你面前,如
a.没有同时考虑到API调用的UNICODE和ANSI版本
b.没有考虑到API的链状调用关系,比如很多kernel32.dll中的函数仅仅是把ntdll.dll中的函数微微包装
c.Microsoft Windows API的经常性的更改

--[4.1-没有Hook API的所有版本
实行用户态Hooking时,一种最常遇到的失误就是没有完全覆盖代码路径.为了阻止恶意代码,所有攻击者可以利用的API都必须被Hook.这就要求溢出保护系统Hook住攻击者必须用到的代码,然而,就像我们下面要揭示的那样,一旦一个攻击者已经开始执行他的代码,第3方保护系统就很难再掌握他所有的行动,事实上,我们已经测试过的商业保护系统中,没有一个能有效覆盖攻击者的代码路径

很多Windows的API有2个不同的版本, ANSI和UNICODE。ANSI函数通常以A结尾,而UNICODE以W结尾.ANSI的函数一般仅仅是UNICODE函数的简单包装,例如, CreateFileA是一个ANSI函数,传递给它的参数被它转换成UNICODE字符串,然后它再调用CreateFileW.除非我们Hook住 API的ANSI和UNICODE2个版本,否则攻击者可以通过调用API的另一个版本来绕过我们的保护机制

例如, Entercept4.1 Hook了LoadLibraryA,但是它忘记了Hook LoadlibraryW.如果一个保护系统仅仅Hook了API的一个版本,那它应该Hook UNICODE版本的API,在这一方面,Okenal/CSA做得比较好,它Hook了 LoadLibraryA,LoadlibraryW,LoadlibraryExA,LoadlibraryExW.不幸的是,对于第3方溢出保护系统来说,简单的多Hook几个kernel32.dll的函数并不够.

--[4.1.2-没有Hook得足够深
在WindowsNT 中,kernel32.dll只是Ntdll.dll得简单包装,但是大多数的溢出保护系统并没有Hook ntdll.dll里面的函数,这个错误和没有Hook API的2个版本很相似,攻击者可以直接调用ntdll.dll里的函数来绕过保护系统在Kernel32.dll里面设置的检查.

例如,NAI Entercept尝试检测Shellcode调用kernel32.dll中的GetProcAddress(),然而,Shellcode可以被改写成调用ntdll.dll的LdrGetProcedureAddress(),这可以达到相同的目的,并且绕过了检测.

一般而言,shellcode可以完全直接避开用户态的hook,通过调用系统调用来达到目的.(见4.5小节)

--[4.1.3-没有充分地Hook-
各种不同的Win32 API之间的相互作用是非常复杂的,并且很难弄清楚,一不小心就会给入侵者留下一个进入的窗口.

例如,Okena/CSA和NAI entercept都hook了WinExec试图防止攻击者执行一个进程,WinExec调用顺序如下
WinExec()-->CreateProcessA()-->CreateProcessInternalA()

Okena/CSA 和NAI entercept Hook了WinExec()和CreateProcessA(),(参见附录A,,但是,这2种系统都没Hook CreateProcessInternalA()(被kernel32.dll导出),当编写Shellcode时,攻击者可以使用 CreateProcessInternalA()来替代WinExec().

在调用CreateProcessInternalA() 之前,CreateProcessA()压入2个NULL进栈,因此Shellcode只需要压入2个Null进栈,然后直接调用 CreateProcessInteralA(),便可逃避这2种产品的用户态Hook的监测.

当新的DLLs和APIs发布时,Win32 API之间的相互作用更加复杂化了,这使问题更加复杂。第三方保护系统在实施他们的溢出保护技术的时候会很不利,一个小小的失误就可能被攻击者利用.
 

- 作者: hubdog 2004年11月5日, 星期五 17:14  回复(0) |  引用(0) 加入博采

拒绝默认,更改DOS默认路径
DOS,Disk Operating System。昔日微软的磁盘操作系统,想必大家还没忘记!虽然微软Windows系统横行,但依然能找到它的踪影。在Windows中使用DOS将更加人性化,不过一些默认属性是不是干扰着你,如本文提及的DOS初始默认路径。不过没关系,看过本文,你就可以左右它了!  在Windows NT系统中,DOS的名称已经变更为"命令提示符",点击"开始→附件→命令提示符"就可以瞧见经典的DOS窗口。注意没有,打开后默认的路径已经是当前用户专有文件夹存储的路径,如"C:\Documents and Settings\Administrator",而不是原来纯DOS系统的根目录,每次笔者都得执行"CD\"切换到根目录再转换到其它目录,实在有失效率。解决的办法有两个,读者根据兴趣选择(都选也行^0^)

方法一:通过"计算机管理"修改

  在"我的电脑"图标上右击(桌面和开始菜单的都行),选择"管理"命令,弹出如图1所示的"计算机管理"窗口。在左侧目录树中依次展开"系统工具→本地用户和组→用户",接着双击右窗口的用户名,如本文的"Administrator"。在弹出的"Administrator属性"窗口中切换到"配置文件"标签页,在"主文件"中选择"本地路径",输入"C:\"(当然可以修改为其它路径),单击"确定"返回。注销系统后即生效。

  方法二:通过快捷方式修改

  上一方法是对用户系统全局,即不管是通过"CMD"命令、还是快捷方式打开"命令提示符",默认路径都是指定的新路径。当然,我们还可以给快捷方式添加参数临时更改默认路径。

  弹开"开始→程序→附件"后,右键单击"命令提示符",选择菜单"属性",在"快捷方式"标签页的"目标",在原有字符后加一半角状态空格,输入路径,单击"确定"退出。以后通过这个快捷方式激活的"命令提示符",默认路径就是参数里的路径。

  怎么样,都选择两种方法,是不是拥有了N个默认路径。(怎么是N个,因为你可以创建N个快捷方式呀!)

- 作者: hubdog 2004年11月5日, 星期五 17:13  回复(0) |  引用(0) 加入博采

制作不被查杀的文件夹
你要说是修改ASP木马其中代码或者加密等来逃避杀毒,错了,这个不用你修改,而且谁也不保证你修改过的ASP不被XX杀毒软件杀,反正我也是懒改,呵呵,我们运行CMD,cd c:\winnt\system32\myhome下也。也就是你虚拟目录转向的地址,先说一下原理大家都知道在Windows中"\"符号是路径的分隔符号,比如"C:\Windows\"的意思就是C分区中的Windows文件夹,"C:\Windows\System.exe"的意思就是C分区中的Windows文件夹中的System.exe文件,好继续我们假设一下:

你要说是修改ASP木马其中代码或者加密等来逃避杀毒,错了,这个不用你修改,而且谁也不保证你修改过的ASP不被XX杀毒软件杀,反正我也是懒改,呵呵,我们运行CMD,cd c:\winnt\system32\myhome下也。也就是你虚拟目录转向的地址,先说一下原理大家都知道在Windows中"\"符号是路径的分隔符号,比如"C:\Windows\"的意思就是C分区中的Windows文件夹,"C:\Windows\System.exe"的意思就是C分区中的Windows文件夹中的System.exe文件,好继续我们假设一下:

如果文件名中有"\"符号会怎么样呢?假如"S\"是一个文件夹的名字,这个文件夹位于:"F:\",他的路径就是"F:\S\",当我们试图访问的时候Windows会错误的认为我们要打开的文件是f分区的S文件夹,这样Windows就无法打开并且会返回一个错误,因为以上的路径并不存在。

也许你现在正在尝试创建"S\"文件,但是Windows会提示你:"\"符号是不能作为文件、文件夹的名字的。看来Windows还是早已想到这一点了的。OK我们继续进行,就不信不能建立包含"\"符号的文件。

现在打开你的电脑,我们要做一些很有趣的尝试。进入Windows后 点击:开始>运行 然后输入"cmd"并会车(如果是Win98请输入"COMMAND"),这时你会看到Windows的命令控制台,我们就是要利用它完成我们剩下的测试,以下包含了很多命令其中{}中的字符是我的注释:

Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.

c:\winnt\system32\myhome>mkdir s\ {我们的第一次尝试,结果Windows只创建了S文件夹"\"被忽略掉了}

c:\winnt\system32\myhome>mkdir s\s1\ {还是失败,Windows先创建了S文件夹,然后在S内创建s1文件夹}

c:\winnt\system32\myhome>mkdir s.\ {"s.\"被解析成S".\"又被忽略了}
子目录或文件 s.\ 已经存在。

c:\winnt\system32\myhome>mkdir s..\ {终于成功了,现在你可以在资源管理器看到"s."但却无法打开/删除}

c:\winnt\system32\myhome>mkdir s...\ {又成功了,在资源浏览器能吹?s.."可以打开但是无法删除}

----------------------------------------------

为什么会这样?我们先说你看到的这个"S."文件夹,他即不能打开也不能删除,不能打开是因为他的实际路径是"c:\winnt\system32\myhome\s..\"(我们自己创建的所以可以确定他的实际路径)但是在Windows资源管理器中名字变成了"S."也就是说当你试图打开它的时候Windows实际上尝试打开"c:\winnt\system32\myhome\s.\"当然是不能打开的,文件并不存在,所以Windows会报错。不能删除也是因为这个,Windows把一个实际存在的文件路径错误的解析为一个不存在的路径,并进行xx作当然是无法完成的。
该说"S.."这个文件了,这个文件可以打开,但是却无法删除。等等......打开?你以为Windows真的是打开了我们创建的"s...\"文件了吗?我们做下面的试验你就明白了。还是老规矩{}是我的注释方便大家理解:
----------------------------------------------
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.

c:\winnt\system32\myhome>copy net.asp s..\ {复制刚刚你的asp的木马文件到"s..\",资源管理器的"S."}
已复制 1 个文件。

c:\winnt\system32\myhome>

----------------------------------------------

现在回到你的资源管理器打开"S."文件夹,你看到了什么?"net.asp"文件怎么会在这里?我们刚刚的确复制到了"S."呀?难道我们打开"S."文件夹实际上就是打开了"S"?不错事实就是这样。其实如果你再创建一个"S"文件夹的话"S."就能打开了,但是实际上打开的是"S"。

这是关键的话题了,其实我们就利用S.目录不被杀的目的来隐藏我们的木马,不管木马都毒,可是一般来说的exe文件不能在s.这样的目录下运行的,但是asp木马却可以!可以通过浏览来执行CMD命令,把net.asp复制到s.目录后,把net.asp删了,我们在浏览器http://127.0.0.1/kiss/kiss/s../net.asp 就可以看到浏览得asp木马了到了,一般用户根本不可能发现他,就算专业级的杀毒软件也只会去杀"s"而跳过"s..\",好了那就说一下删除方法吧


删除方法

Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.

F:\Test>dir
驱动器 F 中的卷是 BGTING
卷的序列号是 2C8E-FE1C

F:\Test 的目录

2003-09-11 17:50 <DIR> .
2003-09-11 17:50 <DIR> ..
2003-09-11 18:35 <DIR> s.
2003-09-11 18:37 <DIR> s..
1 个文件 9 字节
5 个目录 3,390,029,824 可用字节

c:\winnt\system32\myhome>rmdir s..\
目录不是空的。

c:\winnt\system32\myhome>rmdir s..\ /s
s..\, 是否确认(Y/N)? y

c:\winnt\system32\myhome>rmdir s...\ /s
s...\, 是否确认(Y/N)? y

这也不用担心搞坏你肉鸡了,好了这样一个很隐蔽的后门就建立了,而且不被杀,如果在肉鸡,上述是在3389进行测试通过的。

- 作者: hubdog 2004年11月5日, 星期五 17:11  回复(0) |  引用(0) 加入博采

组策略打造系统铜墙铁壁
不用任何工具软件,只用组策略编辑器,也可以打造我们自己的超级系统。
 用组策略打造系统铜墙铁壁级功能

组策略打造系统铜墙铁壁
不用任何工具软件,只用组策略编辑器,也可以打造我们自己的超级系统。
 用组策略打造系统铜墙铁壁级功能

  1.隐藏"我的电脑"中指定的驱动器(Windows XP/2003)

  此组策略可以从"我的电脑"和"Windows 资源管理器"上删除代表所选硬件驱动器的图标。并且驱动器号代表的所有驱动器不出现在标准的打开对话框上。

  打开"组策略控制台→用户配置→管理模板→Windows组件→Windows资源管理器"中的"隐藏‘我的电脑'中的这些指定的驱动器"并启用此策略,并在下面列表框中选择一个驱动器或几个驱动器。

  提示:这项策略只删除驱动器图标。用户仍可通过使用其它方式继续访问驱动器的内容。同时这项策略不会防止用户使用程序访问这些驱动器或其内容。并且也不会防止用户使用磁盘管理即插即用来查看并更改驱动器特性。

  2.防止从"我的电脑"访问驱动器(Windows 2000/XP/2003)

  此策略让用户无法查看在"我的电脑"或"Windows 资源管理器"中所选驱动器的内容。同时它也禁止使用运行对话框、镜像网络驱动器对话框或Dir命令查看在这些驱动器上的目录。

  打开"组策略控制台→用户配置→管理模板→Windows组件→Windows资源管理器"中的"防止从‘我的电脑'访问驱动器"并启用此策略,并在下面列表框中选择一个驱动器或几个驱动器。  

  提示:这些代表指定驱动器的图标仍旧会出现在"我的电脑"中,但是如果用户双击图标,会出现一条消息解释设置防止这一操作。同时这些设置不会防止用户使用其它程序访问本地和网络驱动器。并且不防止他们使用磁盘管理即插即用查看和更改驱动器特性。

  3.禁止使用命令提示符(Windows 2000/XP/2003)

  在Windows 2000/XP/2003下,我们可以运行cmd.exe进入命令提示符状态,并可以继续运行一些DOS命令和其他命令行程序。出于对安全的考虑,有些系统应该屏蔽此功能。

  打开"组策略控制台→用户配置→管理模板→系统"中的"阻止访问命令提示符"并启用此策略,并在下面列表框中选择是否"也停用命令提示符脚本处理",这个设置还决定批处理文件  .cmd和.bat 是否可以在计算机上运行。

  如果启用这个设置,在用户试图打开命令窗口时,系统会显示一条消息,解释设置阻止这一操作。  4.禁止更改显示属性(Windows 2000/XP/2003)

  选择"控制面板"中的"显示"或在Windows桌面的空白处单击右键选择"属性",可进入"显示设置"对话框,可以对桌面主题、桌面背景、屏保程序、显示设置等各项进行设置,如果你不想让别人随意更改各项设置,可以通过组策略将它隐藏起来。

  打开"组策略控制台→用户配置→管理模板→控制面板→显示",然后可以看到隐藏桌面选项卡、隐藏主题选项卡、隐藏保护程序选项卡、隐藏设置选项卡等策略配置,可根据需要对这些项目进行配置。比如启用了"隐藏‘桌面'选项卡"策略后,再打开"显示属性"对话框,就看不到"桌面"标签了,这样自然就无法再对桌面属性进行更改了。    

  5.禁用注册表编辑器(Windows 2000/XP/2003)

  为了防止他人进入电脑后对注册表文件进行修改,可以在组策略中对注册表编辑器做禁止访问设置。具体操作方法:打开"组策略控制台→用户配置→系统"中的"阻止访问注册表编辑工具"并启用此策略。

  此策略被启用后,用户试图启动注册表编辑器(Regedit.exe 及 Regedt32.exe)的时候,系统会禁止这类操作并弹出警告消息。

  6.彻底禁止访问"控制面板"(Windows 2000/XP/2003)

  如果不希望其他用户访问计算机的"控制面板",同样可以使用组策略来实现。打开"组策略控制台→用户配置→管理模板→扩展面板"中的"禁止访问控制面板"并启用此策略。

  此策略启用后可以防止"控制面板"程序文件(Control.exe)的启动。他人将无法启动"控制面板"(或运行任何"控制面板"项目)。另外,这个设置将从"开始"菜单中删除"控制面板"。同时这个设置还从"Windows资源管理器"中删除"控制面板"文件夹。

  7.禁止建立新的拨号连接(Windows 2000/XP/2003)

  如果不想让别人在计算机中建立新连接来拨号上网的话,组策略也可以做到。打开"组策略控制台→用户配置→管理模板→网络→网络连接"中的"禁止访问新建连接向导"并启用此策略。

  启用此策略后,在"网络连接"文件夹和"开始菜单"中就不会出现"建立新连接"。

  提示:此设置无法阻止用户使用诸如 Internet Explorer 这样的其它程序来绕过此设置。另外此设置必须重新启动计算机后才能生效。
  8.禁用"添加/删除程序"(Windows 2000/XP/2003)

  "控制面板"中"添加或删除程序"项目允许你安装、卸载、修复并添加和删除 Windows 的功能和组件以及种类很多的 Windows 程序。如果你想阻止其他用户安装或卸载程序,可利用组策略来实现。

  打开"组策略控制台→用户配置→管理模板→控制面板→添加→删除程序"中的"删除‘添加/删除程序'程序"并启用此策略,当我们再打开"控制面板"中"添加/删除程序"模块的时候,会自动弹出警告窗口,而"添加/删除程序"则无法运行。

  此外,在"添加/删除程序"分支中还可以对Windows"添加/删除程序"项中的"添加新程序"、"从CD-ROM或软盘添加程序"、"从Microsoft添加程序"、"从网络添加程序"等项进行隐藏,通过这些策略项目的设置,起到了保护计算机中系统文件及应用程序的作用。

  9.限制使用应用程序(Windows 2000/XP/2003)

  如果你的电脑设置了多个用户,有些程序我们可能不希望其他用户随意运行,也能在组策略中设置。

  打开"组策略控制台→用户配置→管理模板→系统"中的"只运行许可的Windows应用程序"并启用此策略,然后点击下面的"允许的应用程序列表"边的"显示"按钮,弹出一个"显示内容"对话框,在此单击"添加"按钮来添加允许运行的应用程序即可。以后一般用户只能运行"允许的应用程序列表"中的程序。
 

- 作者: hubdog 2004年11月5日, 星期五 17:10  回复(0) |  引用(0) 加入博采

Oracle数据库的备份与恢复

Oracle数据库的备份与恢复

--------------------------------------------------------------------------------
阅读: 时间:2004-11-2 6:41:49 来源:www.hackbase.com 编辑:古典辣M°  
 
当我们使用一个数据库时,总希望数据库的内容是可靠的、正确的,但由于计算机系统的故障(包括机器故障、介质故障、误操作等),数据库有时也可能遭到破坏,这时如何尽快恢复数据就成为当务之急。如果平时对数据库做了备份,那么此时恢复数据就显得很容易。由此可见,做好数据库的备份是多么的重要,下面笔者就以ORACLE7为例,来讲述一下数据库的备份和恢复。ORACLE 数据库有三种标准的备份方法,它们分别为导出/导入(EXPORT/IMPORT)、冷备份、热备份。导出备份是一种逻辑备份,冷备份和热备份是物理备份


---- 一、 导出/导入(Export/Import)

---- 利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回Oracle数据库中去。

---- 1. 简单导出数据(Export)和导入数据(Import)

---- Oracle支持三种类型的输出:

---- (1)表方式(T方式),将指定表的数据导出。

---- (2)用户方式(U方式),将指定用户的所有对象及数据导出。

---- (3)全库方式(Full方式),将数据库中的所有对象导出。

---- 数据导出(Import)的过程是数据导入(Export)的逆过程,它们的数据流向不同。

---- 2. 增量导出/导入

---- 增量导出是一种常用的数据备份方法,它只能对整个数据库来实施,并且必须作为SYSTEM来导出。在进行此种导出时,系统不要求回答任何问题。导出文件名缺省为export.dmp,如果不希望自己的输出文件定名为export.dmp,必须在命令行中指出要用的文件名。

---- 增量导出包括三个类型:

---- (1)"完全"增量导出(Complete)

---- 即备份整个数据库,比如:

---- $exp system/manager inctype=complete file=990702.dmp

---- (2) "增量型"增量导出

---- 备份上一次备份后改变的数据。比如:

---- $exp system/manager inctype=incremental file=990702.dmp

---- (3) "累计型"增量导出(Cumulative)

---- 累计型导出方式只是导出自上次"完全" 导出之后数据库中变化了的信息。比如:

---- $exp system/manager inctype=cumulative file=990702.dmp

---- 数据库管理员可以排定一个备份日程表,用数据导出的三个不同方式合理高效地完成。

---- 比如数据库的备份任务可作如下安排:

---- 星期一:完全导出(A)

---- 星期二:增量导出(B)

---- 星期三:增量导出(C)

---- 星期四:增量导出(D)

---- 星期五:累计导出(E)

---- 星期六:增量导出(F)

---- 星期日:增量导出(G)

---- 如果在星期日,数据库遭到意外破坏,数据库管理员可按以下步骤来恢复数据库:

---- 第一步:用命令CREATE DATABASE重新生成数据库结构;

---- 第二步:创建一个足够大的附加回段。

---- 第三步:完全增量导入A:

---- $imp system./manager inctype= RECTORE FULL=Y FILE=A

---- 第四步:累计增量导入E:

---- $imp system/manager inctype= RECTORE FULL=Y FILE =E

---- 第五步:最近增量导入F:

---- $imp system/manager inctype=RESTORE FULL=Y FILE=F
二、 冷备份

---- 冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份是将关键性文件拷贝到另外位置的一种说法。对于备份Oracle信息而言,冷备份是最快和最安全的方法。冷备份的优点是:

---- 1.是非常快速的备份方法(只需拷贝文件)

---- 2.容易归档(简单拷贝即可)

---- 3.容易恢复到某个时间点上(只需将文件再拷贝回去)

---- 4.能与归档方法相结合,作数据库"最新状态"的恢复。

---- 5.低度维护,高度安全。

---- 但冷备份也有如下不足:

---- 1.单独使用时,只能提供到"某一时间点上"的恢复。

---- 2.在实施备份的全过程中,数据库必须要作备份而不能作其它工作。也就是说,在冷备份过程中,数据库必须是关闭状态。

---- 3.若磁盘空间有限,只能拷贝到磁带等其它外部存储设备上,速度会很慢。

---- 4.不能按表或按用户恢复。

---- 如果可能的话(主要看效率),应将信息备份到磁盘上,然后启动数据库(使用户可以工作)并将所备份的信息拷贝到磁带上(拷贝的同时,数据库也可以工作)。冷备份中必须拷贝的文件包括:

---- 1.所有数据文件

---- 2.所有控制文件

---- 3.所有联机REDO LOG文件

---- 4.Init.ora文件(可选)。

---- 值得注意的是冷备份必须在数据库关闭的情况下进行,当数据库处于打开状态时,执行数据库文件系统备份是无效的

---- 下面是做冷备份的完整例子:

---- (1) 关闭数据库$sqldba lmode=y

---- SQLDBA >connect internal;

---- SQLDBA >shutdown normal;

---- (2) 用拷贝命令备份全部的时间文件、重做日志文件、控制文件、初始化参数文件

---- SQLDBA >! cp < file > <; backup directory >


---- (3) 重启Oracle数据库

---- $sqldba lmode=y

---- SQLDBA >connect internal;

---- SQLDBA >startup;
三、 热备份

---- 热备份是在数据库运行的情况下,采用archivelog mode方式备份数据的方法。所以,如果你有昨天夜里的一个冷备份而且又有今天的热备份文件,在发生问题时,就可以利用这些资料恢复更多的信息。热备份要求数据库在Archivelog方式下操作,并需要大量的档案空间。一旦数据库运行在archivelog状态下,就可以做备份了。热备份的命令文件由三部分组成:

---- 1.数据文件一个表空间一个表空间地备份。

---- (1)设置表空间为备份状态

---- (2)备份表空间的数据文件

---- (3)恢复表空间为正常状态

---- 2.备份归档log文件。

---- (1)临时停止归档进程

---- (2)log下那些在archive redo log目标目录中的文件

---- (3)重新启动archive进程

---- (4)备份归档的redo log 文件

---- 3.用alter database backup controlfile命令来备份拷贝文件

---- 热备份的优点是:

---- 1.可在表空间或数据文件级备份,备份时间短。

---- 2.备份时数据库仍可使用。

---- 3.可达到秒级恢复(恢复到某一时间点上)。

---- 4.可对几乎所有数据库实体作恢复。

---- 5.恢复是快速的,在大多数情况下在数据库仍工作时恢复。

---- 热备份的不足是:

---- 1.不能出错,否则后果严重。

---- 2.若热备份不成功,所得结果不可用于时间点的恢复。

---- 3.因难于维护,所以要特别仔细小心,不允许"以失败而告终"。
 

- 作者: hubdog 2004年11月5日, 星期五 16:59  回复(0) |  引用(0) 加入博采

系统文件

系统文件....


A ↑
ACCESS.CHM - Windows帮助文件
ACCSTAT.EXE - 辅助状态指示器
ADVAPI32.DLL - 高级Win32应用程序接口
AHA154X.MPD - SCSI驱动程序
AM1500T.VXT - 网卡驱动程序
AM2100.DOS - 网卡驱动程序
APPSTART.ANI - 动画光标
APPS.HLP - Windows帮助文件
AUDIOCDC.HLP - "易码编码解码器"帮助文件
AWARDPR32.EXE - 增加打印机工具
B ↑
BIGMEM.DRV - BIGMEM虚拟设备
BILLADD.DLL - 动态链接库(支持MSW)
BIOS.VXD - 即插即用BIOS接口
BUSLOGIC.MPD - SCSI驱动程序

C ↑
CALC.EXE - 计算器应用程序
CANNON800.DRV - 佳能打印机驱动程序
CHOICE.COM - MSDOS命令
CHS16.FON - 字体文件(16点阵文)
CANYON.MID - MIDI文件例子
CARDDRV.EXE - PCMCIA支持程序
CDFS.VXD - CDROM文件系统
CDPLAYER.EXE - CD播放器应用程序
CDPLAYER.HLP - CD播放器帮助文件
CHIPS.DRV - 芯片技术显示驱动程序
CHKDSK.EXE - DOS磁盘检查工具
CHOOSUSR.DLL - 网络客户
CHOKD.WAV - 声音文件例子
CIS.SCP - 脚本文件(演示如何建立与CompuservePPP连接)
CLAIRE~1.RMI - MINI序列
CLIP.INF - 安装信息文件(剪粘板查看器)
CLOSEWIN.AVI - 影片剪辑(AVI)(如何关闭窗口)
CMC.DLLail - API1.0公共信息调用
COMBUFF.VXD - COM端虚拟设备
COMCTL32.DLL - 32位Shell组件
COMDLG32.DLL - 32位公共对话库
COMIC.TIF - TrueType字体文件(Comic Sans Ms)
COMMAND.COM - 公共对话库
COMMDLG.DLL - 16位公共对话库
COMMON.HLP - OLE帮助文件
COMPOBJ.DLL - OLE16/32互*作库
CONAGEN.EXE - 32位控制支持
CONFAPI.DLL - Microsoft网络组件
CONFIG.SYS - 配置文件
CONFIG.TXT - 自述文件(配置文件如何使用命令)
CONTROL.EXE - "控制面板"应用程序
COOL.DLL - 统一资源定位文件
COPY.INF - 安装信息文件
CP-1250.NLS - 自然语言支持文件
CPQNDIS.DOS - 网卡驱动程序
CPQNDIS3.VXD - Compaq以太控制器NDIS驱动程序
CR3240.EXE - DOS6.22文版CR3240打印机驱动程序
CRTDLL.DLL - Microsoft C运行时间库
CSETUP.EXE - MSDOS6.22文设置程序
CSETUP.WIN - CSetup.exe支持文件
CSMAPPER.SYS - 系统文件(支持PCMCIA)
CSPMAN.DLL - 动态链接库(SoundBlaster 16 Driver)
CTRLPAN.EXE - MSDOS命令(系统控制台程序)
CTRLPAN.EXE - MSDOS6.22文版控制程序

D ↑
DBLBVFF.SYS - 双缓冲驱动程序
DC21X4.SYS - NDIS3驱动程序
DCIMAN.DLL - 显示控制接口
DCIMAN32.DLL - 显示控制接口
DDEML.DLL - DDE信息库
DEBMP.DLL - 光栅显示设备
DEBUG.EXE - Debug调试工具
DECPSMW4.INF - 安装信息文件(DEC打印机安装)
DECLAN.VXD - DECLAN网卡驱动程序
DEFRAG - 打开"选定驱动器"窗口
DEL.INF - 安装信息文件
DELTEMP.COM - 初始化帮助工具
DELTREE.EXE - 删除目录工具
DEMET.DLL - 向量显示工程
DESKCP16.DLL - 16位桌面控制面板
DESKTOP.MSN - Microsoft网络组件
DESS.DLL - 表格显示工程
DEWP.DLL - 字处理显示工程
DIALER.CNT - 对话帮助
DIALER.EXE - 电话拨号程序
DIALER.HLP - 电话拨号帮助文件
DIALMON.EXE - 拨号监视程序(IE2.0)
DIBENG.DLL - 独立设备位同工程
DICONIX.DRX - 打印机驱动
非常棒^__^.WAN - 声音文件例子
DIRECTCC.EXE - 直接线缆连接应用程序
DISKCOMP - 磁盘比较工具
DISKCOPY.COM - 磁盘拷贝工具
DISKDRV.INF - 安装信息
DISPLAY.TXT - 显示卡README文件
DMCOLOR.DLL - 通用打印驱动程序彩打支持库
DOSKEY.COM - DOS命令
DOSX.EXE - MSDOS配置程序
DRAGDROP.AVI - 影片剪辑(AVI)(如何使用拖拽)
DRIVER.SYS - DOS驱动程序
DRVSPACE.EXE - 磁盘压缩工具
DRVSPACE.HLP - 磁盘空间管理帮助文件

E ↑
EDIT.COM - DOS文字编辑程序
EDLIN.EXE - DOS行编辑器
EE16.VXD - 虚拟设备驱动程序
EISA.VXD - 即插即用EISA总线计数器
EK550C.ICM - 打印机简介
EMM386.EXE - 扩展内存管理程序
ENABLE.INF - 初始化信息
ENGCT.EXE - MSN支持文件
ESCP24SC.DRV - 设备驱动程序
EUDCEDIT.CNF - 帮助索引文件(造字程序)
EUDCEDIT.EXE - 造字程序
EUDCEDIT.HLP - 帮助文件(造字程序)
EUDCEDIT.INF - 安装信息文件(造字程序)
EVX16.DOS - 网卡驱动程序
EWRK3.DOS - 网卡驱动程序
EWRK3.SYS - 网卡驱动程序
EXCEL.XLS - Excel5.0文件模板
EXCEL4.XLS - Excel4.0文件模板
EXCHANGE.TXT - Inbox和Exchange自述文件
EXCHNG.CNT - Mail/Exchange帮助文件内容
EXCHNG.HLP - Mail/Exchange组件
EXCHNG32.EXE - 对用户交换机作初始设置
EXPLORER.AVI - 影片剪辑(AVI)(如何使用资源管理器)
EXPLORER.EXE - "资源管理器"应用程序
EXPO.HLP - 帮助文件(产品信息)
EXPOSTRT.EXE - 产品信息应用程序
EXTRACT.EXE - 解压缩工具
EXTRA.TXT - 自述文件(联机访问附加文件)

F ↑
FAQ.TXT - 疑难解答自述文件
FAXCODEC.DLL - 传真编码/译码器
FAXCOVER.EXE - 封面编辑器
FC.EXE - DOS命令,比较两个文件
FD16-700.MPD - SCSI驱动程序
FD8XX.MPD - SCSI驱动程序
FDISK.EXE - DOS命令,硬盘建立、删除及显示当前分区
FILESEC.VXD - 文件存取控制管理器
FILEXFER.CNT - 文件传输帮助文件内容
FILEXFER.EXE - Microsoft文件传输
FIND.AVI - 影片剪辑(如何使用查找)
FIND.EXE - 寻找指定字符串命令
FINDMVI.DLL - 媒体视觉支持
FINSTALL.DLL - 字库安装程序
FINSTALL.HLP - 字库安装帮助文件
FLSIMTD.VXD - PCMCIA支持
FLSIMTD.VXD - PCMCIA支持
FONT16.EXE - DOS6.22文版16点阵字体驱动程序
FONTS.INF - 字体选择初始化信息
FONTVIEW.EXE - 字体浏览程序
formAT.COM - DOS磁盘格式化工具
FOUTLINE.EXE - 轮廓字体驱动程序
FRAMEBUF.DRV - SVGA显示器驱动程序
FTE.DLL - 声音浏览文件传输工程文件
FTP.EXE - 文件传输协议TCP工具
FURELI~1.RMI - MINI序列

G ↑
GBK.TXT - 文Windows95GBK代码集字符定义表
GDI.EXE - 简版WIN3.1图形界面
GDI32.DLL - 32位GDI图形界面
GENERAL.IDF - 一般MIDI指示器
GRPCONV.EXE - Windows程序组转换器
GUIDE.EXE - 应用程序(MSN)

H ↑
HARDWARE.TXT - 硬件自述文件
HOSTS.SAM - TCP配置
HPCLRLSK.ICM - 打印简介
HPDESK.ICM - 打印机简介表
HPDSKJET.DRV - 打印机驱动程序
HPEISA.VXD - 网络适配器驱动程序
HPJAHLP.CNT - JetAdmin程序帮助文件
HPJD.DLL - HPJetAdmin支持程序
HPLAN.DOS - 网络适配器驱动程序
HPLJ300.DRV - HPLJ300DPI打印机驱动程序
HPLJ300.EXE - MSDOS命令(HP打印机驱动)
HPLJ-31.SPD - 打印机驱动程序
HPLJ600.DRV - HPLJ600DPI打印机驱动程序
HPLJP-V4.INF - 打印机安装信息
HPNETPRN.INF - HPJetAdmin支持程序
HPPJXL31.SPD - 打印机驱动程序
HPPLOT.DRV - 打印机驱动程序
HPPLOT.HLP - 打印机驱动程序帮助文件
HPPRARBK.DLL - HPJetAdmin支持程序
HPPRARRK.HLP - HPJetAdmin支持程序帮助文件
HPVCM.HPM - 打印机驱动程序
HSFLOP.PDR - HSFLOP虚拟设备
HTICONS.DLL - 终端设备动态链接库
HYPERTRM.CNT - 终端设备帮助文件
HYPERTRM.EXE - 终端设备应用程序
HYPERTRM.HLP - "超级终端"帮助
HZKBD.EXE - 常用输入方法程序
HZVIO95.EXE - 显示驱动程序

I ↑
I82593.DOS - 网络适配器驱动程序
IB401917.SPD - 打印机驱动程序
IBM20470.SPD - 打印机驱动程序
IBM20K.DOS - 网络适配器驱动程序
ICM32.DLL - 图象颜色匹配程序
ICMOI.DLL - 用户界面颜色匹配程序
ICONLIB.DLL - 图符库
IEXPLORE.CNT - 帮助索引文件(IE)
IEXPLORE.EXE - InternetExplore
IEXPLORE.HLP - 帮助文件(IE)
IFSHLP.SYS - 文件系统安装帮助文件
IFSMGR.VXD - 文件系统安装管理程序
IMAGEOIT.EXE - 图象编辑器光标程序
IMCLIENT.DLL - Microsoft网络组件
IME.CNT - 帮助索引文件(文输入法)
IME.HLP - Windows帮助文件
IME.INF - 安装信息文件(文输入法)
IMEGEN.CNF - 帮助索引文件(输入法生成器)
IMEGEN.EXE - 输入法生成器
IMEGEN.HLP - 帮助文件(输入法生成器)
IMEINFO.INI - 输入法初始化文件
IMM32.DLL - WIN32IMM应用程序界面
INBOX.EXC - 邮件组件
INDICDLL.DLL - 语言组件
INET.TXT - IE自述文件
INET16.DLL - 动态链接库(支持IE2.0)
INETAB32.DLL - 动态链接库(支持Internet mail)
INETCFG.DLL - 动态链接库(支持IE2.0)
INETCPL.CPL - 控制面板文件(配置IE2.0)
INETMAIL.INF - 安装信息文件(Internet mail)
INETWIZ.EXE - Internet安装向导
INformS.WPF - 样板文件
INSTBE.BAT - Microsoft网络组件
INSTDICT.EXE - MSDOS命令(输入法安装程序)
INTB.VXD - 13号断虚拟设备
INTL.CPL - 控制面板
INT-MAIL.CNT - 帮助索引文件(Internet mail)
IOS.INI - 设置需要安全保护程序
IOSCLASS.DLL - CDROM安装程序
IRMATR.DOS - 网络适配器驱动程序
ISAPNP.VXD - ISA总线即插即用程序
 ↑
JOY.CPL - 游戏杆控制面板
JOYSTICK.INF - 媒体安装信息
JP350.DRV - 打印机驱动程序
JUNGLE~1.WAV - 声音文件

K ↑
KBDBE.KBD - 比利时键盘格式
KBDBR.KBD - 巴键盘格式
KBDCA.KBD - 法国、加拿大键盘格式
KBDOS.KBD - 美国键盘格式
KDCOLOR1.SPD - 打印机驱动程序
KERNEL32.DLL - 32位内核
KEYB.COM - 将控制键盘程序装入内存
KODAKCE.ICM - 柯达ICC配置文件
KRNL386.EXE - Core应用程序

L ↑
LABEL.EXE - DOS命令,设置磁盘名称
LFNBK.EXE - 长文件名备份文件
LFNBK.TXT - LFNBK自述文件
LICENSE.HLP - Windows帮助文件
LMSCRIPT.EXE - LAN管理器文稿处理程序
LOGIN.EXE - Win95登录NetWare文件
LQ1600K.EXE - LQ1600K打印驱动程序

M ↑
MAILMSG.DLL - 微软网络组件
MAILOPT.INF - MAIL/MAPI设置文件
MAPI.DLL - Mail/Exchange组件
MCIAVI.DRV - 媒体驱动程序
MCICDA.DRV - MCICD声音驱动程序
MCIOLE.DLL - MCIOLE句柄
MCIPIONR.DRV - MCI光盘驱动程序
MCISEQ.DRV - MCI定序器驱动程序
MCIVISCA.DRV - MCIVCR驱动程序
MCIWAVE.DRV - MCI Ware驱动程序
MDMNOKIA.INF - 安装信息文件(modem)
MDMNOVA.INF - 安装信息文件(modem)
MDMVV.INF - 安装信息文件(modem)
MEMMAKER.EXE - 内存管理程序
MEMMAKER.INF - 内存管理程序设置信息
MFCUIA32.DLL - OLEI公共对话动态链接库
MIDI.INF - 即插即用MIDI设备信息
MINET32.DLL - 支持Internet Mail动态链接库
MKECR5XX.MPD - SCSI驱动程序
ML3XEC16.EXE - 应用程序(MAPI)
MLSHEXT.DLL - 微软核扩展库
MMCI.DLL - 媒体类安装程序
MMDEVLDR.VXD - 即插即用设备装载程序
MMDRV.HLP - 媒体帮助文件
MMSOUND.DRV - 媒体驱动程序
MMSYSTEM.DLL - 媒体系统内核
MMTASK.TSK - 媒体背景任务交换器
MODE.COM - DOS命令
MODERN.FON - 字体文件(modem)
MORE.COM - DOS命令
MOUSE.DRV - 鼠标驱动程序
MOVEWIN.AVI - 影片剪辑(如何移动窗口)
MPLAYER.EXE - 媒体播放程序
MPR.DLL - WIN32网络接口动态链接库
MSAB32.DLL - 微软网络地址簿
MSBASE.INF - 设置信息
MSCDEX.EXE - DOS MSCDEX CDROM扩展工具
MSCDROM.INF - 类安装设置信息
MSD.EXE - 微软诊断工具
MSD.INI - 微软诊断初始化
MSDET.INF - 系统检测设置信息
MSDISP.INF - 显示设置信息
MSDLG.EXE - 数据链接控制协议
MSDOS.INF - 设置信息
MSDOSDRV.TXT - 设备驱动程序自述文件
MSFT.VRL - 统一资源定位文件
MSGSRV32.EXE - Windows32位虚拟设备信息系统
MSHDC.INF - 硬盘控制设置信息
MSJSTICK.DRV - 即插即用游戏杆驱动程序
MSMAIL.INF - Mail/MAPI初始化
MSMOUSE.INF - 鼠标设置信息
MSN.TXT - 微软网络自述文件
MSNET32.DLL - 微软32位网络API库
MSNEXCH.EXE - 微软网络设置程序
MSNPSS.HLP - 微软网络帮助文件
MSNVER.TXT - 微软网络帮助信息
MSPAINT.EXE - 画图工具
MSPCIC.DLL - PCMCIA类安装与控制工具
MSPORTS.INF - 公共设置信息
MSPP32.DLL - 微软网络打印支持程序
MSPWL32.DLL - 口令清单管理库
MSSBLST.DRV - 声霸卡驱动程序
MSSBLSI.VXD - 声霸卡驱动程序
MSSHRVI.DLL - 共享内核扩展程序
MSSNDSYS.DRV - Windows声音系统驱动程序
MSSP.VXP - Windows NT安全支持
MSTCP.DLL - TCP用户界面
MSVIEWUT.DLL - 显示设备服务数据链接库
MTMMINIP.MPD - SCSI驱动程序
MULLANG.INF - 种语言字体支持设置信息
MVIWAVE.DRV - 声音驱动程序
N ↑
NBTSTAT.EXE - TCP工具
NDDEAPI.DLL - Workgroups DDE共享接口
NDDENB.DLL - 微软网络DDE NetBIOS接口
NDISHLP.SYS - 实模式NDIS支持驱动程序
NET.EXE - 实模式网络客户软件
NET.INF - 网络检测信息
NET.MSG - 网络客户信息
NET3COM.INF - 网络设置信息
NETAMD.INF - 网络设置信息
NETAPI.DLL - 网络应用程序接口动态链接库
NETAPI32.DLL - 32位网络API动态链接库
NETAVXT.INF - MS内部传输文件
NETBEUI.VXD - 32位NetBEUI协议
NETBIOS.DLL - NetBIOSAPI库
NETDCA.INF - 安装信息文件
NETDDE.EXE - Windows网络动态数据交换
NETDET.INI - NetWare检测文件
NETDI.DLL - 网络设备安装
NETH.MSG - 网络客户帮助信息
NETOS.DLL - NOS检测DLL
NETWATCH.EXE - 网络观测程序
NETWORK.TXT - 网络信息自述文件
NOTEPAD.EXE - 记事本应用程序
NODRIVER.INF - 即插即用设备信息
NOTEPAD.EXE - NOTEPAD文件
NSCL.VXD - NSCL虚拟设备
NW16.DLL - NetWare客户
NWAB32.DLL - 地址簿支持动态链接库
NWLSCON.EXE - 登录文稿控制台程序
NWLSPROC.EXE - NetWare登录处理器
NWNET32.DLL - NetWare客户
NWNP32.DLL - NetWare组件
NWREDIR.VXD - NetWare重定向
NWSERVER.VXD - NCP服务
NWSP.VXD - NCP服务安全提供

 

杰特论坛
http://bbs.jetdown.com
 
 2004-8-16 11:12 AM              
 
biksin
一般会员

 

 

积分 123
发贴 107
注册 2003-11-6
 O ↑
OEMREVA.INF - 安装信息文件
OLE2.DLL - OLE2.0动态链接库
OLE2.INF - OLE设置信息
OLE32.DLL - 32位OLE2.0组件
OLEAUT32.DLL - OLE2-32自动化
OLECL1.DLL - 对象链接与嵌入客户库
OLEDLG.DLL - Windows OLE2.0用户接口支持
OLESVR.DLL - 对象链接与嵌入服务端库
OLETHK32.DLL - OLE形实替换程序库

P ↑
PACKAGER.EXE - 对象包装程序
PARALINK.VXD - 远程网络存取并行口驱动程序
PBRVSH.EXE - "画图"应用程序
PDOS95.BAT - 进入文DOS状态
PERF.VXD - 系统性能监视器
PIFMGR.DLL - 程序信息文件管理服务程序
PING.EXE - TCPPing工具
PMSPL.DLL - LAN管理应用程序接口
POWER.DRV - 高级电源管理驱动程序
PPPMAC.VXD - Windows虚拟PPP驱动程序
PRINT.EXE - DOS打印文件
PRINTERS.TXT - 打印信息自述文件
PROGMAN.EXE - 程序管理器
PRTVPD.INF - 打印机升级设置信息

Q ↑
QUIKVIEW.EXE - 快速查看
QUIT.EXE - 退出文DOS状态

R ↑
README.TXT - Windows95自述文件
REGEDIT.EXE - 注册编辑器
REGSERV.EXE - 远程注册
REGWIE.EXE - 注册工具
REGSERV.INF - 远程注册
RESTORE.EXE - DOS命令
RNAAPP.EXE - 拨号网络应用程序
RNASERV.DLL - 远程网络存取服务
RNASETUP.DLL - 远程网络存取设置动态链接库
RNATHUNK.DLL - 远程网络存取转换支持动态链接库
RNAUI.DLL - 远程网络存取用户接口DLLRNDSRV32.DLL复制服务程序
ROBOTZCL.WAV - 声音文件
ROBOTZWI.WAV - 声音文件
ROMAN.FON - 字型文件
ROUTE.EXE - TCP/IP ROUTE命令
RPCLTC1.DLL - 远程调用库
RPCNS4.DLL - 远程调用库
RPCPP.DLL - 远程调用打印驱动
RPCRT4.DLL - 远程调用库
RPCSS.EXE - 远程调用结点映象
RPLBOOT.SYS - 远程程序装入
RPLIMAGE.DLL - 远程程序装入磁盘映象器
RSRC16.DLL - 资源计量器
RSRCMTR.EXE - 资源计量器
RSRCMTR.INF - 资源计量器
RUMOR.EXE - DDE测试/游戏
RUNDLL.EXE - 把DLL作为应用程序运行
RUNDLL32.EXE - 32位壳组件

S ↑
S3.DRV - S3显示驱动
S3.VXD - S3虚拟设备
SACLIEN.DLL - Microsoft网络组件
SAMPLEVIDEOS - 图象文件
SAPNSP.DLL - Winsock数据连接库
SAVE32.COM - 安装时所需TSR文件
SB16.VXD - 16位声卡虚拟设备
SB16SND.DRV - 16位声卡驱动
SBAWE.VXD - AWE声卡虚拟设备
SBAWE32.DRV - AWE声卡驱动
SBFM.DRV - 16位声卡驱动
SCANDISK.BAT - MSDOS6.x Scandisk替代存根模块SCANDISK.BAT磁盘诊断工具
SCANDISK.INI - 磁盘诊断工具
SCANDISK.PIF - 安装磁盘诊断工具时PIF文件
SCANDSKW.EXE - 磁盘扫描工具
SCANPROG.EXE - 磁盘扫描工具
SCRNSAVE.SCR - 屏幕保护
SCSI.INF - SCSI安装文件文件名描述
SCSIIHLP.VXD - SCSI支持文件
SCSIPORT.PDR - SCSI虚拟设备口
SECUR32.DLL - Microsoft Win32安全服务
SECURCL.DLL - Microsoft网络组件
SEIKO24E.DRV - 打印机驱动
SEIKOSH9.DRV - 打印机驱动
SERIAL.VXD - 串口VCOMM驱动器
SERIFE.FON - 字型文件
SERVER.HLP - 服务器帮助文件
SETMDIR.EXE - SBS文件
SETUP.BIN - 安装支持文件
SETUP.BMP - 安装Wash位图文件
SETUP.EXE - Windows95安装程序
SETUP.INF - 安装信息文件
SETUP.TXT - 安装时README文件
SETUP4.DLL - 安装支持文件
SETUPPP.INF - 安装信息
SETUPX.DLL - 安装支持
SETVER.EXE - MSDOS版本显示,该程序可网络执行
SF4029.EXE - 打印机驱动
SHARE.EXE - MSDOS共享实用程序
SHELL.INF - 安装壳信息
SHELL.VXD - 虚拟壳设备
SHELL2.INF - 颜色组合
SHELL3.INF - 颜色组合
SIZE1-1.CUR - 光标
SIZE1-M.CUR - 光标
SIZE4-M.CUR - 光标
SIZENESW.ANI - 活动光标
SIZEWE.ANI- 活动光标
SKPSFA-1.SPD - 打印机驱动
SLAN.DOS - 网络适配器驱动
SLCD32.MPD - SCSI驱动器
SLENH.DLL - 高级节能选项
SMALLE.FON - 字型文件
SMALLF.FON - 字型文件
SMARTDRV.EXE - 超高速缓存程序
SMARTND.DOS - 网络适配器驱动器
SMC3000.DOS - 网络适配器驱动器
SMC9000.VXD - 网络适配器驱动器
SNAPSHOT.EXE - 抽点
SNAPSHOT.VXD - 抽点虚拟设备
SNDREC32.EXE - 录音机
SNIP.VXD - 网络适配驱动器
SOCKET.VXD - Windows虚拟Socket网卡驱动器SOCKET.VXD PCMCIA支持
SOL.CNT - 纸牌游戏
SOL.HLP - 纸牌游戏帮助文件
SORT.EXE - MSDOS分类实用程序
SOUNDREC.CNT - 录音机帮助文件内容
SOUNDREC.HLP - 录音机帮助文件
SPARROW.WPD - SCSI驱动器
SPARROWX.MPD - SCSI驱动器
SPOOL32.EXE - 打印机支持
SPOOLER.VXD - 打印机共享虚拟设备
SRAMMTD.VXD - PCMCIA支持
SSERIFE.FON - 字型文件
SSERIFF.FON - 字型文件
SSFLYWIN.SCR - 屏幕保护
SSSTARS.SCR - 屏幕保护
STAR24E.DRV - 打印机驱动
STAR9E.DRV - 打印机驱动
START.EXE - 启动程序
STATE.PBK - Microsoft网络组件
STDOLE.TLB - OLE2.0文件
STDOLE32.TLB - OLE2-32文件
STEMO409.DLL - Windows95帮助文件DLL
STLSO4SS.SPD - 打印机驱动程序
STLS577U.SPD - 打印机驱动程序
STORAGE.DLL - OLE存储器管理库
STRN.DOS - 网络适配器驱动
SUBST.EXE - MSDOS Subst实用程序
SUEXPAND.DLL - LZ DLL安装
SUHELPER.BIN - 安装支持
SUPERVGA.DRV - 高级VGA显示驱动
SURPORT.TXT - PSS支持信息
SVCPROP.DLL - Microsoft网络组件
SVRAPI.DLL - 32位公用服务器API实用程序
SXCIEXT.DLL - Matrox显示驱动支持文件
SYMBOLE.FON - 字型文件
SYS.COM - MSDOS系统实用程序
SYSCLASS.DLL - 系统类库安装
SYSDETMG.DLL - 系统检测库
SYSEDIT.EXE - 系统编辑器
SYSLOGO.RLE - 系统标识
SYSMON.EXE - 系统监控程序
SYSMON.HLP - 系统监控帮助
SYSTEM.DRV - 最Win3.1标准模式
SYSTHUNK.DLL - Windows系统形实替换程序库
SYSTRAY.EXE - 高级节能管理

T ↑
T128.MPD - SCSI驱动器
T160.MPD - SCSI驱动器
T20N3.VXD - 网络适配驱动器
T30ND.DOS - 网络适配驱动器
T338.MPD - SCSI驱动器
TADA.WAV - 声音文件
TAPI.DLL - API通话程序
TAPI.INF - API通话安装信息文件
TAPI32.DLL - 32位形实替换
TAPIADDR.DLL - API通话程序
TAPIEXE.EXE - API通话组件
TAPIINI.EXE - API通话组件
TASKMAM.EXE - 任务管理器
TCCARC.DOS - 网络适配驱动器
TCTOKCH.VXD - 网络适配驱动器
TELEPHON.CPL - 通话帮助
TESTPS.TXT - PostScript测试
TEXTCHAT.EXE - Microsoft网络组件
THEMIC-1.WAV - 声音文件
THINKJET.DRV - 打印机驱动
THREED.VBX - Windows95浏览
T1850.DRV - 打印机驱动
TIMEDATE.CPL - 时间/日期控制面板
TIMES.TTF - 时间字型
TIMESBD.TTF - 时间粗体字型
TIMESBI.TTF - 时间粗斜体字型
TIMESI.TTF - 时间斜体字型
TIMEZONE.INF - 安装信息
TIMLP232.SPD - 打印机驱动
TIPS.txt - 提示和技巧自述文件
TKPHZR32.SPD - 打印机驱动
TLNK.DOS - 网络适配驱动器
TLNK3.VXD - 网络适配驱动器
TMV1.MPD - SCSI驱动器
TOOLHELP.DLL - 16位开工具帮助器
TOSHIBA.DRV - 打印机驱动
TOUR.EXE - 浏览文件
TPHAIII.ICM - 打印机简介
TRACERT.EXE - TCP/IP IRACEROUTE命令
TREE.COM - MS DOS树实用程序
TREEEDCL.DLL - Microsoft网络组件
TREENVCL.DLL - Microsoft网络组件
TRIUMPHI.SPD - 打印机驱动
TSD32.DLL - 声音压缩管理器
TSENG.DRV - ET4000W32显示驱动
TTY.DRV - 打印机驱动
TTY.HLP - TTY打印机驱动帮助
TYPELIB.DLL - OLE2.0

U ↑
U9415470.SPD - 打印机驱动
UBNEI.DOS - 网络适配器驱动
ULTRA124.MPD - SCSI驱动器
ULTRA24F.MPD - SCSI驱动器
UMDM16.DLL - 通用调制解调器驱动组件
UMDM32.DLL - 通用调制解调器驱动组件
UNIDRV.DLL - Microsoft通用打印机驱动库
UNIDRV.HLP - 通用打印机驱动帮助
UNIMODEM.VXD - 通用调制解调器驱动
USER32.DLL - 32位用户

V ↑
V86MMGR.VXD - V86MMGR虚拟设备
VCACHE.VXD - VCache虚拟设备
VCD.VXD - 虚拟COM驱动程序
VCOMM.VXD - VCOMM驱动程序
VCOND.VXD - Win32控制台
VDMAD.VXD - VDMAD虚拟设备
VER.DLL - 型Win3.1安装程序16位版动态链接库
VER.NEW - 版本检测与文件安装库
VERSION.DLL - 32位版本动态链接库
VERX.DLL - 安装程序使用版本动态库
VFAT.VXD - VFAT文件系统
VFD.VXD - 软盘虚拟设备
VFLATD.VXD - 虚拟平板帧缓存虚拟设备
VGA.DRV - VGA显示驱动程序
VIDCAP.INF - 即插即用VCD信息
VIDEOT.VXD - 视频虚拟设备
VIP.386 - TCP/IP虚拟IP设备
VJOYD.VXD - 游戏棒虚拟设备
VKD.VXD - 虚拟键盘设备
VLB32.DLL - Mail/Exchange组件
VMD.VXD - Win3.1虚拟鼠标驱动程序
VMM.VXD - 虚拟存储管理设备
VMM32.VXD - 虚拟存储管理设备
VMOUSE.VXD - 虚拟鼠标驱动程序
VNBT.386 - NetBIOS传输驱动程序
VNETBIOS.VXD - VNETBIOS虚拟设备
VNETSUP.VXD - 网络支持虚拟设备
VPD.VXD - 虚拟LPT驱动程序
VPICD.VXD - 虚拟可编程干扰控制器设备
VPOWERD.VXD - 高级电源管理虚拟设备
VREDIR.VXD - Microsoft网络32位客户端程序
VSAMI.DLL - AMI文件语法分析程序
VSASC8.DLL - ASCII文件语法分析程序
VSBMP.DLL - BMP文件语法分析程序
VSERVER.VXD - Microsoft网络32位服务器端程序
VSGIF.DLL - GIF文件语法分析程序
VSHARE.VXD - 32位共享虚拟设备驱动程序
VSMSW.DLL - Win写文件语法分析
VSPP.DLL - PowerPoint语法分析程序
VSRTF.DLL - RTF文件语法分析程序
VSTIFF.DLL - TIFF文件语法分析程序
VSW6.DLL - Word6文件语法分析程序
VSWORD.DLL - Word文件语法分析程序
VSWP5.DLL - WordPerfect5文件语法分析程序
VSXL5.DLL - Excel文件/图表语法分析程序
VTCP.386 - TCP/IP虚拟TCP驱动程序
VTDAPI.VXD - VTDAPI虚拟设备
VTDI.386 - 传输驱动接口支持程序
VXDLDR.VXD - 虚拟设备驱动程序装载器

W ↑
WAVE.INF - 即插即用音波设备信息
WDTOOOEX.MPD - SCSI驱动
WGPOADMN.DLL - Mail/Exchange组件
WHLP16T.DLL - 帮助动态链接库
WIN87EM.DLL - 80387数学仿真库
WINABC.HLP - 智能ABC帮助文件
WINBX.HLP - 表形码输入法帮助文件
WINCHA.HLP - 繁体仓颉输入法帮助文件
WINDOWS.CNT - Windows95帮助文件内容
WINDOWS.HLP - Windows95帮助文件
WINFILE.CNT - 文件管理器帮助文件内容
WINFILE.EXE - Windows工作组文件管理器
WINFILE.HLP - 文件管理器帮助文件
WINGB.HLP - 区位码输入法帮助文件
WINHLP23.HLP - Windows帮助文件
WINIME.HLP - *作指帮助文件
WINNM.HLP - GBK内码输入法帮助文件
WININIT.EXE - Windows初始化文件
WINIPCFG.EXE - TCP/IP配置工具
WINNEWS.TXT - Winnews信息
WINPHO.HLP - 繁体注音输入法帮助文件
WINPOPUP.EXE - POPUP工具
WINREG.DLL - 远程注册支持
WINPY.HLP - 全拼输入法帮助文件
WINSOCK.DLL - Windows套接API
WINSY.HLP - 双拼输入法帮助文件
WINXSP.HLP - GBK双拼输入法帮助文件
WINXZM.HLP - GBK郑码输入法帮助
WINZM.HLP - 郑码输入法帮助文件
WNASPI32.DLL - Windows DLL32位ASPI
WPSUNI.DRV - 传真驱动程序
WPSUNIRE.DLL - WPS主机资源执行程序

X ↑
XCOPY.EXE - DOS XCOPY工具
XCOPY32.EXE - 文件拷贝程序
XGA.DRV - XGA显示驱动程序

- 作者: hubdog 2004年11月5日, 星期五 16:53  回复(1) |  引用(0) 加入博采