dvbbs 7.0的后台菜单

<SCRIPT language=javascript1.2 type="text/javascript">
function showsubmenu(sid)
{
whichEl = eval("submenu" + sid);
if (whichEl.style.display == "none")
{
eval("submenu" + sid + ".style.display="";");
}
else
{
eval("submenu" + sid + ".style.display="none";");
}
}
</SCRIPT>

<table id="1" cellspacing="0" cellpadding="0" align="center" width="200" border="1">
<tr>
<td height="8">动网论坛后台菜单</td>
</tr>
<tr style="CURSOR: hand" onclick="showsubmenu(1)">
<td><strong>聊 天</strong></td>
</tr>
<tr id="submenu1">
<td>碧聊<br>
新浪聊天<br>
网易聊天</td>
</tr>
<tr>
<td height="8"></td>
</tr>
<tr style="CURSOR: hand" onclick="showsubmenu(2)">
<td><strong>游 戏</strong></td>
</tr>
<tr id="submenu2" style="DISPLAY: none">
<td>17173<br>
新浪游戏<br>
太平洋游戏</td>
</tr>
<tr>
<td height="8"></td>
</tr>
<tr style="CURSOR: hand" onclick="showsubmenu(3)">
<td><strong>下 载</strong> </td>
</tr>
<tr id="submenu3" style="DISPLAY: none">
<td>华军软件<br>
天空软件<br>
霏凡软件站</td>
</tr>
<tr>
<td height="8"></td>
</tr>
</table>

三种菜单的显示/隐藏

<SCRIPT language="javascript" type="text/javascript">
<!--
//方式一:不用循环,类似动网后台菜单
function MM_ShowSublist(whichItem) {
var theSublist = document.getElementById ("MM_sublist" +whichItem)
if (theSublist.style.display == "none")
theSublist.style.display = "block";
else
theSublist.style.display = "none";
}

//方式二:使用循环,基于方式一的
function MM_ShowSublist2(f,val){
for(var i=1;i<=f;i++){
if(val == i){
document.getElementById("MM_sublist2" + i).style.display="";
}else{
document.getElementById("MM_sublist2" + i).style.display="none";
}
}
}



//方式三:点击一个菜单后,其他菜单会收缩,方便长的菜单
function MM_ShowSublist3(f,val){
for(i=1;i<=f;i++){
document.getElementById("MM_sublist3" + i).style.display="none";
document.getElementById("MM_sublist3" + val).style.display="block";
}
}
//-->
</SCRIPT>

<table id="1" cellspacing="0" cellpadding="0" align="center" width="200" border="1">
<tr>
<td height="8">第1个表格</td>
</tr>
<tr style="CURSOR: hand" onclick="MM_ShowSublist(1)">
<td><strong>聊 天</strong></td>
</tr>
<tr id="MM_sublist1">
<td>碧聊<br>
新浪聊天<br>
网易聊天</td>
</tr>
<tr>
<td height="8"></td>
</tr>
<tr style="CURSOR: hand" onclick="MM_ShowSublist(2)">
<td><strong>游 戏</strong></td>
</tr>
<tr id="MM_sublist2" style="DISPLAY: none">
<td>17173<br>
新浪游戏<br>
太平洋游戏</td>
</tr>
<tr>
<td height="8"></td>
</tr>
<tr style="CURSOR: hand" onclick="MM_ShowSublist(3)">
<td><strong>下 载</strong> </td>
</tr>
<tr id="MM_sublist3" style="DISPLAY: none">
<td>华军软件<br>
天空软件<br>
霏凡软件站</td>
</tr>
<tr>
<td height="8"></td>
</tr>
</table>

<hr>
<table id="2" cellspacing="0" cellpadding="0" align="center" width="200" border="1">
<tr>
<td height="8">第2个表格</td>
</tr>
<tr style="CURSOR: hand" onclick="MM_ShowSublist2(3,1)">
<td><strong>聊 天</strong></td>
</tr>
<tr id="MM_sublist21">
<td>碧聊<br>
新浪聊天<br>
网易聊天</td>
</tr>
<tr>
<td height="8"></td>
</tr>
<tr style="CURSOR: hand" onclick="MM_ShowSublist2(3,2)">
<td><strong>游 戏</strong></td>
</tr>
<tr id="MM_sublist22" style="DISPLAY: none">
<td>17173<br>
新浪游戏<br>
太平洋游戏</td>
</tr>
<tr>
<td height="8"></td>
</tr>
<tr style="CURSOR: hand" onclick="MM_ShowSublist2(3,3)">
<td><strong>下 载</strong> </td>
</tr>
<tr id="MM_sublist23" style="DISPLAY: none">
<td>华军软件<br>
天空软件<br>
霏凡软件站</td>
</tr>
<tr>
<td height="8"></td>
</tr>
</table>

