• 说些平时你学不到的电脑知识

    2007-10-22

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://www.blogbus.com/liuyanghejerry-logs/10411584.html

    呀...老有人说咱BLOG里实质内容太少,而且没有关于自己的事情...哎,这也是没办法的,写时事评论容易和政府起矛盾,写个人的情感吧,阴暗面又太多,而且牵扯到周围的朋友就不好了,尽管咱是个开放大度的人,但别人就不一定咯...说来说去,还是决定给人间带来些智慧,给世界播撒点美丽──我是说,讲点实用的电脑知识吧.
    在没挨砖之前,赶快说下:咱不是高手,也不是强人,用电脑上网的时间夸张点也才5年,学历只是目前十分过剩的高中且正在攻读,顺带说句,还是在重点学校的非重点班...咱没拿过程序员的什么等级证书,也没参加过什么知名的PC比赛,程序语言一个也没拿下,脚本语言只有一种算能看懂,硬件方面基本白痴,软件方面全靠GOOGLE,相关书籍一大箱子,多数没有吸收......但是(这连词特点就是分量足...),在今后的文章中,各位一定会有所收获.最后附加句:本系列文章适合只会用电脑,不懂原理的人看~~
    一、从视窗说起
    视窗是啥?视窗就是Windows的中文,微软的操作系统名.我打赌,看这文章的,很可能只有一个人用的不是Windows,其余的,一定在用Windows.以上所述用处不大,但是,咱不是在废话.Windows是一种操作系统,而不是电脑本身,换句话说,还有其它的系统,比如Unix.什么是操作系统?个人理解,只是一种操控硬件的手段,倘若没有这东西,那恐怕还要你按开关来决定哪个设备的电路通断...操作系统可以操纵硬件,但不是只有操作系统才能操纵硬件,如果谁的C语言非常棒,那么他将可以演示如何无视操作系统来控制电脑...(大家记住我说的这句,以后会再提到)
    Windows是一种很先进的操作系统,这关键在于它很有序的安排了各个事件的处理.我们举个例子,当QQ上一个好友发来消息时,电脑会"嘀嘀嘀"的响起来,但是,我们并没有真的去给音响人工发信号,也就是说Windows很好的处理了这个事件.那么问题来了,Windows是怎样完成这个过程的呢?Windows中有样很重要的东西:消息.消息传递了Windows中的几乎所有发生的事件,而且非常详细.比如,每单击鼠标右键一次,就会立即产生一个右键消息.而在QQ的例子中,QQ接到一个好友的信息时,系统将立刻获得一个响声音的消息,然后,这个消息被一步步下传,最终变成一次声音响应.事实上,系统在工作时,在不断的收到和发送消息,否则就叫死机──系统拒绝发送消息或拒绝响应.
    说了这么半天,大家一定晕了,没关系,这说明知识还不够连成体系,我们先把这些知识搁置一下,继续从其它角度开始.
    当电脑出现异常时,无论高手还是菜鸟,通常都会打开一样东西──任务管理器,而这任务管理器中,最被关注的就是里面的进程了.OK,立刻解释,什么叫进程?进程是Windows中正在运行的程序的主体和工作领地,这个进程就好比马路上的汽车,每一个程序运行,必然会产生一个进程,也就好比每一个人上路,必然会多一辆车子.进程就是消息的接收者之一,它将调度其内部发生的事.比如Word中每单击鼠标右键一次,系统会首先发现鼠标被按,紧跟着,把这个消息发送给Word,继而Word作出反应,打开/弹出相应菜单.当然,以上的过程我描述的很简略,主要还是因为完整描述需要各位更深的知识.
    一个进程不是独立存在的,要完整叙述进程的话,绝不是仅仅一个名称就可以的.系统为了避免同名进程冲突,特意给每个进程一个唯一标识:PID,英文全写Process ID,很好理解.PID是每个进程都必须有,且绝不会出现相同的,同时,PID也不是固定的,而是按照程序出现的时间逐个顺次的.大家不要小看这个PID,系统中呼叫程序、进程间传递信息都要靠PID来识别,所以想要结束一个进程,通常也是要知道PID的,比如命令行的kill命令.
    有了以上的知识,我们可以插入一点安全知识了.如果有程序运行,则必然产生进程,在早期的病毒和木马中,由于想要运行自身,那么就必然出现自身的进程!同时为了掩人耳目,这些进程还会刻意模仿系统进程和常见进程,你能辨清吗?
    当然,这种低智商的迷惑方法在大多数人能够熟练使用任务管理器之后就不太能奏效了了.那么,能不能把一个进程藏在另一个进程中呢?答案是肯定的.因为进程实质只是给CPU和Windows大傻看而已,真正在进程运行中,是由无数个模块共同工作的,而我们的第三方进程就充当了其中的模块之一(无论这是不是善意或者说必要的).好比一群人在饭馆吃饭,大厨只负责每个人有饭吃,而不会在乎这里的人是不是一家.利用这个特点,无数木马都巧妙的找到了宿主,这一时期,我们随便找个第三方可以查模块的工具,找出藏匿的*.exe就行了(他们往往是恶意的).不过事情到了国内黑客都开始用Delphi(编程语言)编写木马的时候,情况就变了.以往VB和VC(两种编程语言)在编写动态链接库所有的不便都基本肃清了,这就产生了一种很王道的木马──dll木马.在这之前,我稍微说说关于dll的事吧.dll是一种库文件,我们可以看作是程序的数据库(里面是一堆函数...),借助这个库,程序本身体积即不会很大,又能完成多种功能,另外,一个库还是多个程序可以共用的,这变相减少了程序员的负担.(很类似于PHP脚本语言中的include函数)Windows本身就自带了上百个dll,这使得Windows程序员不必每次都从最低层的过程编起,其中就包含VB程序员最恨的API.dll每次参与程序都是以模块的形式,同样,只要编写一个完备的dll,就可以诱导宿主程序做木马的事,因为dll本身就可以是功能齐集的程序(二者在编写上极其相似,只须稍稍变形开头).早期的灰鸽子和现在的大多数国产木马都是这样工作的,只一个dll,插入关键进程就几乎无敌.顺便说说其它的优点,dll在寄宿进程时也有讲究的,比如寄宿logon可以保证不会随便被终止宿主(logon是系统处理帐户的,终止logon系统会直接重启),寄宿iexporer是借助iexporer的出防火墙许可,网上流传的插进程过防火墙一般都是这样.
    不过dll木马也有缺陷,一是没有微软的数字签名,二就是做免杀有困难,这一点我后面会详细的讲.
    dll木马再牛也不过是寄人篱下,聪明的人早晚都会发现,而rookits木马则更加强盛.rookits木马本身是rookits技术和木马的结合,这类木马最为隐蔽.rookits是什么?rookit本指Linux系统的最高权限,而这里就引深为超越Windows的权限.rookits技术本身并不基于Windows,相反,因为它往往比Windows更优先控制硬件,于是Windows反而受控于它!这也正是它隐匿的依靠,Windows下的软件都依靠于Windows组件,还记得我开始说的操作系统的事吗?rookits就不依赖于系统而擅自控制硬件篡改软件工作结果甚至方式,这样,普通的杀毒方法根本找不到.幸好,利用这项技术的木马后门并不多,而且,借助DOS下的杀毒模式,这些rookits也能够清除.
    分享到:

    历史上的今天:


    评论

  • 上面那个Woodu不是我回的。
    我只留woodu.poketb.cn
  • OOOOOOOOOOOOOOOOOPS