深度分析“Windows 半开连接数限制“
[ 2009/07/09 16:29 | by selboo ]
在讨论“半开连接”之前,我觉得最重要的一点是,必须弄清楚什么是“半开连接”。
很遗憾,在这个文章里面回复的绝大部分人,可能包括我没有看到这个之前在内,都不知道什么是“半开连接”,更加不知道微软为什么要进行限制。
所以就有诸如“2003是服务器,如果限制了基本网站就不要用了”之类可笑的观点了。
我们先来普及一下基本常识吧,下面的文字可能有点晦涩:
建立TCP连接的标准过程是这样的:
首先,请求端(客户端)发送一个包含SYN标志的TCP报文,SYN即同步(Synchronize),同步报文会指明客户端使用的端口以及TCP连接的初始序号;
第二步,服务器在收到客户端的SYN报文后,将返回一个SYN+ACK的报文,表示客户端的请求被接受,同时TCP序号被加一,ACK即确认(Acknowledgement)。
第三步,客户端也返回一个确认报文ACK给服务器端,同样TCP序列号被加一,到此一个TCP连接完成。
以上的连接过程在TCP协议中被称为三次握手(Three-way Handshake)。
问题就出在TCP连接的三次握手中,
假设一个用户向服务器发送了SYN报文后突然死机或掉线,那么服务器在发出SYN+ACK应答报文后是无法收到客户端的ACK报文的(第三次握手无法完成),
这种情况下服务器端一般会重试(再次发送SYN+ACK给客户端)并等待一段时间后丢弃这个未完成的连接。
这段时间的长度我们称为SYN Timeout,一般来说这个时间是分钟的数量级(大约为30秒-2分钟)。一个用户出现异常导致服务器的一个线程等待1分钟并不是什么很大的问题,
但如果有一个恶意的攻击者大量模拟这种情况,服务器端将为了维护一个非常大的半连接列表而消耗非常多的资源----数以万计的半连接,即使是简单的保存并遍历也会消耗非常多的CPU时间和内存,何况还要不断对这个列表中的IP进行SYN+ACK的重试。
实际上如果服务器的TCP/IP栈不够强大,最后的结果往往是堆栈溢出崩溃---即使服务器端的系统足够强大,服务器端也将忙于处理攻击者伪造的TCP连接请求而无暇理睬客户的正常请求(毕竟客户端的正常请求比率非常之小)。
此时从正常客户的角度看来,服务器失去响应,
这种情况我们称作:服务器端受到了SYN Flood攻击(SYN洪水攻击)。
上面的文字可能很多人看不懂,那我们用比较简单的例子来解释:
1.第一次握手-----------电脑:服务器,你有陈冠希的照片吗?
2.第二次握手-----------服务器:有,你是不是想要?
3.第三次握手-----------电脑:当然想,你传给我。
4.正式建立连接,双方开始传输照片。
在上面的例子中,如果电脑没有回答服务器的问题,就是第三次握手还没有完成,这样的连接就叫做“半开连接”。
微软为了防止SYN洪水攻击,在XP SP2中,限制了最大并发半开连接数为10。
也就是说,使用XP SP2的电脑,最多可以同时向十台服务器询问:“服务器,你有陈冠希的照片吗”。
如果电脑不回答服务器的发问:“有,你是不是想要?”的话,
它就不能向第十一台服务器询问了。
它必须先对前面十台服务器中的随便某一台回答“当然想,你传给我”,完成一次连接之后,才能向第十一台服务器进行询问。
说到这里,大家应该明白了吧?
微软所谓的半开连接数限制,只是针对发起方(也就是上面例子中的电脑)的,不是针对接受方(也就是上面例子中的服务器)!
一台使用XP SP2的电脑,如果它是半开连接的发起方,它就会受到这个限制。
如果它是半开连接的接受方,那么,它是不会受到这个半开连接数的限制的!
以上只是针对XP SP2的分析,如果是使用2003或者2008的电脑呢?
也是同样的道理,如果2003或者2008是接受方,比如我们常见的WEB服务器或者FTP服务器,那它们也不会受到半开连接数的限制!
哪怕它们的最大并发半开连接数同样是10,也不会对它们的HTTP服务,或者FTP服务,有任何影响!
那么,该回到主题了,到底2003有没有限制最大并发半开连接数呢?
楼主的分析已经很清楚了:
以英文企业版Windows 2003 SP2的tcpip.sys为例,TCPMaxHalfOpen是5000。
这很好的说明了,
微软对英文企业版2003 SP2的最大并发半开连接数的限制为5000!
我们再想一想,现在互联网上有很多使用2003来架构的网站或者论坛,
它们的最大同时访问量往往是用数万为单位来计算的,
但是用户访问网站或者登陆论坛却没有感受到什么影响,除非是服务器受到SYN洪水攻击。
这不正好说明了,微软所谓的半开连接数限制,只是针对发起方的吗?
所以我们可以得出一个结论:
2003或者2008,同样有半开连接数的限制,
只不过,只有当它们作为连接的发起方,比如BT下载的客户端,P2P网络电视的使用者时,才会受到这个限制;
在它们作为连接的接受方,比如WEB服务器,或者FTP服务器时,是不会受到限制的。
最后再解释一下注册表中的TCPMaxHalfOpen相关项目的设置和用途:
首先,SynAttackProtect的键值,类型为REG_DWORD,取值范围是0,1。从WIN2003 SP1开始默认值是1。
这个值决定了系统受到SYN攻击时采取的保护措施,包括减少系统SYN+ACK的重试的次数等。
其次,TcpMaxHalfOpen的键值,类型为REG_DWORD,取值范围是100-0xFFFF,这个值是系统允许同时打开的半连接。
默认情况下WIN2K PRO和SERVER是100,ADVANCED SERVER是500,WIN2003是5000。
然后,TcpMaxHalfOpenRetried的键值,类型为REG_DWORD,取值范围是80-0xFFFF,这个值决定了在什么情况下系统会打开SYN攻击保护。
默认情况下WIN2K PRO和SERVER是80,ADVANCED SERVER是400,WIN2003是2500。
Win2003的SYN攻击保护机制是这样的:
正常情况下,WIN2003对TCP连接的三次握手有一个常规的设置,
包括SYN Timeout时间、SYN-ACK的重试次数和SYN报文从路由器到系统再到Winsock的延时等。
这个常规设置是针对系统性能进行优化的(安全和性能往往相互矛盾),所以可以给用户提供方便快捷的服务。
一旦服务器受到攻击,SYN半连接的数量超过TcpMaxHalfOpenRetried的设置,系统会认为自己受到了SYN Flood攻击。
此时,设置在SynAttackProtect键值中的选项开始作用,SYN Timeout时间被减短,SYN-ACK的重试次数减少,
系统也会自动对缓冲区中的报文进行延时,避免对TCP/IP堆栈造成过大的冲击,力图将攻击危害减到最低。
如果攻击强度不断增大,超过了TcpMaxHalfOpen值,此时系统已经不能提供正常的服务了,更重要的是保证系统不会崩溃,
系统将会丢弃任何超出TcpMaxHalfOpen值范围的SYN报文(应该是使用随机丢包策略),保证系统的稳定性。
所以,把TcpMaxHalfOpen值改小,只是为了加强系统对SYN洪水攻击的防御能力;
改大,再大也超不过TCPIP.SYS的限制。
这是微软对于“半开连接”接受方所采取的一种保护措施,
和对“半开连接”发起方所采取的最大并发连接数限制,
是相辅相成的。
很遗憾,在这个文章里面回复的绝大部分人,可能包括我没有看到这个之前在内,都不知道什么是“半开连接”,更加不知道微软为什么要进行限制。
所以就有诸如“2003是服务器,如果限制了基本网站就不要用了”之类可笑的观点了。
我们先来普及一下基本常识吧,下面的文字可能有点晦涩:
建立TCP连接的标准过程是这样的:
首先,请求端(客户端)发送一个包含SYN标志的TCP报文,SYN即同步(Synchronize),同步报文会指明客户端使用的端口以及TCP连接的初始序号;
第二步,服务器在收到客户端的SYN报文后,将返回一个SYN+ACK的报文,表示客户端的请求被接受,同时TCP序号被加一,ACK即确认(Acknowledgement)。
第三步,客户端也返回一个确认报文ACK给服务器端,同样TCP序列号被加一,到此一个TCP连接完成。
以上的连接过程在TCP协议中被称为三次握手(Three-way Handshake)。
问题就出在TCP连接的三次握手中,
假设一个用户向服务器发送了SYN报文后突然死机或掉线,那么服务器在发出SYN+ACK应答报文后是无法收到客户端的ACK报文的(第三次握手无法完成),
这种情况下服务器端一般会重试(再次发送SYN+ACK给客户端)并等待一段时间后丢弃这个未完成的连接。
这段时间的长度我们称为SYN Timeout,一般来说这个时间是分钟的数量级(大约为30秒-2分钟)。一个用户出现异常导致服务器的一个线程等待1分钟并不是什么很大的问题,
但如果有一个恶意的攻击者大量模拟这种情况,服务器端将为了维护一个非常大的半连接列表而消耗非常多的资源----数以万计的半连接,即使是简单的保存并遍历也会消耗非常多的CPU时间和内存,何况还要不断对这个列表中的IP进行SYN+ACK的重试。
实际上如果服务器的TCP/IP栈不够强大,最后的结果往往是堆栈溢出崩溃---即使服务器端的系统足够强大,服务器端也将忙于处理攻击者伪造的TCP连接请求而无暇理睬客户的正常请求(毕竟客户端的正常请求比率非常之小)。
此时从正常客户的角度看来,服务器失去响应,
这种情况我们称作:服务器端受到了SYN Flood攻击(SYN洪水攻击)。
上面的文字可能很多人看不懂,那我们用比较简单的例子来解释:
1.第一次握手-----------电脑:服务器,你有陈冠希的照片吗?
2.第二次握手-----------服务器:有,你是不是想要?
3.第三次握手-----------电脑:当然想,你传给我。
4.正式建立连接,双方开始传输照片。
在上面的例子中,如果电脑没有回答服务器的问题,就是第三次握手还没有完成,这样的连接就叫做“半开连接”。
微软为了防止SYN洪水攻击,在XP SP2中,限制了最大并发半开连接数为10。
也就是说,使用XP SP2的电脑,最多可以同时向十台服务器询问:“服务器,你有陈冠希的照片吗”。
如果电脑不回答服务器的发问:“有,你是不是想要?”的话,
它就不能向第十一台服务器询问了。
它必须先对前面十台服务器中的随便某一台回答“当然想,你传给我”,完成一次连接之后,才能向第十一台服务器进行询问。
说到这里,大家应该明白了吧?
微软所谓的半开连接数限制,只是针对发起方(也就是上面例子中的电脑)的,不是针对接受方(也就是上面例子中的服务器)!
一台使用XP SP2的电脑,如果它是半开连接的发起方,它就会受到这个限制。
如果它是半开连接的接受方,那么,它是不会受到这个半开连接数的限制的!
以上只是针对XP SP2的分析,如果是使用2003或者2008的电脑呢?
也是同样的道理,如果2003或者2008是接受方,比如我们常见的WEB服务器或者FTP服务器,那它们也不会受到半开连接数的限制!
哪怕它们的最大并发半开连接数同样是10,也不会对它们的HTTP服务,或者FTP服务,有任何影响!
那么,该回到主题了,到底2003有没有限制最大并发半开连接数呢?
楼主的分析已经很清楚了:
以英文企业版Windows 2003 SP2的tcpip.sys为例,TCPMaxHalfOpen是5000。
这很好的说明了,
微软对英文企业版2003 SP2的最大并发半开连接数的限制为5000!
我们再想一想,现在互联网上有很多使用2003来架构的网站或者论坛,
它们的最大同时访问量往往是用数万为单位来计算的,
但是用户访问网站或者登陆论坛却没有感受到什么影响,除非是服务器受到SYN洪水攻击。
这不正好说明了,微软所谓的半开连接数限制,只是针对发起方的吗?
所以我们可以得出一个结论:
2003或者2008,同样有半开连接数的限制,
只不过,只有当它们作为连接的发起方,比如BT下载的客户端,P2P网络电视的使用者时,才会受到这个限制;
在它们作为连接的接受方,比如WEB服务器,或者FTP服务器时,是不会受到限制的。
最后再解释一下注册表中的TCPMaxHalfOpen相关项目的设置和用途:
首先,SynAttackProtect的键值,类型为REG_DWORD,取值范围是0,1。从WIN2003 SP1开始默认值是1。
这个值决定了系统受到SYN攻击时采取的保护措施,包括减少系统SYN+ACK的重试的次数等。
其次,TcpMaxHalfOpen的键值,类型为REG_DWORD,取值范围是100-0xFFFF,这个值是系统允许同时打开的半连接。
默认情况下WIN2K PRO和SERVER是100,ADVANCED SERVER是500,WIN2003是5000。
然后,TcpMaxHalfOpenRetried的键值,类型为REG_DWORD,取值范围是80-0xFFFF,这个值决定了在什么情况下系统会打开SYN攻击保护。
默认情况下WIN2K PRO和SERVER是80,ADVANCED SERVER是400,WIN2003是2500。
Win2003的SYN攻击保护机制是这样的:
正常情况下,WIN2003对TCP连接的三次握手有一个常规的设置,
包括SYN Timeout时间、SYN-ACK的重试次数和SYN报文从路由器到系统再到Winsock的延时等。
这个常规设置是针对系统性能进行优化的(安全和性能往往相互矛盾),所以可以给用户提供方便快捷的服务。
一旦服务器受到攻击,SYN半连接的数量超过TcpMaxHalfOpenRetried的设置,系统会认为自己受到了SYN Flood攻击。
此时,设置在SynAttackProtect键值中的选项开始作用,SYN Timeout时间被减短,SYN-ACK的重试次数减少,
系统也会自动对缓冲区中的报文进行延时,避免对TCP/IP堆栈造成过大的冲击,力图将攻击危害减到最低。
如果攻击强度不断增大,超过了TcpMaxHalfOpen值,此时系统已经不能提供正常的服务了,更重要的是保证系统不会崩溃,
系统将会丢弃任何超出TcpMaxHalfOpen值范围的SYN报文(应该是使用随机丢包策略),保证系统的稳定性。
所以,把TcpMaxHalfOpen值改小,只是为了加强系统对SYN洪水攻击的防御能力;
改大,再大也超不过TCPIP.SYS的限制。
这是微软对于“半开连接”接受方所采取的一种保护措施,
和对“半开连接”发起方所采取的最大并发连接数限制,
是相辅相成的。
Windows SID 安全标识符
[ 2009/07/09 15:54 | by selboo ]
关于Windows SID---安全标识符
在此我们先不去评论国外与国内等知名杀毒引擎的优缺点,但我们知道买一套正版的100个点左右的网络版杀毒引擎,最起码是上10万的。当然做我们这一行的,不可能拿出这样一份采购报告递给老总。于是我们不得不去网上寻找一些破解的,盗版,只要还能发挥一点作用的。
于是在丁香鱼网站下了个瑞星中小型企业版(当然是破解的,不过瑞星官方似乎并不干涉,毕竟换个角度来说,丁香鱼这种作为似乎对于瑞星产品的推广是功不可默的)
由于大多企业内部使用的办公电脑都是同配置的(方便采购,方便管理和维护),我在其中一台PC上全新安装了一个Windows XP,装好必要的应用软件,打好系统补丁,当然还得装个杀毒软件呀。我把我本人使用的电脑装上了瑞星服务器端和控制中心。样机装为客户端。于是一切设定都已OK,当然得ghost一个“*.gho”镜像,以便日后恢复及给同配置的电脑ghost这个目前处于最干净,最安全,最高速的Windows system 。
于是问题出来了,情况如下:
Server:我的电脑称作(装有瑞星网络版服务器端及控制中心)
PC-A:样机(装有瑞星网络版客户端)
PC-B:与样机PC-A相同的硬件配置,系统为PC-A所ghost的镜像
三台机为在线状态,所处环境为对等局域网。
打开Server端的瑞星控制中心。控制中心只能看到:Server和PC-A且为在线状态,可以正常控制。于是重启PC-B,刷新控制中心,于是只能看到:Server和PC-B,也为在状态。
于是反得测试了几次。情况依旧如此。
Ghost系统,同一个CD-KEY,生成同一个SID,什么是SID?---安全标识符(Security Identifiers),是标识用户、组和计算机帐户的唯一的号码。在第一次创建该帐户时,将给网络上的每一个帐户发布一个唯一的 SID。
SID的作用
用户通过验证后,登陆进程会给用户一个访问令牌,该令牌相当于用户访问系统资源的票证,当用户试图访问系统资源时,将访问令牌提供给 Windows NT,然后 Windows NT 检查用户试图访问对象上的访问控制列表。如果用户被允许访问该对象,Windows NT将会分配给用户适当的访问权限。
访问令牌是用户在通过验证的时候有登陆进程所提供的,所以改变用户的权限需要注销后重新登陆,重新获取访问令牌。
SID号码的组成
如果存在两个同样SID的用户,这两个帐户将被鉴别为同一个帐户,原理上如果帐户无限制增加的时候,会产生同样的SID,在通常的情况下SID是唯一的,他由计算机名、当前时间、当前用户态线程的CPU耗费时间的总和三个参数决定以保证它的唯一性。
一个完整的SID包括:
• 用户和组的安全描述
• 48-bit的ID authority
• 修订版本
• 可变的验证值Variable sub-authority values
例:S-1-5-21-310440588-250036847-580389505-500
我们来先分析这个重要的SID。第一项S表示该字符串是SID;第二项是SID的版本号,对于2000来说,这个就是1;然后是标志符的颁发机构(identifier authority),对于2000内的帐户,颁发机构就是NT,值是5。然后表示一系列的子颁发机构,前面几项是标志域的,最后一个标志着域内的帐户和组。
看到这些知识点之后,我也想起曾经做AD测试的时候,有两台Windows怎么也无法加入域控制器。
查看系统SID有多种方法:
通过注册表
开始-运行-regedt-HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Builtin\Aliases\Members,找到本地的域的代码,展开后,得到的就是本地帐号的所有SID列表。
其中很多值都是固定的,比如第一个000001F4(16进制),换算成十进制是500,说明是系统建立的内置管理员帐号administrator,000001F5换算成10进制是501,也就是GUEST帐号了,详细的参照后面的列表。 这一项默认是system可以完全控制,这也就是为什么要获得这个需要一个System的Cmd的Shell的原因了,当然如果权限足够的话你可以把你要添加的帐号添加进去。
或者使用Support Tools的Reg工具:
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
也可以通过CMD中的命令来查看SID,用命令“whoami /user”来查看用户的SID,但在我的测试中,此命令只有在Server版System中才能使用。
如果解决这种因为SID重复而产生的问题呢?就以我这个瑞星网络版来讲吧:
找到安装的光盘(注意版本区别),找到support\tools下的一个叫做deploy.cab的压缩包,解压缩到任意一个目录里面,运行里面的sysprep.exe,在程序窗口中单击:“工厂”,后电脑会自动关机(这个选项可以自己选,重启,关机等)在开机后,此程序还会启动在桌面上,再单击:“重新封装”再重启电脑后,系统会重新配置,并要你再次输入CD-KEY和管理员密码,建一个新的用户名,进入Windows桌面后,你再查看SID以及系统属性的“注册到”一栏中的信息和PID号已经改变。
问题解决,大快人心!
下面是SID末尾RID值的列表,括号内为16进制:
Built-In Users
DOMAINNAME\ADMINISTRATOR
S-1-5-21-917267712-1342860078-1792151419-500 (=0x1F4)
DOMAINNAME\GUEST
S-1-5-21-917267712-1342860078-1792151419-501 (=0x1F5)
Built-In Global Groups
DOMAINNAME\DOMAIN ADMINS
S-1-5-21-917267712-1342860078-1792151419-512 (=0x200)
DOMAINNAME\DOMAIN USERS
S-1-5-21-917267712-1342860078-1792151419-513 (=0x201)
DOMAINNAME\DOMAIN GUESTS
S-1-5-21-917267712-1342860078-1792151419-514 (=0x202)
Built-In Local Groups
BUILTIN\ADMINISTRATORS S-1-5-32-544 (=0x220)
BUILTIN\USERS S-1-5-32-545 (=0x221)
BUILTIN\GUESTS S-1-5-32-546 (=0x222)
BUILTIN\ACCOUNT OPERATORS S-1-5-32-548 (=0x224)
BUILTIN\SERVER OPERATORS S-1-5-32-549 (=0x225)
BUILTIN\PRINT OPERATORS S-1-5-32-550 (=0x226)
BUILTIN\BACKUP OPERATORS S-1-5-32-551 (=0x227)
BUILTIN\REPLICATOR S-1-5-32-552 (=0x228)
Special Groups
\CREATOR OWNER S-1-3-0
\EVERYONE S-1-1-0
NT AUTHORITY\NETWORK S-1-5-2
NT AUTHORITY\INTERACTIVE S-1-5-4
NT AUTHORITY\SYSTEM S-1-5-18
NT AUTHORITY\authenticated users S-1-5-11 *
在此我们先不去评论国外与国内等知名杀毒引擎的优缺点,但我们知道买一套正版的100个点左右的网络版杀毒引擎,最起码是上10万的。当然做我们这一行的,不可能拿出这样一份采购报告递给老总。于是我们不得不去网上寻找一些破解的,盗版,只要还能发挥一点作用的。
于是在丁香鱼网站下了个瑞星中小型企业版(当然是破解的,不过瑞星官方似乎并不干涉,毕竟换个角度来说,丁香鱼这种作为似乎对于瑞星产品的推广是功不可默的)
由于大多企业内部使用的办公电脑都是同配置的(方便采购,方便管理和维护),我在其中一台PC上全新安装了一个Windows XP,装好必要的应用软件,打好系统补丁,当然还得装个杀毒软件呀。我把我本人使用的电脑装上了瑞星服务器端和控制中心。样机装为客户端。于是一切设定都已OK,当然得ghost一个“*.gho”镜像,以便日后恢复及给同配置的电脑ghost这个目前处于最干净,最安全,最高速的Windows system 。
于是问题出来了,情况如下:
Server:我的电脑称作(装有瑞星网络版服务器端及控制中心)
PC-A:样机(装有瑞星网络版客户端)
PC-B:与样机PC-A相同的硬件配置,系统为PC-A所ghost的镜像
三台机为在线状态,所处环境为对等局域网。
打开Server端的瑞星控制中心。控制中心只能看到:Server和PC-A且为在线状态,可以正常控制。于是重启PC-B,刷新控制中心,于是只能看到:Server和PC-B,也为在状态。
于是反得测试了几次。情况依旧如此。
Ghost系统,同一个CD-KEY,生成同一个SID,什么是SID?---安全标识符(Security Identifiers),是标识用户、组和计算机帐户的唯一的号码。在第一次创建该帐户时,将给网络上的每一个帐户发布一个唯一的 SID。
SID的作用
用户通过验证后,登陆进程会给用户一个访问令牌,该令牌相当于用户访问系统资源的票证,当用户试图访问系统资源时,将访问令牌提供给 Windows NT,然后 Windows NT 检查用户试图访问对象上的访问控制列表。如果用户被允许访问该对象,Windows NT将会分配给用户适当的访问权限。
访问令牌是用户在通过验证的时候有登陆进程所提供的,所以改变用户的权限需要注销后重新登陆,重新获取访问令牌。
SID号码的组成
如果存在两个同样SID的用户,这两个帐户将被鉴别为同一个帐户,原理上如果帐户无限制增加的时候,会产生同样的SID,在通常的情况下SID是唯一的,他由计算机名、当前时间、当前用户态线程的CPU耗费时间的总和三个参数决定以保证它的唯一性。
一个完整的SID包括:
• 用户和组的安全描述
• 48-bit的ID authority
• 修订版本
• 可变的验证值Variable sub-authority values
例:S-1-5-21-310440588-250036847-580389505-500
我们来先分析这个重要的SID。第一项S表示该字符串是SID;第二项是SID的版本号,对于2000来说,这个就是1;然后是标志符的颁发机构(identifier authority),对于2000内的帐户,颁发机构就是NT,值是5。然后表示一系列的子颁发机构,前面几项是标志域的,最后一个标志着域内的帐户和组。
看到这些知识点之后,我也想起曾经做AD测试的时候,有两台Windows怎么也无法加入域控制器。
查看系统SID有多种方法:
通过注册表
开始-运行-regedt-HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Builtin\Aliases\Members,找到本地的域的代码,展开后,得到的就是本地帐号的所有SID列表。
其中很多值都是固定的,比如第一个000001F4(16进制),换算成十进制是500,说明是系统建立的内置管理员帐号administrator,000001F5换算成10进制是501,也就是GUEST帐号了,详细的参照后面的列表。 这一项默认是system可以完全控制,这也就是为什么要获得这个需要一个System的Cmd的Shell的原因了,当然如果权限足够的话你可以把你要添加的帐号添加进去。
或者使用Support Tools的Reg工具:
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
也可以通过CMD中的命令来查看SID,用命令“whoami /user”来查看用户的SID,但在我的测试中,此命令只有在Server版System中才能使用。
如果解决这种因为SID重复而产生的问题呢?就以我这个瑞星网络版来讲吧:
找到安装的光盘(注意版本区别),找到support\tools下的一个叫做deploy.cab的压缩包,解压缩到任意一个目录里面,运行里面的sysprep.exe,在程序窗口中单击:“工厂”,后电脑会自动关机(这个选项可以自己选,重启,关机等)在开机后,此程序还会启动在桌面上,再单击:“重新封装”再重启电脑后,系统会重新配置,并要你再次输入CD-KEY和管理员密码,建一个新的用户名,进入Windows桌面后,你再查看SID以及系统属性的“注册到”一栏中的信息和PID号已经改变。
问题解决,大快人心!
下面是SID末尾RID值的列表,括号内为16进制:
Built-In Users
DOMAINNAME\ADMINISTRATOR
S-1-5-21-917267712-1342860078-1792151419-500 (=0x1F4)
DOMAINNAME\GUEST
S-1-5-21-917267712-1342860078-1792151419-501 (=0x1F5)
Built-In Global Groups
DOMAINNAME\DOMAIN ADMINS
S-1-5-21-917267712-1342860078-1792151419-512 (=0x200)
DOMAINNAME\DOMAIN USERS
S-1-5-21-917267712-1342860078-1792151419-513 (=0x201)
DOMAINNAME\DOMAIN GUESTS
S-1-5-21-917267712-1342860078-1792151419-514 (=0x202)
Built-In Local Groups
BUILTIN\ADMINISTRATORS S-1-5-32-544 (=0x220)
BUILTIN\USERS S-1-5-32-545 (=0x221)
BUILTIN\GUESTS S-1-5-32-546 (=0x222)
BUILTIN\ACCOUNT OPERATORS S-1-5-32-548 (=0x224)
BUILTIN\SERVER OPERATORS S-1-5-32-549 (=0x225)
BUILTIN\PRINT OPERATORS S-1-5-32-550 (=0x226)
BUILTIN\BACKUP OPERATORS S-1-5-32-551 (=0x227)
BUILTIN\REPLICATOR S-1-5-32-552 (=0x228)
Special Groups
\CREATOR OWNER S-1-3-0
\EVERYONE S-1-1-0
NT AUTHORITY\NETWORK S-1-5-2
NT AUTHORITY\INTERACTIVE S-1-5-4
NT AUTHORITY\SYSTEM S-1-5-18
NT AUTHORITY\authenticated users S-1-5-11 *
修改TCPIP.SYS破解TCP/IP线程限制
[ 2009/07/09 15:54 | by selboo ]
Windows XP_SP2、XP_64、2003_SP1微软做了TCP/IP线程限制:
每个进程通过TCP/IP连接的网络线程最多只能有10个,微软这样做的目的是为了限制蠕虫的散播速度。但这是把双刃剑,这样也限制了用户的正常网络通信,尤其是对下载操作,如BT。很多人在升级到XP_SP2后发现网络连接经常时断时续。
打开 控制面板 -> 管理工具 -> 事件查看器
在'系统'事件里,如果有ID号为4226的TCP/IP事件(黄色叹号的警告),就说明你的系统有这方面的问题。
解决方法是修改TCPIP.SYS文件中的连接数限制。这里我推荐一个德国的小软件EvID4226Patch
它的官网是http://www.lvllord.de/ ,这个软件可以对 XP_SP2、XP_64、2003_SP1进行修改。
打开软件后进入个DOS界面,输入你要修改的值,尽量大些,推荐至少100,我是2048。
按Y确定后重启。
再推荐个简单的,比特精灵自带个TCP/IP连接数补丁,应用起来很简单,记住要下最新版的。
其它软件也有带类似比特精灵这种补丁的,比如讯雷,就是补丁更新不及时。有时微软的IE安全补丁会升级TCPIP.SYS,就需要重新修改这个文件了。所以还是EvID4226Patch最快。
每个进程通过TCP/IP连接的网络线程最多只能有10个,微软这样做的目的是为了限制蠕虫的散播速度。但这是把双刃剑,这样也限制了用户的正常网络通信,尤其是对下载操作,如BT。很多人在升级到XP_SP2后发现网络连接经常时断时续。
打开 控制面板 -> 管理工具 -> 事件查看器
在'系统'事件里,如果有ID号为4226的TCP/IP事件(黄色叹号的警告),就说明你的系统有这方面的问题。
解决方法是修改TCPIP.SYS文件中的连接数限制。这里我推荐一个德国的小软件EvID4226Patch
它的官网是http://www.lvllord.de/ ,这个软件可以对 XP_SP2、XP_64、2003_SP1进行修改。
打开软件后进入个DOS界面,输入你要修改的值,尽量大些,推荐至少100,我是2048。
按Y确定后重启。
再推荐个简单的,比特精灵自带个TCP/IP连接数补丁,应用起来很简单,记住要下最新版的。
其它软件也有带类似比特精灵这种补丁的,比如讯雷,就是补丁更新不及时。有时微软的IE安全补丁会升级TCPIP.SYS,就需要重新修改这个文件了。所以还是EvID4226Patch最快。
争论32bit/64bit的人都搞错了方向,需要分清楚IA64和x64。
[ 2009/07/08 11:41 | by selboo ]
简单来说,现在争论的人主要围绕着windows的x86和x64版本
但其实这个争论根本和32bit和64bit没有直接关联,只有间接关联而已。
因为大部分都搞错了一个重要的基础,就是x64不代表64bit,代表64bit的东西叫做IA64
说一大堆专业术语恐怕大部分人都懒得看,也看不懂,就简单说概念性的东西。
真正意义上纯64bit的东西只有intel的IA64,它完全不兼容x86运算,需要用到x86-to-IA-64的解码器才能进行x86运算,但是性能损失很厉害。
x64这个东西准确来说应该是x86拓展x64技术,amd和intel的东西根本都是一个性质。
这个技术是用来解决64bit系统处理x86代码需要损失性能的关键,因为它是直接使用x86的cpu拓展到64bit,使x86的cpu即可以处理x86运算,也可以处理64bit运算
和IA64的解码器可以说是完全反过来的东西,IA64的解码器是让64bit的cpu处理被转换成64bit的32bit代码,而x64则是x86的cpu直接处理32bit和64bit的运算。
而争论的关键就在于32bit和64bit的软件,实际上现在我们使用的所谓64bit cpu都是x64的cpu,64bit的cpu只有Intel的安腾系列而已,也只有他们可以安装安腾服务器版原生纯64bit的windows。
而x64的本质就是用来同时处理32bit和64bit,所以在x64上面根本无谓软件的32bit和64bit之分,因为两者都可以非常顺利的运用在x64的构架上面,只是64bit的软件效率比32bit的软件要高得多,但是不代表32bit的软件在x64上面会出现问题,当然这里不包括那些使用16位安装代码的程序,x64抛弃了16位,这你去问微软。
换句话说,想要x64只运行64bit的时代是不会到来,因为x64就是为了同时运行x86和64bit而出现的东西,那个时代只会属于安腾cpu,而不是我们现在手里的拥有x64技术的x86 cpu。
32bit的代码在x64中永远也不回消失,因为那就是x64出现的目的。
但其实这个争论根本和32bit和64bit没有直接关联,只有间接关联而已。
因为大部分都搞错了一个重要的基础,就是x64不代表64bit,代表64bit的东西叫做IA64
说一大堆专业术语恐怕大部分人都懒得看,也看不懂,就简单说概念性的东西。
真正意义上纯64bit的东西只有intel的IA64,它完全不兼容x86运算,需要用到x86-to-IA-64的解码器才能进行x86运算,但是性能损失很厉害。
x64这个东西准确来说应该是x86拓展x64技术,amd和intel的东西根本都是一个性质。
这个技术是用来解决64bit系统处理x86代码需要损失性能的关键,因为它是直接使用x86的cpu拓展到64bit,使x86的cpu即可以处理x86运算,也可以处理64bit运算
和IA64的解码器可以说是完全反过来的东西,IA64的解码器是让64bit的cpu处理被转换成64bit的32bit代码,而x64则是x86的cpu直接处理32bit和64bit的运算。
而争论的关键就在于32bit和64bit的软件,实际上现在我们使用的所谓64bit cpu都是x64的cpu,64bit的cpu只有Intel的安腾系列而已,也只有他们可以安装安腾服务器版原生纯64bit的windows。
而x64的本质就是用来同时处理32bit和64bit,所以在x64上面根本无谓软件的32bit和64bit之分,因为两者都可以非常顺利的运用在x64的构架上面,只是64bit的软件效率比32bit的软件要高得多,但是不代表32bit的软件在x64上面会出现问题,当然这里不包括那些使用16位安装代码的程序,x64抛弃了16位,这你去问微软。
换句话说,想要x64只运行64bit的时代是不会到来,因为x64就是为了同时运行x86和64bit而出现的东西,那个时代只会属于安腾cpu,而不是我们现在手里的拥有x64技术的x86 cpu。
32bit的代码在x64中永远也不回消失,因为那就是x64出现的目的。
TeamViewer 4.1.6080 汉化版
[ 2009/07/07 22:19 | by selboo ]
推选
TeamViewer是一个在任何防火墙和NAT代理的后台用于远程控制,桌面共享和文件传输的简单且快速的解决方案.
为了连接到另一台计算机,只需要在两台计算机上同时运行TeamViewer即可而不需要进行一个安装的过程.该软件第一次启动在两台计算机上自动生成伙伴ID.只需要输入你的伙伴的ID到TeamViewer,然后就会立即建立起连接.
这款软件是至今唯一的一款能穿透内网的远程控制软件,可以穿透各种防火墙,要求双方都安装这个软件,使用时要求双开打开软件并且接受连接即可,最大优势在于此软件任何一方都不需要拥有固定IP地址,双方都可以相互控制,只要连入Internet即可,不受防火墙影响!
产品新功能:
完全支持Windows Vista UAC和远程登录. TeamViewer 3 现在能够远程控制运行在 Vista 安全桌面下的 Windows 操作系统.
通过使用更好的编码和压缩提供了高度提升的性能的连接稳定性
TeamViewer 现在是仅仅是一个单独的应用程序,由于使用新的代码库 TeamViewer 和 DynaGate 现在不再分离了
现可在 TeamViewer 3 里在为您的伙伴的 ID 设定别名了
自动代理检测现在支持 Firefox 和 Opera 浏览器
远程监视器之间的多显示器处理和切换
为 customer module creator 的扩展设计选项
提高的文件传输性能和全自动恢复
完整的国际化字符支持 (Unicode)
提高了的处理,可用性和易于使用
缺点:TeamViewer 3 不支持以前的 1.x 和 2.x 版本,原因是TeamViewer 2 基于 VNC 兼容协议,并产生了一些内部错误,在 TeamViewer 3 里使用了全新的,高性能的协议,提升了 TeamViewer 的性能和稳定性.
下载地址
TeamViewer是一个在任何防火墙和NAT代理的后台用于远程控制,桌面共享和文件传输的简单且快速的解决方案.
为了连接到另一台计算机,只需要在两台计算机上同时运行TeamViewer即可而不需要进行一个安装的过程.该软件第一次启动在两台计算机上自动生成伙伴ID.只需要输入你的伙伴的ID到TeamViewer,然后就会立即建立起连接.
这款软件是至今唯一的一款能穿透内网的远程控制软件,可以穿透各种防火墙,要求双方都安装这个软件,使用时要求双开打开软件并且接受连接即可,最大优势在于此软件任何一方都不需要拥有固定IP地址,双方都可以相互控制,只要连入Internet即可,不受防火墙影响!
产品新功能:
完全支持Windows Vista UAC和远程登录. TeamViewer 3 现在能够远程控制运行在 Vista 安全桌面下的 Windows 操作系统.
通过使用更好的编码和压缩提供了高度提升的性能的连接稳定性
TeamViewer 现在是仅仅是一个单独的应用程序,由于使用新的代码库 TeamViewer 和 DynaGate 现在不再分离了
现可在 TeamViewer 3 里在为您的伙伴的 ID 设定别名了
自动代理检测现在支持 Firefox 和 Opera 浏览器
远程监视器之间的多显示器处理和切换
为 customer module creator 的扩展设计选项
提高的文件传输性能和全自动恢复
完整的国际化字符支持 (Unicode)
提高了的处理,可用性和易于使用
缺点:TeamViewer 3 不支持以前的 1.x 和 2.x 版本,原因是TeamViewer 2 基于 VNC 兼容协议,并产生了一些内部错误,在 TeamViewer 3 里使用了全新的,高性能的协议,提升了 TeamViewer 的性能和稳定性.
下载地址