<hr>
<table id="3" cellspacing="0" cellpadding="0" align="center" width="200" border="1">
<tr>
<td height="8">第3个表格</td>
</tr>
<tr style="CURSOR: hand" onclick="MM_ShowSublist3(5,1)">
<td><strong>聊 天</strong></td>
</tr>
<tr id="MM_sublist31">
<td>碧聊<br>
新浪聊天<br>
网易聊天</td>
</tr>
<tr>
<td height="8"></td>
</tr>
<tr style="CURSOR: hand" onclick="MM_ShowSublist3(5,2)">
<td><strong>游 戏</strong></td>
</tr>
<tr id="MM_sublist32" style="DISPLAY: none">
<td>17173<br>
新浪游戏<br>
太平洋游戏</td>
</tr>
<tr>
<td height="8"></td>
</tr>
<tr style="CURSOR: hand" onclick="MM_ShowSublist3(5,3)">
<td><strong>下 载</strong> </td>
</tr>
<tr id="MM_sublist33" style="DISPLAY: none">
<td>华军软件<br>
天空软件<br>
霏凡软件站</td>
</tr>
<tr>
<td height="8"></td>
</tr>
</table>

防止数据库下载代码

<!--#include file="Conn.asp" -->
<%
If DBType = 0 Then  'access=0,其他为sql server
    SqlCmd = "Create Table NotDownload(NotDown OLEObject)"
    Conn.Execute(SqlCmd)
    SqlCmd = "Insert into NotDownload(NotDown) values('" &chrB(Asc("<")) & chrB(Asc("%")) & "')"
    Conn.Execute(SqlCmd)
    Conn.Close
    Set Conn = Nothing
    Response.Write "数据库防下载处理完成,请确认您的Access数据库已经改为ASP后缀!"
Else
    SqlCmd = "Create Table NotDownLoad(NotDown image)"
    Conn.Execute(SqlCmd)
    SqlCmd = "Insert NotDownload(NotDown) values(0x3c25)"
    Conn.Execute(SqlCmd)
    Conn.Close
    Set Conn = Nothing
    Response.Write "数据库防下载处理完成,即使您的SQL Server数据库备份为ASP后缀也不会正常执行。"
End If

%>

3gcomet.com的价值

评估站点:http://www.leapfish.com/

Domain Name Appraised: 3gcomet.com

Combined Domain Name Appraisal Value Score: 60

Top Level Domain Name Score:  10
Unwanted Characters Score:  9
Length Score:  5
Archive.org Score:  0
Google Search Results:  0
Yahoo Search Results:  1
MSN Search Results:  2
Search Engine Score:  1
  

--------------------------------------------------------------------------------
Estimated Domain Name Value: $60.00

评估站点:http://web.anyp.cn/value/

www.3gcomet.com 评估价值:5,340 RMB

仅供参考,以后会更多的!
外国评估测试:http://www.business-opportunities.biz/projects/how-much-is-your-blog-worth/?url=www.3gcomet.com
http://www.dnscoop.com/

NTFS分区和FAT32分区的区别

      我们在新的硬盘上安装操作系统的时候,首先要进行分区、格式化,然后才能安装。在这个过程中,通常要面临采用哪种文件系统的问题,文件系统的选择在某种程度上决定了操作系统可以发挥的性能。
WIN 2000/XP可以同时支持FAT32和NTFS两种文件系统,FAT32长于与WIN 9X的兼容性,NTFS长于系统安全性。在满足应用的前提下,怎样设置文件系统才能充分发挥WIN 2000/XP的特性呢?在讨论这个问题之前,我们先来看一下FAT32和NTFS两种文件系统各有哪些特点。

一.关于FAT32文件系统

在推出FAT32文件系统之前,通常PC机使用的文件系统是FAT16。基于MS-DOS、WIN 95等的系统都采用了FAT16文件系统。在WIN 9X下,FAT16支持的最大分区为2GB。我们知道计算机将信息保存在硬盘上称为“簇”的区域内。使用的簇越小,保存信息的效率就越高。在FAT16下,分区越大簇就相应越大,存储效率就越低,势必造成存储空间的浪费。并且随着计算机硬件和应用的不断提高,FAT16文件系统已不能很好地适应系统的要求。在这种情况下,推出了增强的文件系统FAT32。同FAT16相比,FAT32主要具有以下特点:

