本文目录一览:
- 1、黑客应该具备哪些知识
- 2、黑客入侵的手法包括哪几种.????..````
- 3、什么是黑客啊
- 4、那些高级程序员懂得也很多,他们和黑客到底有什么区别?
- 5、大家都知道高级程序员很吃香,那么高级程序员和黑客到底谁更厉害?
黑客应该具备哪些知识
想成为黑客最起码要懂的16个基本问题
问:什么是网络安全?
答:网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭到破坏、更改、泄露,系统可以连续可靠正常地运行,网络服务不被中断。
问:什么是计算机病毒?
答:计算机病毒(Computer Virus)是指编制者在计算机程序中插入的破坏计算机功能或者破坏数据,影响计算机使用并且能够自我复制的一组计算机指令或者程序代码。
问:什么是木马?
答:木马是一种带有恶意性质的远程控制软件。木马一般分为客户端(client)和服务器端(server)。客户端就是本地使用的各种命令的控制台,服务器端则是要给别人运行,只有运行过服务器端的计算机才能够完全受控。木马不会像病毒那样去感染文件。
问:什么是防火墙?它是如何确保网络安全的?
答:使用防火墙(Firewall)是一种确保网络安全的方法。防火墙是指设置在不同网络(如可信任的企业内部网和不可信的公共网)或网络安全域之间的一系列部件的组合。它是不同网络或网络安全域之间信息的惟一出入口,能根据企业的安全政策控制(允许、拒绝、监测)出入网络的信息流,且本身具有较强的抗攻击能力。它是提供信息安全服务,实现网络和信息安全的基础设施。
问:什么是后门?为什么会存在后门?
答:后门(Back Door)是指一种绕过安全性控制而获取对程序或系统访问权的方法。在软件的开发阶段,程序员常会在软件内创建后门以便可以修改程序中的缺陷。如果后门被其他人知道,或是在发布软件之前没有删除,那么它就成了安全隐患。
问:什么叫入侵检测??
答:入侵检测是防火墙的合理补充,帮助系统对付网络攻击,扩展系统管理员的安全管理能力(包括安全审计、监视、进攻识别和响应),提高信息安全基础结构的完整性。它从计算机网络系统中的若干关键点收集信息,并分析这些信息,检查网络中是否有违反安全策略的行为和遭到袭击的迹象
问:什么叫数据包监测?它有什么作用?
答:数据包监测可以被认为是一根窃听电话线在计算机网络中的等价物。当某人在“监听”网络时,他们实际上是在阅读和解释网络上传送的数据包。如果你需要在互联网上通过计算机发送一封电子邮件或请求下载一个网页,这些操作都会使数据通过你和数据目的地之间的许多计算机。这些传输信息时经过的计算机都能够看到你发送的数据,而数据包监测工具就允许某人截获数据并且查看它。
问:什么是NIDS?
答:NIDS是Network Intrusion Detection System的缩写,即网络入侵检测系统,主要用于检测Hacker或Cracker通过网络进行的入侵行为。NIDS的运行方式有两种,一种是在目标主机上运行以监测其本身的通信信息,另一种是在一台单独的机器上运行以监测所有网络设备的通信信息,比如Hub、路由器。
问:什么叫SYN包?
答:TCP连接的第一个包,非常小的一种数据包。SYN攻击包括大量此类的包,由于这些包看上去来自实际不存在的站点,因此无法有效进行处理。
问:加密技术是指什么?
答:加密技术是最常用的安全保密手段,利用技术手段把重要的数据变为乱码(加密)传送,到达目的地后再用相同或不同的手段还原(解密)。
加密技术包括两个元素:算法和密钥。算法是将普通的信息或者可以理解的信息与一串数字(密钥)结合,产生不可理解的密文的步骤,密钥是用来对数据进行编码和解密的一种算法。在安全保密中,可通过适当的钥加密技术和管理机制来保证网络的信息通信安全。
问:什么叫蠕虫病毒?
答:蠕虫病毒(Worm)源自第一种在网络上传播的病毒。1988年,22岁的康奈尔大学研究生罗伯特·莫里斯(Robert Morris)通过网络发送了一种专为攻击UNIX系统缺陷、名为“蠕虫”(Worm)的病毒。蠕虫造成了6000个系统瘫痪,估计损失为200万到6000万美元。由于这只蠕虫的诞生,在网上还专门成立了计算机应急小组(CERT)。现在蠕虫病毒家族已经壮大到成千上万种,并且这千万种蠕虫病毒大都出自黑客之手。
问:什么是操作系统型病毒?它有什么危害?
答:这种病毒会用它自己的程序加入操作系统或者取代部分操作系统进行工作,具有很强的破坏力,会导致整个系统瘫痪。而且由于感染了操作系统,这种病毒在运行时,会用自己的程序片断取代操作系统的合法程序模块。根据病毒自身的特点和被替代的操作系统中合法程序模块在操作系统中运行的地位与作用,以及病毒取代操作系统的取代方式等,对操作系统进行破坏。同时,这种病毒对系统中文件的感染性也很强。
问:莫里斯蠕虫是指什么?它有什么特点?
答:它的编写者是美国康乃尔大学一年级研究生罗特·莫里斯。这个程序只有99行,利用了Unix系统中的缺点,用Finger命令查联机用户名单,然后破译用户口令,用Mail系统复制、传播本身的源程序,再编译生成代码。
最初的网络蠕虫设计目的是当网络空闲时,程序就在计算机间“游荡”而不带来任何损害。当有机器负荷过重时,该程序可以从空闲计算机“借取资源”而达到网络的负载平衡。而莫里斯蠕虫不是“借取资源”,而是“耗尽所有资源”。
问:什么是DDoS?它会导致什么后果?
答:DDoS也就是分布式拒绝服务攻击。它使用与普通的拒绝服务攻击同样的方法,但是发起攻击的源是多个。通常攻击者使用下载的工具渗透无保护的主机,当获得该主机的适当的访问权限后,攻击者在主机中安装软件的服务或进程(以下简称代理)。这些代理保持睡眠状态,直到从它们的主控端得到指令,对指定的目标发起拒绝服务攻击。随着危害力极强的黑客工具的广泛传播使用,分布式拒绝服务攻击可以同时对一个目标发起几千个攻击。单个的拒绝服务攻击的威力也许对带宽较宽的站点没有影响,而分布于全球的几千个攻击将会产生致命的后果。
问:局域网内部的ARP攻击是指什么?
答:ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的进行。
基于ARP协议的这一工作特性,黑客向对方计算机不断发送有欺诈性质的ARP数据包,数据包内包含有与当前设备重复的Mac地址,使对方在回应报文时,由于简单的地址重复错误而导致不能进行正常的网络通信。一般情况下,受到ARP攻击的计算机会出现两种现象:
1.不断弹出“本机的XXX段硬件地址与网络中的XXX段地址冲突”的对话框。
2.计算机不能正常上网,出现网络中断的症状。
因为这种攻击是利用ARP请求报文进行“欺骗”的,所以防火墙会误以为是正常的请求数据包,不予拦截。因此普通的防火墙很难抵挡这种攻击。
问:什么叫欺骗攻击?它有哪些攻击方式?
答:网络欺骗的技术主要有:HONEYPOT和分布式HONEYPOT、欺骗空间技术等。主要方式有:IP欺骗、ARP欺骗、DNS欺骗、Web欺骗、电子邮件欺骗、源路由欺骗(通过指定路由,以假冒身份与其他主机进行合法通信或发送假报文,使受攻击主机出现错误动作)、地址欺骗(包括伪造源地址和伪造中间站点)等。
参考资料:黑客基地
黑客入侵的手法包括哪几种.????..````
黑客入侵的手法包括1)瞒天过海 (2)趁火打劫 (3)无中生有 (4)暗渡陈仓 (5)舌里藏刀 (6)顺手牵羊 (7)供尸还魂 (8)调虎离山 (9)抛砖引玉 (10)湿水摸鱼 (11)远交近攻 (12)偷梁换柱 (13)反客为主。黑客常有连环计,防不胜防,不可不小心。
1、瞒天过海,数据驱动攻击
当有些表面看来无害的特殊程序在被发送或复制到网络主机上并被执行发起攻击时,就会发生数据驱动攻击。例如:一种数据驱动的攻击可以造成一台主机修改与网络安全有关的文件,从而使黑客下一次更容易入侵该系统。
2、趁火打劫,系统文件非法利用
UNIX系统可执行文件的目录,如/bin/who可由所有的用户进行读访问。有些用户可以从可执行文件中得到其版本号,从而结合已公布的资料知道系统会具有什么样的漏洞。如通过Telnet指令操行就可以知道Sendmail的版本号。禁止对可执文件的访问虽不能防止黑客对它们的攻击,但至少可以使这种攻击变得更困难。还有一些弱点是由配置文件、访问控制文件和缺省初始化文件产生的。最出名一个例子是:用来安装SunOS Version 4的软件,它创建了一个/rhosts文件,这个文件允许局域网(因特网)上的任何人,从任何地方取得对该主机的超级用户特权。当然,最初这个文件的设置是为了从网上方便地进行安装,而不需超级用户的允许和检查。智者千虑,必有一失,操作系统设计的漏洞为黑客开户了后门,针对WIN95/WIN NT一系列具体攻击就是很好的实例。
3、无中生有,伪造信息攻击
通过发送伪造的路由信息,构造系统源主机和目标主机的虚假路径,从而使流向目标主机的数据包均经过攻击者的系统主机。这样就给人提供敏感的信息和有用的密码。
4、暗渡陈仓,针对信息协议弱点攻击
IP地址的源路径选项允许IP数据包自己选择一条通往系统目的主机的路径。设想攻击者试图与防火墙后面的一个不可到达主机A连接。他只需要在送出的请求报文中设置IP源路径选项,使报文有一个目的地址指向防火墙,而最终地址是主机A。当报文到达防火墙时被允许通过,因为它指向防火墙而不是主机A。防火墙的IP层处理该报文的源路径被改变,并发送到内部网上,报文就这样到达了不可到达的主机A。
5、笑里藏刀,远端操纵
缺省的登录界面(shell scripts)、配置和客户文件是另个问题区域,它们提供了一个简单的方法来配置一个程序的执行环境。这有时会引起远端操纵攻击:在被攻击主机上启动一个可执行程序,该程序显示一个伪造的登录界面。当用户在这个伪装的界面上输入登录信息(用户名、密码等)后,该程序将用户输入的信息传送到攻击者主机,然后关闭界面给出“系统故障”的提示信息,要求用户重新登录。此后才会出现真正的登录界面。在我们能够得到新一代更加完善的操作系统版本之前,类似的攻击仍会发生。防火墙的一个重要作用就是防止非法用户登录到受保护网的主机上。例如可以在进行报文过滤时,禁止外部主机Telnet登录到内部主机上。
6、顺手牵羊,利用系统管理员失误攻击
网络安全的重要因素之一就是人! 无数历史事实表明:保垒最容易从内攻破。因而人为的失误,如WWW服务器系统的配置差错,普通用户使用户使用权限扩大,这样就给黑客造成了可趁之机。黑客常利用系统管理员的失误,收集攻击信息。如用finger、netstat、arp、mail、grep等命令和一些黑客工具软件。
7、借尸还魂,重新发送(REPLAY)攻击
收集特定的IP数据包;篡改其数据,然后再一一重新发送,欺骗接收的主机。
8、调虎离山,声东击西
对ICMP报文的攻击,尽管比较困难,黑客们有时也使用ICMP报文进行攻击。重定向消息可以改变路由列表,路由器可以根据这些消息建议主机走另一条更好的路径。攻击者可以有效地利用重定向消息把连接转向一个不可靠的主机或路径,或使所有报文通过一个不可靠主机来转发。对付这种威肋的方法是对所有ICMP重定向报文进行过滤,有的路由软件可对此进行配置。单纯地抛弃所有重定向报文是不可取的:主机和路由器常常会用到它们,如一个路器发生故障时。
9、抛砖引玉,针对源路径选项的弱点攻击
强制报文通过一个特定的路径到达目的主机。这样的报文可以用来攻陷防火墙和欺骗主机。一个外部攻击者可以传送一个具有内部主机地址的源路径报文。服务器会相信这个报文并对攻击者发回答报文,因为这是IP的源路径选项要求。对付这种攻击最好的办法是配置好路由器,使它抛弃那些由外部网进来的却声称是内部主机的报文。
10、混水摸鱼,以太网广播攻击
将以太网接口置为乱模式(promiscuous),截获局部范围的所有数据包,为我所用。
11、远交近攻,跳跃式攻击
现在许多因特网上的站点使用UNIX操作系统。黑客们会设法先登录到一台UNIX的主机上,通过该操作系统的漏洞来取得系统特权,然后再以此为据点访问其余主机,这被称为跳跃(Island-hopping)。
黑客们在达到目的主机之前往往会这样跳几次。例如一个在美国黑客在进入美联邦调查局的网络之前,可能会先登录到亚洲的一台主机上,再从那里登录到加拿大的一台主机,然后再跳到欧洲,最后从法国的一台主机向联邦调查局发起攻击。这样被攻击网络即使发现了黑客是从何处向自己发起了攻击,管理人员也很难顺藤摸瓜找回去,更何况黑客在取得某台主机的系统特权后,可以在退出时删掉系统日志,把“藤”割断。你只要能够登录到UNIX系统上,就能相对容易成为超级用户,这使得它同时成为黑客和安全专家们的关注点。
12、偷梁换柱,窃取TCP协议连接
网络互连协议也存在许多易受攻击的地方。而且互连协议的最初产生本来就是为了更方便信息的交流,因此设计者对安全方面很少甚至不去考虑。针对安全协议的分析成为攻击的最历害一招。
在几乎所有由UNIX实现的协议族中,存在着一个久为人知的漏洞,这个漏沿使得窃取TCP连接成为可能。当TCP连接正在建立时,服务器用一个含有初始序列号的答报文来确认用户请求。这个序列号无特殊要求,只要是唯一的就可以了。客户端收到回答后,再对其确认一次,连接便建立了。TCP协议规范要求每秒更换序列号25万次。但大多数的UNIX系统实际更换频率远小于此数量,而且下一次更换的数字往往是可以预知的。而黑客正是有这种可预知服务器初始序列号的能力使得攻击可以完成。唯一可以防治这种攻击的方法是使初始序列号的产生更具有随机性。最安全的解决方法是用加密算法产生初始序列号。额外的CPU运算负载对现在的硬件速度来说是可以忽略的。
13、反客为主,夺取系统控制权
在UNIX系统下,太多的文件是只能由超级用户拥有,而很少是可以由某一类用户所有,这使得管理员必须在root下进行各种操作,这种做法并不是很安全的。黑客攻击首要对象就是root,最常受到攻击的目标是超级用户Password。严格来说,UNIX下的用户密码是没有加密的,它只是作为DES算法加密一个常用字符串的密钥。现在出现了许多用来解密的软件工具,它们利用CPU的高速度究尽式搜索密码。攻击一旦成功,黑客就会成为UNIX系统中的皇帝。因此,将系统中的权利进行三权分立,如果设定邮件系统管理员管理,那么邮件系统邮件管理员可以在不具有超级用户特权的情况下很好地管理邮件系统,这会使系统安全很多。
此外,攻击者攻破系统后,常使用金蝉脱壳之计删除系统运行日志,使自己不被系统管理员发现,便以后东山再起。故有用兵之道,以计为首之说,作为网络攻击者会竭尽一切可能的方法,使用各种计谋来攻击目标系统。这就是所谓的三十六计中的连环计。
什么是黑客啊
---什么是黑客?
Jargon File中对“黑客”一词给出了很多个定义,大部分定义都涉及高超的编程技术,强烈的解决问题和克服限制的欲望。如果你想知道如何成为一名黑客,那么好,只有两方面是重要的。(态度和技术)
长久以来,存在一个专家级程序员和网络高手的共享文化社群,其历史可以追溯到几十年前第一台分时共享的小型机和最早的ARPAnet实验时期。 这个文化的参与者们创造了“黑客”这个词。 黑客们建起了Internet。黑客们使Unix操作系统成为今天这个样子。黑客们搭起了Usenet。黑客们让WWW正常运转。如果你是这个文化的一部分,如果你已经为它作了些贡献,而且圈内的其他人也知道你是谁并称你为一个黑客,那么你就是一名黑客。
黑客精神并不仅仅局限于软件黑客文化圈中。有些人同样以黑客态度对待其它事情如电子和音乐---事实上,你可以在任何较高级别的科学和艺术中发现它。软件黑客们识别出这些在其他领域同类并把他们也称作黑客---有人宣称黑客实际上是独立于他们工作领域的。 但在本文中,我们将注意力集中在软件黑客的技术和态度,以及发明了“黑客”一词的哪个共享文化传统之上。
另外还有一群人,他们大声嚷嚷着自己是黑客,实际上他们却不是。他们是一些蓄意破坏计算机和电话系统的人(多数是青春期的少年)。真正的黑客把这些人叫做“骇客”(cracker),并不屑与之为伍。多数真正的黑客认为骇客们是些不负责任的懒家伙,还没什么大本事。专门以破坏别人安全为目的的行为并不能使你成为一名黑客, 正如拿根铁丝能打开汽车并不能使你成为一个汽车工程师。不幸的是,很多记者和作家往往错把“骇客”当成黑客;这种做法激怒真正的黑客。
根本的区别是:黑客们建设,而骇客们破坏。
如果你想成为一名黑客,继续读下去。如果你想做一个骇客,去读 alt.2600 新闻组,并在发现你并不像自己想象的那么聪明的时候去坐5到10次监狱。 关于骇客,我只想说这么多。
---黑客的态度
黑客们解决问题,建设事物,信仰自由和双向的帮助,人人为我, 我为人人。
要想被认为是一名黑客,你的行为必须显示出你已经具备了这种态度。要想做的好象你具备这种态度,你就不得不真的具备这种态度。但是如果你想靠培养黑客态度在黑客文化中得到承认,那就大错特错了。因为成为具备这些特质的这种人对你自己非常重要,有助于你学习,并给你提供源源不断的活力。同所有有创造性的艺术一样,成为大师的最有效方法就是模仿大师的精神---不是仅从理智上,更要从感情上进行模仿。
So,如果你想做一名黑客,请重复以下事情直到你相信它们:
1 这世界充满待解决的迷人问题
做一名黑客有很多乐趣,但却是些要费很多气力方能得到的乐趣。 这些努力需要动力。成功的运动员从健壮体魄,挑战自我极限中汲取动力。同样,做黑客,你必须
要有从解决问题,磨练技术,锻炼智力中得到基本的热望。如果你还不是这类人又想做黑客,你就要设法成为这样的人。否则你会发现,你的黑客热情会被其他诱惑无情地吞噬掉---如金钱、性和社会上的虚名。
(同样你必须对你自己的学习能力建立信心---相信尽管你对某问题所知不多,但如果你一点一点地学习、试探,你最终会掌握并解决它。)
2. 一个问题不应该被解决两次
聪明的脑瓜是宝贵的,有限的资源。当这个世界还充满其他有待解决的有趣问题之时,他们不应该被浪费在重新发明轮子这些事情上。 作为一名黑客,你必须相信其他黑客的思考时间是宝贵的---因此共享信息,解决问题并发布结果给其他黑客几乎是一种道义,这样其他人就可以去解决新问题而不是重复地对付旧问题。
(你不必认为你一定要把你的发明创造公布出去,但这样做的黑客是赢得大家尊敬最多的人。卖些钱来给自己养家糊口,买房买车买计算机甚至发大财和黑客价值也是相容的,只要你别忘记你还是个黑客。)
3. 无聊和乏味的工作是罪恶
黑客们应该从来不会被愚蠢的重复性劳动所困扰,因为当这种事情发生时就意味着他们没有在做只有他们才能做的事情---解决新问题。这样的浪费伤害每一个人。因此,无聊和乏味的工作不仅仅是令人不舒服而已,它们是极大的犯罪。 要想做的象个黑客,你必须完全相信这点并尽可能多地将乏味的工作自动化,不仅为你自己,也为了其他人(尤其是其他黑客们)。
(对此有一个明显的例外。黑客们有时也做一些重复性的枯燥工作以进行“脑力休息”,或是为练熟了某个技巧,或是获得一些除此无法获得的经验。但这是他自己的选择---有脑子的人不应该被迫做无聊的活儿。)
4 自由就是好
黑客们是天生的反权威主义者。任何能向你发命令的人会迫使你停止解决令你着迷的问题,同时,按照权威的一般思路,他通常会给出一些极其愚昧的理由。因此,不论何时何地,任何权威,只要他压迫你或其他黑客,就要和他斗到底。
(这并非说任何权力都不必要。儿童需要监护,罪犯也要被看管起来。 如果服从命令得到某种东西比起用其他方式得到它更节约时间,黑客会同意接受某种形式的权威。但这是一个有限的、特意的交易;权力想要的那种个人服从不是你的给予,而是无条件的服从。)
权力喜爱审查和保密。他们不信任自愿的合作和信息共享---他们只喜欢由他们控制的合作。因此,要想做的象个黑客,你得对审查、保密,以及使用武力或欺骗去压迫人们的做法有一种本能的反感和敌意。
5. 态度不能替代能力
要做一名黑客,你必须培养起这些态度。但只具备这些态度并不能使你成为一名黑客,就象这并不能使你成为一个运动健将和摇滚明星一样。成为一名黑客需要花费智力,实践,奉献和辛苦。
因此,你必须学会不相信态度,并尊重各种各样的能力。黑客们不会为那些故意装模做样的人浪费时间,但他们却非常尊重能力---尤其是做黑客的能力,不过任何能力总归是好的。具备很少人才能掌握的技术方面的能力尤其为好,而具备那些涉及脑力、技巧和聚精会神的能力为最好。
如果你尊敬能力,你会享受提高自己能力的乐趣---辛苦的工作和奉献会变成一种高度娱乐而非贱役。 要想成为一名黑客,这一点非常重要。
---基本黑客技术
黑客态度是重要的,但技术更加重要。态度无法替代技术,在你被别的黑客称为黑客之前,有一套基本的技术你必须掌握。 这套基本技术随着新技术的出现和老技术的过时也随时间在缓慢改变。例如,过去包括使用机器码编程,而知道最近才包括了HTML语言。但现在明显包括以下技术:
1 学习如何编程
这当然是最基本的黑客技术。如果你还不会任何计算机语言,我建议你从Python开始。它设计清晰,文档齐全,对初学者很合适。尽管是一门很好的初级语言,它不仅仅只是个玩具。它非常强大,灵活,也适合做大型项目。
但是记住,如果你只会一门语言,你将不会达到黑客所要求的技术水平,甚至也不能达到一个普通程序员的水平---你需要学会如何以一个通用的方法思考编程问题,独立于任何语言。要做一名真正的黑客,你需要学会如何在几天内通过一些手册,结合你现在所知,迅速掌握一门新语言。这意味着你应该学会几种不同的语言。
如果要做一些重要的编程,你将不得不学习C语言,Unix的核心语言。其他对黑客而言比较重要的语言包括Perl和LISP。 Perl很实用,值得一学;它被广泛用于活动网页和系统管理,因此即便你从不用Perl写程序,至少也应该能读懂它。 LISP 值得学习是因为当你最终掌握了它你会得到丰富的经验;这些经验使你在以后的日子里成为一个更好的程序员,即使你实际上可能很少使用LISP本身。
当然,实际上你最好四种都会。 (Python, C, Perl, and LISP). 除了是最重要的四种基本语言,它们还代表了四种非常不同的编程方法,每种都会让你受益非浅。
这里我无法完整地教会你如何编程---这是个复杂的活儿。但我可以告诉你,书本和课程也不能作到。几乎所有最好的黑客都是自学成材的。真正能起作用的就是去亲自读代码和写代码。
学习如何编程就象学习用自然语言写作一样。最好的做法是读一些大师的名著,试着自己写点东西,再读些,再写点,又读些,又写点....如此往复,直到你达到自己在范文中看到的简洁和力量。
过去找到好的代码去读是困难的,因为很少有大型程序的可用源代码能让新手练手。这种状况已经得到了很大的改善;现在有很多可用的开放源码软件,编程工具和操作系统(全都有黑客写成)。这使我们自然地来到第二个话题...
2 得到一个开放源码的Unix并学会使用、运行它
我假设你已经拥有了一台个人计算机或者有一个可用的( 今天的孩子们真幸福 :-) )。新手们最基本的一步就是得到一份Linux或BSD-Unix,安装在个人计算机上,并运行它。
当然,这世界上除了Unix还有其他操作系统。但它们都是以二进制形式发送的---你无法读到它的源码,更不可能修改它。尝试在DOS或Windows的机器上学习黑客技术,就象是在腿上绑了铁块去学跳舞。
除此之外,Unix还是Internet的操作系统。你可以不知道Unix而学会用Internet,但不懂它你就无法成为一名Internet黑客。因为这个原因,今天的黑客文化在很大程度上是以Unix为中心的。(这点并不总是真的,一些很早的黑客对此很不高兴,但Unix和Internet之间的共生关系已是如此之强,甚至连微软也无可奈何)
So,装一个Unix---我个人喜欢Linux,不过也有其他选择。(你也可以在同一台机器上同时运行DOS,Windows和Linux)学会它。运行它。用它跟Internet对话。读它的代码。试着去修改他。你会得到比微软操作系统上好的多的编程工具(包括C,Lisp, Python, and Perl),你会得到乐趣,并将学到比你想象的更多知识。
关于学习Unix的更多信息,请看 The Loginataka.
要得到Linux,请看: 哪里能得到 Linux.
3 学会如何使用WWW和写HTML
大多黑客文化建造的东西都在你看不见的地方发挥着作用,帮助工厂、办公室和大学正常运转,表面上很难看到它对他人的生活的影响。Web是一个大大的例外。即便政客也同意,这个巨大而耀眼的黑客玩具正在改变整个世界。单是这个原因(还有许多其它的), 你就需要学习如何掌握Web。
这并不是仅仅意味着如何使用浏览器(谁都会),而是要学会如何写HTML,Web的标记语言。如果你不会编程,写HTML会教你一些有助于学习的思考习惯。因此,先建起自己的主页。
但仅仅建一个主页也不能使你成为一名黑客。 Web里充满了各种网页。多数是无意义的,零信息量垃圾。
要想有价值,你的网页必须有内容---必须有趣或对其它黑客有用。这样,我们来到下一个话题....
---黑客文化中的地位
象大部分不涉及金钱的文化一样,黑客王国的运转靠声誉维护。你设法解决有趣的问题,但它们到底多有趣,你的解法有多好,是要有那些和你具有同样技术水平的人或比你更牛的人去评判的。
相应地,当你在玩黑客游戏时,你知道,你的分数要靠其他黑客对你的技术的评估给出。(这就是为什么只有在其它黑客称你为黑客是,你才算得上是一名黑客)这个事实常会被黑客是一项孤独的工作这一印象所减弱;它也会被另一个黑客文化的禁忌所减弱(此禁忌的效力正在减弱但仍很强大):拒绝承认自我或外部评估是一个人的动力。
特别地,黑客王国被人类学家们称为一种精英文化。在这里你不是凭借你对别人的统治来建立地位和名望,也不是靠美貌,或拥有其他人想要的东西,而是靠你的奉献。尤其是奉献你的时间,你的才智和你的技术成果。
要获得其他黑客的尊敬,你可以做以下五种事情:
1. 写开放源码的软件
第一个(也是最基本和传统的)是写些被其他黑客认为有趣或有用的程序,并把程序的原代码公布给大家共享。
(过去我们称之为“自由软件-free software”,但这却使很多不知free的精确含义的人感到不解。现在我们很多人使用“开放源码-open source”这个词)
黑客王国里最受尊敬的大牛们是那些写了大型的、具有广泛用途的软件,并把它们公布出去,使每人都在使用他的软件的人。
2. 帮助测试并修改开放源码的软件
黑客们也尊敬也那些使用、测试开放源码软件的人。在这个并非完美的世界上,我们不可避免地要花大量软件开发的时间在测试和抓臭虫阶段。 这就是为什么任何开放源码的作者稍加思考后都会告诉你好的beta测试员象红宝石一样珍贵。 (他知道如何清楚描述出错症状,很好地定位错误,能忍受快速发布的软件中的bug,愿意使用一些简单的诊断工具) 甚至他们中的一个能判断出哪个测试阶段是延长的、令人精疲力尽的噩梦,哪个只是一个有益健康的玩意儿。
如果你是个新手,试着找一个赶兴趣的正在开发的程序,作一个好的beta测试员。从帮着测试,到帮着抓臭虫,到最后帮着改程序,你会不断进步。以后你写程序时,会有别人来帮你,你就得到了你当初善举的回报。
3. 公布有用的信息
另一个好事是收集整理网页上有用有趣的信息或文档如FAQ。许多主要FAQ的维护者和其他开放源码的作者一样受到大家的尊敬。
4. 帮助维护基础设施的运转
黑客文化是靠自愿者运转的。要使Internet能正常工作,就要有大量枯燥的工作不得不去完成----管理mail list,newsgroup,维护大量文档,开发RFC和其它技术标准等等。做这类事情的人会得到很多人的尊敬,因为每人都知道这些事情是耗时耗力的苦役,不象编码那样好玩。做这些事情需要毅力。
5. 为黑客文化本身服务
最后,你可以为这个文化本身服务(例如象我这样,写一个“如何成为黑客”的初级教程 :-) )(hehe,象我这样把它翻成中文 :-) ) 这并非一定要在你已经在这里呆了很久,精通所有以上4点,获得一定声誉后后才能去做。
黑客文化没有领袖。精确地说,它确实有些文化英雄和部落长者和历史学家和发言人。若你在这圈内呆的够长,你或许成为其中之一。
记住:黑客们不相信他们的部落长者的自夸的炫耀,因此很明显地去追求这种名誉是危险的。你必须具备基本的谦虚和优雅。
---黑客和怪人(Nerd)的联系
同流行的传说相反,做一名黑客并不一定要你是个怪人。然而,很多黑客都是怪人。做一个出世者有助于你集中精力进行更重要的事情,如思考和编程。
因此,很多黑客都愿意接受“怪人”这个标签,更有甚者愿意使用“傻子(geek)”一词并自以为豪---这是宣布他们与主流社会不合作的声明。
如果你能集中足够的精力来做好黑客同时还能有正常的生活,这很好。今天作到这一点比我在1970年代是个新手是要容易的多。今天主流文化对技术怪人要友善的多。甚至有更多的人意识到黑客通常更富爱心,是块很好的做恋人和配偶的材料。 更多信息见 Girl's Guide to Geek Guys.
如果你因为生活上不如意而为做黑客而吸引,那也没什么---至少你不会分神了。或许以后你会找到自己的另一半。
---风格的意义
重申一下,做一名黑客,你必须进入黑客精神之中。当你不在计算机边上时,你仍然有很多事情可做。它们并不能替代真正的编程(没有什么能替代编程),但很多黑客都那么做,并感到它们与黑客精神存在一种本质的关联。
阅读科幻小说。参加科幻小说讨论会。(一个很好的寻找黑客的场合)
研究禅宗,或练功习武。
练就一双精确的耳朵,学会鉴赏特别的音乐。学会玩某种乐器,或唱歌。
提高对双关语的鉴赏。
学会流畅地用母语写作。(令人惊讶的时,我所知道的所有最棒的黑客,都是很不错的作家)
这些事情,你做的越多,你就越适合做黑客。至于为什么偏偏是这些事情,原因并不很清楚,但它们都涉及到了左-右脑的综合技巧,这似乎是关键所在。(黑客们既需要清晰的逻辑思维,有时也需要强烈的跳出逻辑之外的直觉)
最后,还有一些不要去做的事情。
不要使用愚蠢的,过于哗众取宠的ID
不要自称为网络崩客(punk) ,也不要对那些人浪费时间
不要寄出充满拼写和语法错误的email,或张贴错误百出的文章
做以上的事情,会使大大损害你的声誉。黑客们个个记忆超群---你将需要数年的时间让他们忘记你的愚蠢。
---其它资源
Peter Seebach为那些不知如何同黑客打交道的经理们维护了一个非常精彩的黑客FAQ。
The Loginataka 有许多关于如何正确培养一个Unix黑客的态度的材料。
我也曾写过一篇“黑客文化简史”。
我还写过另一篇文章,“大教堂与集市”,解释了许多Linux和开放源码文化的运做原理。我还在它的续集“开拓智域”一文中有更直接的论述。
---FAQ(常问问题解答)
问:你会教我如何做黑客吗?
自从第一次发布此页,我每周都会得到一些请求,要我“教会他如何做黑客”;遗憾的是,我没有足够的时间和精力来做这个;我自己的编程项目已经占用了我110%的时间。
甚至即便我想教你也不可能,黑客基本上是一项需要你自行修炼的的态度和技术。你会发现即使真正的黑客想帮助你,如果你乞求他们填鸭一样教你的话,你不会赢得他们的尊敬。
首先去学习。显示你在尝试,你能靠自己去学习。然后再去向黑客们请教问题。
问:你会帮我“黑”掉一个站点吗?或者教我怎么黑它?
No. 任何在读完FAQ后还问此问题人,都是愚不可及的家伙,即使有时间我也不会理睬。 任何发给我的此类mail都会被忽略或被痛斥。
问:哪里能找到真正的可以与之交流的黑客?
最佳办法是就近参加一个Unix或Linux的用户组,参加他们的会议。
问:我该先学哪种语言?
HTML, 如果你还不会的话.
但它不是一个真正的编程语言。当你准备编程时,我建议你从 Python开始. 会有很多人向你推荐Perl,它比Python还受欢迎,但却难学一些。
C 是非常重要的,但它却是最难学的。不要一开始就尝试学C。
问:开放源码的自由软件不会使程序员饿肚子吗?
这似乎不大可能---到目前,开放源码软件产业创造了而不是消灭了大量工作机会。
如果写一个程序比不写一个程序只是个纯粹经济上的收益的话,无论它是否免费,只要它被完成,程序员都会从中得到回报。而且,无论软件是由多么的free的方法开发的,对更新的软件应用的需求总是会有的。
问:我从何学起?哪里有免费的Unix?
本页的其他地方指向最常用的免费Unix。要做一名黑客,你需要自立自强,以及自我教育的能力。
现在开始吧......
那些高级程序员懂得也很多,他们和黑客到底有什么区别?
1. 黑客是程序员的子集。2. 程序员在解决那些原先已经被解决过的问题。而黑客通常是在尝试解决一些新的问题。3. 程序员是一种职业,而黑客是一种兴趣。4. 程序员的工作有很多限制,而黑客可以尽情发挥。5. 程序员都想把自己说得更好,因为他们要推销自己,而真正的黑客更谦虚,他们知道自己懂得还不够多。
6. 程序员是一种“职责”,需要的是对编程语言的使用,更希望尽快完成工作,而不是探寻为什么要做这项工作。做一个程序员没有什么错,但生活中有 很多比编程更重要的事情。相反,黑客是一种“心态”,对技术有着极大的好奇,希望理解核心的工作原理,喜欢创造。尝试理解如何工作,如何做得更好,如何让事情做得特别。黑客就像艺术家或哲学家,同时有着科学工程的天赋,有很多“为什么”和“为什么不”。
7. 程序员和黑客,就如同画匠和艺术家,DIYer 和工匠,教科书的方式和创新的方式8. 程序员的目标是写出程序,完成需求,而黑客是要让程序为自己而用,满足自身需求。9. 程序员和黑客都在写代码,只是黑客把不可能变为了可能。
黑客和程序员本质上是没区别的,都是通过编程实现自己的目的,敲的代码都一样,各自的代码也都认识。只是研究方向不一样而巳,很多程序即是上班族,也是黑客。程序员除了安全人员,更多是研究现实功能,架构,优化,这些事情上面。黑客更多是研究你有没漏洞,抓到漏洞我就利用。古话说不怕贼偷,就怕贼垫记,所以很多人总是以为黑客比程序员牛逼,其实是误区,只是两者重点研究方向不一样而巳。
大家都知道高级程序员很吃香,那么高级程序员和黑客到底谁更厉害?
非从业人员对于程序员和黑客的外在形象就存在着不一样的认知,因为电视电影和网络上的段子,普通的程序员一般都是有才能却一点不风趣的男性,常年一件格子衬衣,几根稀疏的头发,虽然赚的钱不少,却不会花钱装扮自己;而黑客的形象就完全是另一种,他们很神秘,可能我们身边随便一个人在暗地里都可以是黑客,黑客还喜欢穿黑衣服,带黑色的帽子,不喜欢以真面目示人。
其实黑客和普通程序员只是各有侧重而已,说不上孰高孰低。黑客给人很厉害的感觉主要是他带来的破坏性比较直观,对于普通人来说比较好理解。比如电影里最常见的入侵别人系统搞坏事这类。而『普通程序员』如何通过各种精妙的设计构建出了一个又复杂牛逼的应用,抗住了天大的流量,一般人是没法理解的,比如淘宝这种,还有抗住春晚活动的流量这些。两者都是普通人做不到的。
一般来讲,黑客和普通程序员各有侧重,技能树不一样,比如前端的XSS攻击,黑客知道这个输入框内的内容如果没有被处理,那么可以通过构造特殊的输入内容来达到攻击目的,但是对于这个输入框如何弄得更好看,对用户交互友好这些他一般不关心,可能下一个关注点就在你的表单是不是可以做CSRF攻击上。还有一个例子是,框架/语言爆出了很多漏洞,黑客就会利用这些漏洞发起一些攻击,很大概率黑客对这个框架/语言都不是很熟悉。
相对的,普通程序员也不会关注黑客关注的很多点,比如CAPTCHA这种可能就直接引入个第三方的来防御了,并不会自己去实现一遍。还有加密算法这种,也几乎只有黑客才会去研究。普通程序员可能研究的就是压缩算法。黑客的攻击手段多种多样,有的甚至不会写代码,比如《我是谁–没有绝对安全的系统》里就有一位,根本不写代码,通过翻垃圾桶,开锁偷看资料这类操作搜集很多有用的信息,从而发起攻击。一般称这种为手段『社工攻击』。