1.FAT32可以支持最大为2TB的磁盘空间(2048GB)。但不支持小于512M的分区。基于FAT32的WIN 2000/XP可以支持分区最大为32GB,而基于FAT16的WIN 2000/XP支持的分区最大为4GB。

2.由于采用更小的簇,FAT32可以更有效率地保存信息。如两个分区大小都为2GB,一个为FAT16文件系统,一个为FAT32文件系统,则FAT16分区的簇大小为32KB,而FAT32分区的簇只有4KB大小。这样FAT32就比FAT16存储效率高很多,一般能提高15%。

3.FAT32文件系统可以重新定位根目录和使用FAT的备份副本。另外FAT32分区的启动记录被包含在一个含有关键数据的结构中,减少了计算机系统崩溃的可能性。

二.关于NTFS文件系统

NTFS文件系统是一个基于安全性的文件系统,是Windows NT所采用的独特的文件系统结构,它是建立在保护文件和目录数据上,同时照顾节省存储资源、减少磁盘占用量的一种先进的文件系统。使用非常广泛的Windows NT4.0采用的就是NTFS 4.0文件系统。WIN 2000/XP采用了更新的NTFS 5.0文件系统。
NTFS 5.0的特点主要有以下几个方面:

1.NTFS可以支持的分区大小可以达到2TB。而WIN 2000/XP中的FAT32支持的分区最大为32GB。

2.NTFS是一个可恢复的文件系统。在NTFS分区上用户很少需要运行磁盘修复程序。NTFS使用标准的事物处理日志和恢复技术来保证分区的一致性。发生系统失败事件时。NTFS使用日志文件和检查点信息自动恢复文件系统的一致性。

3.NTFS支持对分区、文件夹和文件的压缩。任何基于Windows的程序对NTFS分区上的压缩文件进行读写时不需要由其它程序先进行解压缩,当文件被读取时,文件会自动解压缩,而关闭和保存时会自动压缩。

4.NTFS采用更小的簇,WIN 2000/XP的NTFS文件系统中,当分区的大小在2GB以下时,簇的大小比相应的FAT32小;当分区在2GB以上时(2GB-2TB),簇的大小为4KB。而采用FAT32的簇大小为16KB(16GB-32GB),相比之下,NTFS能更有效地管理硬盘空间,最大限度的避免磁盘空间浪费。

5.在NTFS分区上,可以为共享资源、文件夹和文件设置访问许可权限。与FAT32文件系统下对文件夹或文件进行访问相比,安全性要高很多。

6.WIN 2000/XP下的NTFS文件系统还可以进行硬盘配额管理。配额管理就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额内的磁盘空间。可以合理的分配系统资源,避免由于磁盘空间失控造成系统崩溃,提高了系统的安全性。

7.NTFS使用一个“变更”日志来跟踪记录文件所发生的变更。

三.选FAT32还是NTFS

在系统的安全性方面,NTFS文件系统具有很多FAT32文件系统所不具备的特点,而且基于NTFS的WIN 2000/XP运行要快于基于FAT32的WIN 2000/XP;而在于WIN 9X的兼容性方面,FAT32优于NTFS。所以在选用哪种文件系统的时候,应该从以下几点考虑:

1.计算机是单一的系统,还是采用多启动的系统
2.本地安装的磁盘的个数和容量
3.是否有安全性方面的考虑

如果要在WIN 2000/XP中使用大于32GB的分区,或者单文件大于4G,就选NTFS。
如果作为单机使用,不考虑安全性问题,更多注重与WIN 9X兼容性,就选FAT32。
如果作为网络工作站或对系统有较高的安全性要求而且是单一的系统,建议每个分区都采用NTFS文件系统。
如果要兼容以前的应用,需要安装WIN 9X或其它操作系统,建议WIN 2000/XP采用NTFS文件系统。其它采用FAT32文件系统。

对NetBox脱壳

首先对netbox.exe进行查壳

PEID 0.93 -> UPX 0.89.6 - 1.02 / 1.05 - 1.24 (Delphi) stub -> Markus & Laszlo

使用Qunpack0.7 来自动脱掉壳,或者使用OD载入脚本进行OEP FIND。

脱壳之后会提示

Application was modified by a virus !!!

然后使用c32asm载入进行分析,点查找字符串,然后找上面的字符串。

::00430590:: 6A 00 PUSH 0 :BYJMP JmpBy:00430862,
::00430592:: 68 E8455600 PUSH 5645E8 ->: Virus Alert
::00430597:: 68 C0455600 PUSH 5645C0 ->: Application was modified by a virus !!!
::0043059C:: 6A 00 PUSH 0
::0043059E:: FF15 34565300 CALL [535634] >>>: USER32.DLL:MessageBoxA
::004305A4:: 6A 00 PUSH 0
::004305A6:: FF15 58535300 CALL [535358] >>>: KERNEL32.DLL:ExitProcess

可以看到是由00430862跳转过来的。然后到00430862看看。我多向上圈了几行。

::00430847:: 74 1E JE SHORT 00430867 :JMPDOWN
::00430849:: 64:8B0D 04000000 MOV ECX, FS:[4]
::00430850:: 83E9 04 SUB ECX, 4
::00430853:: 8BFC MOV EDI, ESP
::00430855:: 8BE1 MOV ESP, ECX
::00430857:: 2BCF SUB ECX, EDI
::00430859:: FC CLD
::0043085A:: F3 REP STOS DWORD PTR ES:[EDI]
::0043085B:: AA STOS BYTE PTR ES:[EDI]
::0043085C:: 33ED XOR EBP, EBP
::0043085E:: 8BF5 MOV ESI, EBP
::00430860:: 8BFD MOV EDI, EBP
::00430862:: E9 29FDFFFF JMP 00430590 :JMPUP

00430862是无条件跳转到00430590。也就是提示程序被病毒修改的对话框。向上看可以看到005430847那里je short 00430867 。条件跳转。跳转到00430867。直接就跳过去了。我们需要把这里改为直接跳转,不让他判断。

改00430847处的 74 1E 改为 EB 1E。然后保存。

运行修改后的文件,提示框也不见了,直接就打开了NB主界面,然后再使用图标修改精灵进行修改图标,最后加一下壳,免的编译后的体积较大。

本文纯属学习使用,如果侵犯了Netbox,请删除此文,谢谢!

聚集索引和非聚集索引的区别

        聚集索引和非聚集索引的根本区别是表记录的排列顺序和与索引的排列顺序是否一致,聚集索引表记录的排列顺序与索引的排列顺序一致,优点是查询速度快,因为一旦具有第一个索引值的纪录被找到,具有连续索引值的记录也一定物理的紧跟其后。
聚集索引的缺点是对表进行修改速度较慢,这是为了保持表中的记录的物理顺序与索引的顺序一致,而把记录插入到数据页的相应位置,必须在数据页中进行数据重排,降低了执行速度。建议使用聚集索引的场合为:
  a.此列包含有限数目的不同值;
  b.查询的结果返回一个区间的值;
  c.查询的结果返回某值相同的大量结果集。

  非聚集索引指定了表中记录的逻辑顺序,但记录的物理顺序和索引的顺序不一致,聚集索引和非聚集索引都采用了B+树的结构,但非聚集索引的叶子层并不与实际的数据页相重叠,而采用叶子层包含一个指向表中的记录在数据页中的指针的方式。非聚集索引比聚集索引层次多,添加记录不会引起数据顺序的重组。建议使用非聚集索引的场合为:
  a.此列包含了大量数目不同的值;
  b.查询的结束返回的是少量的结果集;
  c.order by 子句中使用了该列。

--不用索引查询
Select * FROM IndexTestTable WHIT(INDEX(0))
Where Status='B'

--创建聚集索引
Create CLUSTERED INDEX icIndexTestTable
ON IndexTestTable(Status)
GO

--使用索引查询
Select * FROM IndexTestTable WITH(INDEX(icIndexTestTable))
Where Status='B'

三种USB 2.0规格

USB:Universal Serial Bus,通用串行总线。
三种USB 2.0的规格,注意高速和全速的分别。

1.High-speed USB2.0:高速USB 2.0,理论速度480Mbps,对应之前的USB2.0;
2.Full-speed USB2.0:全速USB 2.0理论速度12Mbps,也就是过去的USB1.1;
3.Low-speed USB2.0:理论速度1.5Mbps,这个一般用于鼠标、键盘等对速度要求不高的外部设备。

用十进制计算IP

  要划分子网就需要计算子网掩码和分配相应的主机块,尽管采用二进制计算可以得出相应的结论,但如果采用十进制计算方法,计算起来更为简便。
一、明确概念
在介绍十进制算法前我们先要明确一些概念。各类范围:
IP地址常采用点分十进制表示方法X.Y.Y.Y,在这里,X在1~126范围内称为A类地址;X在128~191范围内称为B类地址;X在192~223范围内称为C类地址。比如10.202.52.130,因为X为10,在1~126范围内,所以称为A类地址。
A类IP段  0.0.0.0 到127.255.255.255
B类IP段  128.0.0.0 到191.255.255.255
C类IP段  192.0.0.0 到223.255.255.255各类默认子网掩码:
A类为 255.0.0.0; B类为 255.255.0.0; C类为 255.255.255.0。当我们要划分子网用到子网掩码M时,类子网掩码的格式如下:A类为 255.M.0.0,B类为 255.255.M.0,C类为255.255.255.M。M是相应的子网掩码,比如255.255.255.240。十进制计算基数是256(下面,我们所有的十进制计算都要用256来进行)。

二、变量说明

1.Subnet_block 指可分配子网块大小,表示在某一子网掩码下子网的块数。
2.Subnet_num 是可分配子网数,指可分配子网块中要剔除首、尾两块(注:RFC950中要求限制全0和全1的子网使用,不过实际中可以正常使用。),是某一子网掩码下可分配的实际子网数量。Subnet_num =Subnet_block-2。
3.IP_block 指每个子网可分配的IP地址块大小。
4.IP_num 指每个子网实际可分配的IP地址数。因为每个子网的首、尾IP地址必须保留(一个为网络地址,一个为广播地址),所以它等于IP_block-2,IP_num也用于计算主机块。
5.M 指子网掩码。

表示上述变量关系的公式如下:
    M=256-IP_block
IP_block=256/Subnet_block 或 Subnet_block=256/IP_block
IP_num=IP_block-2
Subnet_num=Subnet_block-2

6.2的幂数。大家要熟练掌握2的1至8次方(256)以内的2的幂代表的十进制数(如128=2的7次方、64=2的6次方等),这样可以使我们立即推算出Subnet_block和IP_block的数目。

三、举例说明

现在,通过举一些实际例子,大家可以对子网掩码和主机块的十进制算法有深刻的了解。

1.已知所需子网数12,求实际子网数。

这里实际子网数指Subnet_num,由于12最接近2的幂为16(2的4次方),即Subnet_block=16,那么Subnet_num=16-2=14,故实际子网数为14。

2.已知一个B类子网的每个子网主机数要达到60×255个(约相当于X.Y.0.1~X.Y.59.254的数量),求子网掩码。

首先,60接近2的幂为64(2的6次方),即IP_block=64; 其次,子网掩码M=256-IP_block=256-64=192,最后由子网掩码格式B类是255.255.M.0得出子网掩码为255.255.192.0。

3.如果所需子网数为7,求子网掩码。

7最接近2的幂为8,但8个Subnet_block因为要保留首、尾2个子网块,即 8-2=6< 7,并不能达到所需子网数,所以应取2的幂为16,即Subnet_block=16。因为IP_block=256/Subnet_block=256/16=16,所以子网掩码M=256-IP_block=256-16=240。

4.已知网络地址为211.134.12.0,要有4个子网,求子网掩码及主机块。

由于211.Y.Y.Y是一个C类网,子网掩码格式为255.255.255.M,又知有4个子网,4接近2的幂是8(2的3次方),所以Subnet_block=8,Subnet_num=8-2=6,IP_block=256/Subnet_block=256/8=32,子网掩码M=256-IP_block=256-32=224,故子网掩码表示为255.255.255.224。又因为子网块的首、尾两块不能使用,所以可分配6个子网,每个子网有32个可分配主机块,即32~63、64~95、96~127、128~159、160~191、192~223,其中首块(0~31)和尾块(224~255)不能使用。

由于每个子网块中的可分配主机块又有首、尾两个不能使用(一个是子网网络地址,一个是子网广播地址),所以主机块分别为33~62、65~94、97~126、129~158、161~190及193~222,因此子网掩码为255.255.255.224,主机块共有6段,分别为211.134.12.33~211.134.12.62、211.134.12.65~211.134.12.94、211.134.12.97~211.134.12.126、211.134.12.129~211.134.12.158、211.134.12.161~211.134.12.190及211.134.12.193~211.134.12.222。用户可以任选其中的4段作为4个子网。

总之,只要理解了公式中的逻辑关系,就能很快计算出子网掩码,并得出可分配的主机块。