黑客从新手到高手(黑客攻防从新手到高手)
如何成为程序员,或者网络攻防高手
要想成为一门黑客,说简单也不简单,说不简单嘛,那也要看个人了
首先要正确理解你心里面认为的黑客是怎么定义?
是挂个马盗个号或远程控制别人机器and网下个程序攻击别人PC?
真正的黑客还是需要一定的天赋的
别说会用几个别人制作的小程序去操纵那些电脑盲的机器就是黑客了
黑客所要掌握的东西实在太多,
不光软件和硬件知识,还要有独特的思考思维,和丰富网络经验
所以,如果你想成就网络攻防这方面,建议从计算机系统和通信基础开始,
书馆书多而杂。会让你找不到方向。这还是需要一定时间和经验的,
有条件的话也可以去一些所谓的黑客培训基地培训下吧
现在网络发展速度很快,关键还是看自己有没有坚持下去的兴趣
黑客新手入门
恩!对想学黑客最好自学!找些朋友一起学更好!我给你点学黑的东西吧!!!!!!!!!!!
如何成为一名黑客
什么是黑客?
Jargon File中对“黑客”一词给出了很多个定义,大部分定义都涉及高超的编程技术,强烈的解决问题和克服限制的欲望。如果你想知道如何成为一名黑客,那么好,只有两方面是重要的。(态度和技术)
长久以来,存在一个专家级程序员和网络高手的共享文化社群,其历史可以追溯到几十年前第一台分时共享的小型机和最早的ARPAnet实验时期。 这个文化的参与者们创造了“黑客”这个词。 黑客们建起了Internet。黑客们使Unix操作系统成为今天这个样子。黑客们搭起了Usenet。黑客们让WWW正常运转。如果你是这个文化的一部分,如果你已经为它作了些贡献,而且圈内的其他人也知道你是谁并称你为一个黑客,那么你就是一名黑客。
黑客精神并不仅仅局限于软件黑客文化圈中。有些人同样以黑客态度对待其它事情如电子和音乐---事实上,你可以在任何较高级别的科学和艺术中发现它。软件黑客们识别出这些在其他领域同类并把他们也称作黑客---有人宣称黑客实际上是独立于他们工作领域的。 但在本文中,我们将注意力集中在软件黑客的技术和态度,以及发明了“黑客”一词的哪个共享文化传统之上。
另外还有一群人,他们大声嚷嚷着自己是黑客,实际上他们却不是。他们是一些蓄意破坏计算机和电话系统的人(多数是青春期的少年)。真正的黑客把这些人叫做“骇客”(cracker),并不屑与之为伍。多数真正的黑客认为骇客们是些不负责任的懒家伙,还没什么大本事。专门以破坏别人安全为目的的行为并不能使你成为一名黑客, 正如拿根铁丝能打开汽车并不能使你成为一个汽车工程师。不幸的是,很多记者和作家往往错把“骇客”当成黑客;这种做法激怒真正的黑客。
根本的区别是:黑客们建设,而骇客们破坏。
如果你想成为一名黑客,继续读下去。如果你想做一个骇客,去读 alt.2600 新闻组,并在发现你并不像自己想象的那么聪明的时候去坐5到10次监狱。 关于骇客,我只想说这么多。
---黑客的态度
黑客们解决问题,建设事物,信仰自由和双向的帮助,人人为我, 我为人人。
要想被认为是一名黑客,你的行为必须显示出你已经具备了这种态度。要想做的好象你具备这种态度,你就不得不真的具备这种态度。但是如果你想靠培养黑客态度在黑客文化中得到承认,那就大错特错了。因为成为具备这些特质的这种人对你自己非常重要,有助于你学习,并给你提供源源不断的活力。同所有有创造性的艺术一样,成为大师的最有效方法就是模仿大师的精神---不是仅从理智上,更要从感情上进行模仿。
So,如果你想做一名黑客,请重复以下事情直到你相信它们:
1 这世界充满待解决的迷人问题
做一名黑客有很多乐趣,但却是些要费很多气力方能得到的乐趣。 这些努力需要动力。成功的运动员从健壮体魄,挑战自我极限中汲取动力。同样,做黑客,你必须
要有从解决问题,磨练技术,锻炼智力中得到基本的热望。如果你还不是这类人又想做黑客,你就要设法成为这样的人。否则你会发现,你的黑客热情会被其他诱惑无情地吞噬掉---如金钱、性和社会上的虚名。
(同样你必须对你自己的学习能力建立信心---相信尽管你对某问题所知不多,但如果你一点一点地学习、试探,你最终会掌握并解决它。)
2. 一个问题不应该被解决两次
聪明的脑瓜是宝贵的,有限的资源。当这个世界还充满其他有待解决的有趣问题之时,他们不应该被浪费在重新发明轮子这些事情上。 作为一名黑客,你必须相信其他黑客的思考时间是宝贵的---因此共享信息,解决问题并发布结果给其他黑客几乎是一种道义,这样其他人就可以去解决新问题而不是重复地对付旧问题。
(你不必认为你一定要把你的发明创造公布出去,但这样做的黑客是赢得大家尊敬最多的人。卖些钱来给自己养家糊口,买房买车买计算机甚至发大财和黑客价值也是相容的,只要你别忘记你还是个黑客。)
3. 无聊和乏味的工作是罪恶
黑客们应该从来不会被愚蠢的重复性劳动所困扰,因为当这种事情发生时就意味着他们没有在做只有他们才能做的事情---解决新问题。这样的浪费伤害每一个人。因此,无聊和乏味的工作不仅仅是令人不舒服而已,它们是极大的犯罪。 要想做的象个黑客,你必须完全相信这点并尽可能多地将乏味的工作自动化,不仅为你自己,也为了其他人(尤其是其他黑客们)。
(对此有一个明显的例外。黑客们有时也做一些重复性的枯燥工作以进行“脑力休息”,或是为练熟了某个技巧,或是获得一些除此无法获得的经验。但这是他自己的选择---有脑子的人不应该被迫做无聊的活儿。)
4 自由就是好
黑客们是天生的反权威主义者。任何能向你发命令的人会迫使你停止解决令你着迷的问题,同时,按照权威的一般思路,他通常会给出一些极其愚昧的理由。因此,不论何时何地,任何权威,只要他压迫你或其他黑客,就要和他斗到底。
(这并非说任何权力都不必要。儿童需要监护,罪犯也要被看管起来。 如果服从命令得到某种东西比起用其他方式得到它更节约时间,黑客会同意接受某种形式的权威。但这是一个有限的、特意的交易;权力想要的那种个人服从不是你的给予,而是无条件的服从。)
权力喜爱审查和保密。他们不信任自愿的合作和信息共享---他们只喜欢由他们控制的合作。因此,要想做的象个黑客,你得对审查、保密,以及使用武力或欺骗去压迫人们的做法有一种本能的反感和敌意。
5. 态度不能替代能力
要做一名黑客,你必须培养起这些态度。但只具备这些态度并不能使你成为一名黑客,就象这并不能使你成为一个运动健将和摇滚明星一样。成为一名黑客需要花费智力,实践,奉献和辛苦。
因此,你必须学会不相信态度,并尊重各种各样的能力。黑客们不会为那些故意装模做样的人浪费时间,但他们却非常尊重能力---尤其是做黑客的能力,不过任何能力总归是好的。具备很少人才能掌握的技术方面的能力尤其为好,而具备那些涉及脑力、技巧和聚精会神的能力为最好。
如果你尊敬能力,你会享受提高自己能力的乐趣---辛苦的工作和奉献会变成一种高度娱乐而非贱役。 要想成为一名黑客,这一点非常重要。
什么叫黑客!这属于一个好黑客还是属于一个坏黑客!
黑客
一名黑客(hacker)是一个喜欢用智力通过创造性方法来挑战脑力极限的人黑客从新手到高手,特别是他们所感兴趣的领域,例如电脑编程或电器工程。
黑客最早源自英文hacker,早期在美国的电脑界是带有褒义的。但在媒体报导中,黑客一词往往指那些“软件骇客”(software cracker)。
黑客一词,原指热心于计算机技术,水平高超的电脑专家,尤其是程序设计人员。
但到黑客从新手到高手了今天,黑客一词已被用于泛指那些专门利用电脑搞破坏或恶作剧的家伙。对这些人的正确英文叫法是Cracker,有人翻译成“骇客”。
黑客和骇客根本的区别是黑客从新手到高手:黑客们建设,而骇客们破坏。
黑客一词一般有以下四种意义:
一个对(某领域内的)编程语言有足够了解,可以不经长时间思考就能创造出有用的软件的人。
一个恶意(一般是非法地)试图破解或破坏某个程序、系统及网络安全的人。这个意义常常对那些符合条件(1)的黑客造成严重困扰,他们建议媒体将这群人称为“骇客”(cracker)。有时这群人也被叫做“黑帽黑客”。
一个试图破解某系统或网络以提醒该系统所有者的系统安全漏洞。这群人往往被称做“白帽黑客”或“匿名客”(sneaker)或红客。许多这样的人是电脑安全公司的雇员,并在完全合法的情况下攻击某系统。
一个通过知识或猜测而对某段程序做出(往往是好的)修改,并改变(或增强)该程序用途的人。
“脚本小孩”则指那些完全没有或仅有一点点骇客技巧,而只是按照指示或运行某种骇客程序来达到破解目的的人
著名黑客
Richard Stallman--传统型大黑客,Stallman在1971年受聘成为美国麻省理工学院人工智能实验室程序员。
Ken Thompson和Dennis Ritchie--贝尔实验室的电脑科学操作组程序员。两人在1969年发明了Unix操作系统。
John Draper(以咔嚓船长,Captain Crunch闻名)--发明了用一个塑料哨子打免费电话
Mark Abene(以Phiber Optik而闻名)--鼓舞了全美无数青少年“学习”美国内部电话系统是如何运作的
Robert Morris--康奈尔大学毕业生,在1988年不小心散布了第一只互联网蠕虫。
Kevin Mitnick--第一位被列入fbi通缉犯名单的骇客。
Kevin Poulsen--Poulsen于1990年成功地控制了所有进入洛杉矶地区KIIS-FM电台的电话线而赢得了该电台主办的有奖听众游戏。
Vladimir Levin--这位数学家领导了俄罗斯骇客组织诈骗花旗银行向其分发1000万美元。
Steve Wozniak--苹果电脑创办人之一。
Tsotumu Shimomura--于1994年攻破了当时最著名黑客Steve Wozniak的银行帐户。
Linus Torvalds--他于1991年开发了著名的Linux内核,当时他是芬兰赫尔辛基大学电脑系学生。
Johan Helsingius--黑尔森尤斯于1996年关闭自己的小商店后开发出了世界上最流行的,被称为“penet.fi"的匿名回函程序,他的麻烦从此开始接踵而至。其中最悲惨的就是sceintology教堂抱怨一个penet.fi用户在网上张贴教堂的秘密后芬兰警方在1995年对他进行了搜查,后来他封存了这个回函程序。
Tsutomu Shimomura--能记起他是因为抓了米特尼克。
Eric Raymond--Eric Raymond就一直活跃在计算机界,从事各种各样的计算机系统开发工作。同时,Eric Raymond更热衷于自由软件的开发与推广,并撰写文章、发表演说,积极推动自由软件运动的发展,为自由软件作出了巨大贡献。他写的《大教堂和市集》等文章,是自由软件界的经典美文,网景公司就是在这篇文章的影响下决定开放他们的源代码,使浏览器成为了自由软件大家族中的重要一员.
一.什么是黑客
在力求当一个黑客前,黑客从新手到高手我们要先了解什么是黑客
Hacker -- 黑客
热衷研究、撰写程序的专才,且必须具备乐于追根究底、穷究问题的特质。
在黑客圈中,hacker一词无疑是带有正面的意义,例如system hacker熟悉操作系统的设计与维护;password hacker精于找出使用者的密码,若是computer hacker则是通晓计算机,可让计算机乖乖听话的高手。
黑客基本上是一项业余嗜好,通常是出于自己的兴趣,而非为了赚钱或工作需要。
根据开放原始码计划创始人Eric Raymond对此字的解释,hacker与cracker是分属两个不同世界的族群,基本差异在于,hacker是有建设性的,而cracker则专门搞破坏。
hacker原意是指用斧头砍材的工人,最早被引进计算机圈则可追溯自1960年代。
加州柏克莱大学计算机教授Brian Harvey在考证此字时曾写到,当时在麻省理工学院中(MIT)的学生通常分成两派,一是tool,意指乖乖牌学生,成绩都拿甲等;另一则是所谓的hacker,也就是常逃课,上课爱睡觉,但晚上却又精力充沛喜欢搞课外活动的学生。
这跟计算机有什么关系?一开始并没有。不过当时hacker也有区分等级,就如同tool用成绩比高下一样。真正一流hacker并非整天不学无术,而是会热衷追求某种特殊嗜好,比如研究电话、铁道(模型或者真的)、科幻小说,无线电,或者是计算机。也因此后来才有所谓的computer hacker出现,意指计算机高手。
对一个黑客来说,学会入侵和破解是必要的,但最主要的还是编程,毕竟,使用工具是体现别人的思路,而程序是自己的想法.一句话--编程实现一切!
对于一个骇客来说,他们只追求入侵的快感,不在乎技术,他们不会编程,不知道入侵的具体细节.
"黑客"在人们脑中的形象就是一个蓬头乱发,戴着高度眼镜,驼着背弓着腰,成天趴在电脑面前的人.其实黑客和正常人一模一样,他们并无什么特殊之处.有些人也许很少上电脑,成天运动,工作,但他们的技术和精神已经达到的黑客的标准,有些人天天爬在电脑前,到处瞎混,但他们仍不是黑客.
人们总是认为黑客就是破坏者,其实从某种意义上来说,黑客也在为计算机技术的发展做出很大的贡献.如果没有高明的黑客,就没有资深的网管;如果没有完美的木马,就没有杰出的杀毒软件;没有了黑客,网络技术就很难发展下去.当然,网管其实也是黑客,如果他不知道别人怎么进攻,自己要怎么防守呢??
黑客一词在圈外或媒体上通常被定义为:专门入侵他人系统进行不法行为的计算机高手。不过这类人士在hacker眼中是属于层次较低的cracker(骇客)。如果黑客是炸弹制造专家,那么CRACKER就是恐怖分子.
现在,网络上出现了越来越多的Cracker,他们只会入侵,使用扫描器到处乱扫,用IP炸弹炸人家,毫无目的地入侵,破坏着,他们并无益于电脑技术的发展,反而有害于网络的安全和造成网络瘫痪,给人们带来巨大的经济和精神损失.
我们不能做Cracker,我们要力求当HACKER!!
二.HACKING的预备网络知识
1.什么是IP
IP就是一个地址,在外网没有一个IP是相同的,它就像身份证号码一样,给每台进入网络的电脑一个身份证号码.但是对于大部分用户来说,这个号码是不固定的,在你重新连接到INTERNET时,IP可能会被重新分配.不过有些机器申请了固定的IP,这样就便于其他电脑找到它,并提供服务.一般的IP的格式为: a.b.c.d (0 = a,b,c,d = 255)(该格式为点分10进制)例如 218.242.161.231 , IP的标准形式是2进制形式,例如212.13.123.52的2进制是110101000000000011010111101100110100 ..... 由192.168开头的是局域网的IP,127.0.0.1是用来检测网络的自己的IP.就是说任何一台电脑来说,不管是否连接到INTERNET上,127.0.0.1对于自己来说都是自己.就是说,每台电脑都是由4位的256进制数或32位的2进制数组成的.
2.什么是网络协议,数据包
网络协议就是一套双方约定好的通信协议.就像对暗号一样,有特定的约定来达成连接.其中的"数据包就是一个一个
(1) 面向连接的TCP协议
TCP是面向连接的.“面向连接”就是在正式通信前必须要与对方建立起连接。比如你给别人打电话,必须等线路接通了、对方拿起话筒才能相互通话。TCP(Transmission Control
Protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂,我们这里只做简单、形象的介绍,你只要做到能够理解这个过程即可。我们来看看这三次对话的简单过程:主机A向主机B发出连接请求数据包:“我想给你发数据,可以吗?”,这是第一次对话;主机B向主机A发送同意连接和要求同步(同步就是两台主机一个在发送,一个在接收,协调工作)的数据包:“可以,你什么时候发?”,这是第二次对话;主机A再发出一个数据包确认主机B的要求同步:“我现在就发,你接着吧!”,这是第三次对话。三次“对话”的目的是使数据包的发送和接收同步,经过三次“对话”之后,主机A才向主机B正式发送数据。TCP协议能为应用程序提供可靠的通信连接,使一台计算机发出的字节流无差错地发往网络上的其他计算机,对可靠性要求高的数据通信系统往往使用TCP协议传输数据。
(2) 面向非连接的UDP协议
“面向非连接”就是在正式通信前不必与对方先建立连接,不管对方状态就直接发送。这与现在风行的手机短信非常相似:你在发短信的时候,只需要输入对方手机号就OK了。UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去!UDP协议是面向非连接的协议,没有建立连接的过程。正因为UDP协议没有连接的过程,所以它的通信效果高;但也正因为如此,它的可靠性不如TCP协议高。QQ就使用UDP发消息,因此有时会出现收不到消息的情况。
附表:tcp协议和udp协议的差别
|---------------------------------|
| 属性\协议 |TCP |UDP |
|------------+---------+----------|
|是否连接 |面向连接 |面向非连接|
|------------+---------+----------|
|传输可靠性 |可靠 |不可靠 |
|------------+---------+----------|
|应用场合 |大量数据 |少量数据 |
|------------+---------+----------|
|速度 |慢 |快 |
|---------------------------------|
(3)什么是端口(PORT)
PORT,意思为港口,但在电脑里叫端口.但是端口不是形象的,而是抽象的.电脑上有很多的端口(65535个),但是它们大部分都不开,每个网络连接都要用一个端口,就象把用一跟线把两个电脑连起来,插座就是端口.有些端口有他们特定的用途,例如网页服务器要开80端口,FTP服务器要开21端口
常用端口
21--ftp 下载
23--telnet 远程登陆,入侵后打开给自己留后门
25-smtp 尽管重要,但似乎没什么可利用的
53--domain 同上
79--finger 可知道用户信息了,但是现在很少了
80--http HTTP服务器
110--pop 收信的
139(445)--netbios 共享,远程登陆,很有价值,但是有经验的人不开
135--RPC 远程溢出的大洞的端口
3389--win2000超级终端
我们在入侵成功后就要为自己运行木马,打开一个端口,为自己以后回来留后门.
(4)什么是服务
服务就是SERVICE,例如要做HTTP服务器的就要安装World Wide Web Publishing服务.服务,是为他人提供服务的程序,这个程序会在开机时自动加载,并打开端口等待对方连接并向对方提供服务.我们可以在入侵对方机器后,启动或安装一些服务(SUCH AS 远程桌面,TELNET...),这些服务都是MICROSOFT的,所以不用担心被杀毒的发现.在开了一些远程管理的服务后,我们就可以很方便地回到被侵入过的主机了.
常见的服务列表:
名称 默认端口 98可装 2000Pro 2000SERVER
FTP 提供下载服务 21 x x o
SSH LINUX远程登陆 22 x x x
TELNET WINDOWS远程命令行管理 23 x o o
Simple Mail 邮件服务器 25 x x o
Finger 可以知道用户信息,现在很少了 79 x x x
WWW HTTP 网页服务器 80 x x o
pop2 一种邮件服务 109 x x o
pop3 同上 110 x x o
RpcDcom 最大的溢出漏洞的所在 135 x o默认 o默认
NetBios 共享,远程登陆,很有利用价值 139 o(无价值) o默认 o默认
REMOTE SERVICE 图形界面的远程登陆,最有价值 3389 x x o(强烈推荐)
(5)常用的工具
HACKER用的工具,大致可分这几种:
[1]扫描器
在攻击一个目标前要先了解对方开了什么端口,在扫肉鸡时要知道那些肉鸡开了端口可以被入侵.扫描器就是帮助你寻找攻击对象或了解攻击对象存在什么漏洞,开了什么端口.常用的扫描器有SUPERSCAN,X-SCAN,IP TOOLS....强烈推荐SUPERSCAN和X-SCAN.如果你在扫开端口的机器时,用SUPERSCAN,因为它快;在扫漏洞时,用X-SCAN,因为它功能全!!
[2]溢出工具
溢出就是把比一个寄存器能存放的东西还多的东西放到一个寄存器里,然后就造成溢出,使系统运行准备好了的SHELL CODE.
溢出的VB例子:
dim a as integer
a=111111111111111
在找到一些有溢出漏洞的机器后,就用溢出工具来对它进行溢出,然后直接拿到SHELL或帐号.
[3]后门程序
后门的服务端,安装在肉鸡上,开机自动等待对方控制.以前的后门都是一个标准的SOCKET在某个端口监听,但是这样很容易被发现,于是便出现了ICMP后门.但是现在的主流还是用TCP的后门.常用的后门有:冰河,TELNET(是WINDOWS的远程管理服务,用OPENTELNET可以远程开启TELNET服务!),DJXYXS.EXE(用来开SERVER的3389服务)
[4]连接工具
其实就是后门客户端.WINDOWS自带了很多,例如3389登陆器的MSTSC.EXE,TELNET客户端TELNET.EXE.......强烈推荐NC,它把许多网络功能汇集到了一起!
[5]破解密码程序
就是用很多的字符串来猜测密码.当猜不到时,就只好死算,A不行换B,B不行换C,C不行换D.......总之很浪费时间,密码长点1年都破不出来,不推荐
[6]进程程序
用来管理进程的,有PSECEC.EXE(远程开别人SHELL的,像TELNET一样,不过对方不需开),PSKILL.EXE(远程,本地杀进程),PSLIST.EXE(远程,本地查看进程).PS系列的3个程序是十分有用的,本人强烈推荐!!它不仅仅能够帮助你管理远程的肉鸡,而且在杀病毒时十分有用,它能杀掉WINDOWS TASK MANAGER杀不掉的进程.
(6)黑前准备
[1]首先,你要有一台能跑的电脑(这不是废话吗),
[2]是要有操作系统(最好是一个WINDOWS 2000 SERVER,一个LINUX,没LINUX也可以,2000PRO也可以,不过2000SERVER可以给自己练习,强烈推荐SERVER)
[3]有网络,最好是宽带,不是的话要有快的肉鸡才行.
[3]安装一个防火墙,推荐天网2.5.1
[4]注册一个QQ,有邮箱,注册一个空间(注册地址,支持FTP,WWW)
[5]别急,把前面的文章再看一便(别K我)
三.学习使用DOS基础命令
使用DOS是黑客最最基本的技能,每个人都要会熟练的使用DOS,使用2000的DOS,不用任何工具就可以完成一次入侵,而且大部分的工具都是在DOS窗口的环境下运行的,所以大家一定要学好!!
(1)如何启动DOS
这里说到的DOS,是XP,2000自带的DOS,98正因为对网络的支持很差,所以我们不能入侵98,也不能用98来入侵.所以用98的朋友请把98换成2000或者XP,NT,2003.
DOS在2000里就是CMD.EXE,98里是COMMAND.EXE(2000里也有COMMAND.EXE,不过这个DOS是不支持中文的).启动方法:开始,运行,CMD (或者COMMAND),确定.然后跳出来以下画面:
C:\documents and Settings\Administratorcmd
Microsoft Windows 2000 [Version 5.00.2195]
(C) 版权所有 1985-2000 Microsoft Corp.
C:\documents and Settings\Administrator
==================================================================================================
1黑客的兴起
黑客最早始于20 世纪50年代,最早的计算机1946年在宾夕法尼亚大学出现,而最早的黑客出现于麻省理式学院,贝尔实验室也有。最初的黑客一般都是一些高级的技术人员,他们热衷于挑战、崇尚自由并主张信息的共享。
1994年以来,因特网在全球的迅猛发展为人们提代了方便、自由和无限的财富,政治、军事、经济、科技、教育、文化等各个方面都越来越网络化,并且逐渐成为人们生活、娱乐的一部分。可以说,信息时代已经到来,信息已成为物质和能量以外维持人类社会的第三资之出源,它是未来生活中的重要介质。随着计算机的普及和因特网技术的迅速发展,黑客也随之出现了。
2黑客的定义与特征
“黑客”一词是由英语Hacker英译出来的,是指专门研究、发现计算机和网络漏洞的计算机爱好者。他们伴随着计算机和网络的发展而产生成长。黑客对计算机有着狂热的兴趣和执着的追求,他们不断地研究计算机和网络知识,发现计算机和网络中存在的漏洞,喜欢挑战高难度的网络系统并从中找到漏洞,然后向管理员提出解决和修补漏洞的方法。
黑客不干涉政治,不受政治利用,他们的出现推动了计算机和网络的发展与完善。黑客所做的不是恶意破坏,他们是一群纵横与网络上的大侠,追求共享、免费,提倡自由、平等。黑客的存在是由于计算机技术的不健全,从某中意义上来讲,计算机的安全需要更多黑客去维护。借用myhk的一句话“黑客存在的意义就是使网络变的日益安全完善”。
但是到了今天,黑客一词已经被用于那些专门利用计算机进行破坏或入侵他人的代言词,对这些人正确的叫法应该是cracker,有人也翻译成“骇客”,也正是由于这些人的出现玷污了“黑客”一词,使人们把黑客和骇客混为一体,黑客被人们认为是在网络上进行破坏的人。
一个黑客即使从意识和技术水平上已经达到黑客水平,也决不会声称自己是一名黑客,因为黑客只有大家推认的,没有自封的,他们重视技术,更重视思想和品质。
3黑客的态度
Hacker 们解决了问题并创造新东西, 他们相信自由并自愿的互相帮助. 想要被别人接受成为一位 hacker, 你必须发自内心的表现出这种态度. 为了要很自发的表现出这种态度, 你就必须先完全认同这些态度.
如果你只是把学习 hacker 态度这件事当作一种能在这个文化赢得认同的途径,那么你已经忽略了真正的重点. 由衷的接受这些态度是很这要的, 这能帮助你学习并维持你的动机. 就像那些具创造性的艺术一样, 成为一位大师的最有效方法是学习大师们的精神; 并不只是学习知识和情绪而已.所以, 如果你想要成为一位 hacker, 请反复的做下面的事情, 直到你完全领会它们:
1. 这世上充满著等著被解决的迷人问题.
作为一个 hacker 是充满快乐的, 但这是一种因为努力得到成果所带来的快乐. 努力的成果则带来动机. 成功的运动家的动机则来自于, 使他们的身体不断进化,并把自己推向物理上的极限所带来的快乐. 类似的情形, 要成为 hacker, 你必须要能从解决问题, 精进技术, 和运用知识的过程中感受到一种悸动.如果你不是天生就能感受到这种悸动的人, 那么, 为了要成为 hacker, 你必须使自己变成这样的人. 否则, 你会发现你的 hacking energy 就会像性, 金钱, 和社交活动一样, 因为分心而被消磨掉.(你也必须为你的学习能力建立一种信念直到你完成你的工作 -- 即使你只处理一小部份, 而你也不知道你到底还要学些什么东西才有辨法解决你的问题, 但是你会努力学习, 准备充足, 以应付下一个问题.)
2. 没有任何人必须一再的解决同一个问题.
富创造力的头脑是贵重而有限的资源. 有这么多迷人的新问题在那等著被解决.因此富创造力的头脑不该被浪费的用来重复发明轮子.身为一位 hacker, 你必须了解到其它 hacker 们的时间也是很宝贵的 -- 所以,分享资讯, 解决问题和提供解决方案给其它 hacker 以解决新的问题, 这些几乎算是道义上的责任.( 即使 hacker 们所拥有的大多是从其它 hacker 的身上得来的, 但这并不意味你必需把你创造的作品全部交出来, 你可以卖出足够数量的产品, 以求得温饱, 给付房租和买电脑设备, 这和 hacker 的价值观并不相违背. 使用你的 hacking 技能以供给一个家庭的生活, 甚至是致富, 只要你仍不忘记你是一位 hacker, 那么这些行为并不会产生矛盾. )
3. 无聊而单调的工作是有害的.
Hacker们(有创造力的人也是一样)永远不该做一些无聊而单调并且愚蠢的反复性工作. 因为, 如果这样的事情发生的话, 这表示他们正在做一些不是他们该做的事-- 解决新的问题. 这样的浪费对任何人而言都是一种伤害. 无聊单调的工作不只是无趣而已, 而且是一种有害的物质.要做为一位 hacker 要能尽可能的自动避免无聊, 对此你必须有相当的认知. 这不只是为了你自己而已, 也是为了所有的人(尤其是其它的 hacker).(这有一些例外. 有时候 hacker 们会去做一些被认为无聊或重复性的工作, 当做脑力的训练, 或是为了要学习得某种技能或某种你所没有的特殊经验. 不过这是一种选择, 任何人都不该被强迫面对无聊事. )
4. 自由才好.
hacker们天性上是反对独裁的. 任何一个给你命令的人就能给你一个独裁式的工作,
并且可以给你一些笨的可以的理由, 停止你解决任何吸引著你的问题. 所以任何独裁式
的行为都会被挑战, 以免会危害到你和其它的 hacker 们.(这和为反对而反对是不同的, 小孩子是需要被指导和阻止他们犯错. hacker 也会同意接受某些权威, 照著指示做以较短的时间得到他想要的. 不过那是一种有限且理性的协定; ..... )专制在监察和保密这些事上是很有效的方法. 这些行使专制的人并不相信自愿性质的合作和资讯分享 -- 他们只相信在他们控制之下的合作关系. 所以, 身为一位 hacker,你必具有一种敌对的天性, 以对抗监察, 秘密和使用外力强迫或迷惑可以信任的人等行为. 你必须以互信做为你行为的基础.
5. 态度并非不等效于能力
要成为一位 hacker, 你必须开始培养这些态度. 但, 如果你只是单独的模仿某一种态度, 这并不能使你成为一位真正的 hacker, 也不会使你成为一位运动冠军或摇滚明星.因此, 你必须学会猜疑态度和尊敬各种能力. Hacker 们不会想浪费时间在虚华的人的身上, 他们尊敬的是能力 -- 特别是身为 hacker 的能力, 但对于其它方面的能力也是充满敬意. 如果有能力追求一些很少人能弄懂的技术,追求精神上的技巧, 并能集中精神, 那就再好不过了.
如果你尊敬各种的能力, 那么你就会乐于自己发展这些能力 -- 这会使的努力工作和奉献成为一种刺激性的消遣而非一份苦差事. 这对于想要成为 hacker 的人而言, 是很重要的.
4黑客守则
如下:
1。不恶意破坏任何的系统,这样只会给你带来麻烦。恶意破坏他人的软体将导致法律责任,如果你只是使用电脑,那仅为非法使用!!注意:千万不要破坏别人的软体或资料!!,
2。不修改任何的系统档,如果你是为了要进入系统而修改它,请在达到目的后将它改回原状。
3。不要轻易的将你要hack的站台告诉你不信任的朋友。
4。不要在bbs上谈论你hack的任何事情。
5。在post文章的时候不要使用真名。
6。正在入侵的时候,不要随意离开你的电脑。
7。不要侵入或破坏政府机关的主机。
8。不要在电话中谈论你hack的任何事情。
9。将你的笔记放在安全的地方。
10。想要成为hacker就要真正的hacking,读遍所有有关系统安全或系统漏洞的文件(英文快点学好)!
11。已侵入电脑中的帐号不得清除或涂改。
12。不得修改系统档案,如果为了隐藏自己的侵入而做的修改则不在此限,但仍须维持原来系统的安全性,不得因得到系统的控制权而将门户大开!!
13。不将你已破解的帐号分享于你的朋友。
自觉遵守吧,黑客们~~~~
作为一名黑客道德是非常重要的,这往往决定一个黑客的前途和命运。如果开始学习的时候就是为了扬名或非法获利,那就不能称之为黑客。但是虚拟的网络世界不能用现实中的规范去管理,而黑客又是在这个虚拟世界里最渴望自由和共享的。虽然网络上的黑客道德或守则出现很多,也有很多黑客章程,但是这些所谓的道德往往成为一张白纸,而黑客们真正遵守的是来自内心真诚的道德,是一种信仰而不是人为的外在的一种守则。也只有这些来自于黑客们内心中的道德才可以真正的约束他们。
当然有很多黑客守则是值得我们去学习和自我约束的。比如:爱国,远离政治和权利斗争;同情弱者,站在霸权的对立面;低调,克制自我表现欲望等等。。。
[附]黑客精神
Hacker 这个词是用来形容那些热衷于解决问题、克服限制的人的。从这个意义上讲,hacker 并不单单指(限制于)电子、计算机或网络 hacker ,hacker的特质不是处于某个环境中的人所特有的,hacker 的特质可以发挥在其他任何领域,例如音乐或艺术等方面。事实上,你可以发现,在任何一种科学或艺术的最高境界,那可以看到 hacker 的特质。
黑客精神指的就是善于独立思考、喜欢自由探索的一种思维方式。有一位哲人曾说过,“精神的最高境界是自由”,黑客精神正是这句话的生动写照。看看黑客是怎样看待、思考并解决问题的,我们就能更直观、更深刻地理解黑客精神的蕴涵。
首先,黑客对新鲜事物很好奇,这一点和小孩子有点儿相似。实际上,有很多酿成重大后果的黑客事件都是十几岁的孩子干出来的。想必大家还记得黑客入侵美国白宫、国防部、空军网站的事,最后美国联邦调查局追查出来的“凶手”竟是一名16岁的以色列少年;二月黑客事件所发现的嫌疑犯是一名20岁的德国青年。连世界级的计算机安全专家都纳闷:这些“小孩子”到底是怎样进入那些层层设防、固若金汤的信息系统的?答案只有一个:强烈的好奇心。黑客对各种新出现的事物特别好奇,他们到处下载、使用、测评新软件
如何成为一名网络高手
成为高手不是一下子的事
知识是靠积累的
不会 只要你肯努力
编程是一条必须经历的路
下面是转自论坛的一篇关于该学什么语言的文章 写得不错
机器语言:纯粹的机器代码
汇编语言:8086汇编、Win32汇编、.NET的汇编
高级语言:
Basic、Pascal、Object Pascal、C、C++、C#、Java、ASP、ASP.NET、Perl、PHP、SQL、FoRTRAN 等等
Visual Basic、Visual Basic.NET、Delphi、Visual C++、C++ Builder、C# Builder、Visual Foxpro 等等
上面一排都是纯粹的编程语言,而下面一排都是经过发展过后的编程语言(应该可以这么说吧)下面我们对各种语言进行简单的介绍:
机器语言:机器语言是有0,1,0,1的二进制代码组成,可以有计算机直接执行。效率最高,但是通用性不强,对于不同的硬件需要不同的程序。说白了,不适合人来编程。
汇编语言:效率稍微低于机器语言,通过简单的助记符来替代繁琐而枯燥的0,1代码。同样的通用性不强,对于不同的硬件需要设计不同语言。学习曲线比较大,需要硬件知识很多。介于其特殊的性质,在某些行业中得到广泛的应用。
高级语言:通过人类可以识别的自然语言(主要是英语)来进行编程,效率再次降低,但是程序编制难度和可读性大幅提高。可移植性好,实用性较好。比较适合大规模开发,是现在大多数人选择的语言。而且Java语言和.NET平台的出现在一定程度上解决了由于平台的不同所导致的移植困难的情况。
=======================================
Basic
微软公司上个世纪八十年代(具体什么时候我不记得了)推出的计算机语言,当时造成了计算机软件开发世界的强烈震动,它的出现将很多程序员由枯燥的编码中解放出来,而有更多的精力来进行程序结构的开发。(因为我很早前曾经学习过这个语言,对其有一定程度的了解)但是,它同C、Pascal语言一样,是结构化语言,在对待大型开发中会觉得逐渐力不从心,程序员需要关注的内容实在太多了。其实现在来说,学习Basic已经没有什么意义了。因为它的改进版本Visual Basic和Visual Basic.NET无论是在功能上还是在实用性上都大大地超过了他们的祖先。
Pascal
结构化语言,语法结构严谨,易于教学。相对于C语言,缺乏一定的灵活性。但是正是其严谨的语法,很多Pascal程序员倾心于其“诗篇一样的结构”,曾经一直是大专院校计算机专业必学的语言。它的改进版本Object Pascal和Delphi都超过了它。
Object Pascal
改进版的Pascal,它是面向对象的Pascal,是Delphi语言的核心。
C
上个世纪七十年代又贝尔实验室开发,当时他们是为了解决一个实际问题,将B语言改进后得到的,后来贝尔实验室又用它重写了UNIX操作系统。是所有工科学生和计算机学生必须学习的语言。它的特点很多了:贴近硬件,执行效率高,使用灵活,功能强大。但它毕竟还是结构化编程语言。在进行大型开发上显得还是有点力不从心,往往编程人员需要绞尽脑汁想出各种“精巧”的算法来实现某个目的。不过在学习操作系统和进行单片机开发上,它的作用是举足轻重的。
C++
C语言的改进版本,保留了C语言所有特性的同时添加进了面向对象思想。这个特性导致了他在很多大型开发上有得天独厚的优势。在很多领域中有很强的生命力,直至今日,此语言还是在不断发展中,新技术曾出不穷。关于C++的介绍是在实太多了,网上随便一搜一大堆。我就不多说了。
C#
它是一种现代的,面向对象的语言,它结合了C/C++和Visual C++的强大功能以及Visual Basic的易用性。具有简单、面向对象、类型安全、可以进行Dll版本控制、兼容性好、灵活等诸多特点。使得它成为了一个很有潜力的新生代语言。再加上互联网的高速发展和微软的强大技术支持,应该是比较有前途的。
Java
Java是一种简单的,面象对象的,分布式的,解释的,键壮的安全的,结构的中立的,可移植的,性能很优异的多线程的,动态的语言。Java语言其实最是诞生于1991年,起初被称为OAK语言,是SUN公司为一些消费性电子产品而设计的一个通用环境。他们最初的目的只是为了开发一种独立于平台的软件技术,而且在网络出现之前,OAK可以说是默默无闻,甚至差点夭折。但是,网络的出现改变了OAK的命运。在Java出现以前。Internet上的信息内容都是一些乏味死板的HTML文档。这对于那些迷恋于WEB浏览的人们来说简直不可容忍。他们迫切希望能在WEN中看到一些交互式的内容,开发人员也极希望能够在WEB上创建一类无需考虑软硬件平台就可以执行的应用程序,当然这些程序还要有极大的安全保障。对于用户的这种要求,传统的编程语言显得无能为力,面SUN的工程师敏锐地察觉到了这一点,从1994年起,他们开始将OAK技术应用于WEB上,并且开发出了HotJava的第一个版本。当SUN公司1995年正式以Java这个名字推出的时候,几乎所有的WEB开发人员都想到:噢,这正是我想要的。于是Java成了一颗耀眼的明星,丑小鸭一下了变成了白天鹅。Java语言具有:与平台无关性、安全性、面向对象,分布式等诸多特点,使它成为了当今计算机界炙手可热的语言,具有大量的拥护者。
ASP/ASP.NET/PHP/Perl
这些都是网页开发使用的语言。所有有志于网页开发的朋友应该考虑他们,我其实不是很熟悉这些语言(只简单的接触过ASP),不敢乱说,以免误人子弟。有兴趣的朋友可以考虑一下。
SQL
结构化查询语言,主要用于数据库开发。但很多现代的语言(Delphi等)都支持内嵌SQL,有数据库开发需求的朋友要考虑一下此语言。
FORTRAN
最初应美国国防部需要而开发的语言。擅长于科学计算,主要用于高校之中。据说前不久推出的FoRTRAN改进版本有很大的改进。
Visual Baisc、Visual Baisc.NET
它们都是由basic改进而来。其中Visual basic是解释型语言,编译速度快,可以实时调试,但它并不是完全的面向对象,多线程开发比较困难。但其最大的优点是简单!Visual Baisc.NET是基于微软.net平台的新的语言,(注意它和VisualBasic是完全不同的语言)面向对象,可以进行嵌入式开发。与asp.NET结合紧密。并且在性能上大大提高。可以说也很有发展前途。
Visual C++/C++ Builder
都是C++语言的开发环境,可以使用户更方便的开发Windows程序。Visual C++是微软公司的产品,而C++ Builder是Borland 公司的产品。
C# builder
Borland公司的C#开发环境。
Delphi
Borland公司的旗舰产品。Object Pascal的集成开发环境,具有强大的数据库功能、高效的编译速度和方便快捷的开发,使得很多公司选用Delphi作为首选开发语言。
那么这样种类繁多的语言我们该选什么呢?总的原则是,你需要什么样的语言,那你就选择什么样的语言。下面针对几类人进行分析:
完全新手:
以前并没有接触过编程,对计算机编程没有什么了解,学习编程的目的是想探究看似神秘无比的程序别后到底隐藏了什么。这样的朋友建议学习VB/VB.NET。原因是足够简单,上手快,成就感强。
工作性质偏向硬件(嵌入式开发):
汇编和C语言,尽管汇编比较难学,对硬件知识要求很高,但是你的工作性质决定了你必须走这条路线。C语言虽然不适合大规模开发,但其对硬件的操控还是有得天独厚的优势的。
高校工科学生:
C语言和Delphi/C++,C语言是高校工科中必学的科目,这个就不用多说了。C++固然优秀,但是如果你想用C++开发优秀而稳定的Windows程序并非易事,而且学习曲线比较大,需要投入大量时间。Delphi,有很多人说它已经没有前途了,其实我不这样认为的,也许它的未来是前途未卜,但是它的过去和现在还是做得很优秀!对于工科的开发需求(串口编程,数据库编程),Delphi 6都已经作得很好了,况且Win32平台在未来10年内使肯定有市场的,如果将来真的有必要,你有C和Delphi的基础,想转到.NET平台和C#语言其实是很容易的。最大的优势是,它上手比C++快,对硬件的控制能力也不差。
高校的文科学生:
Visual Foxpro好像是你们必须学习的吧,至少在我们学校是这样的。这个主要是面向数据库开发的。其实对于你们将来的应用,这个已经是够了。如果还有更强烈的编程兴趣,学习VB吧。
短时间要拿出成果的工作人员:
以前在学校中学习过编程,有一定的基础,不过学习完后就没有怎么用过编程了。但是由于工作需要,必须在短时间内拿出个像样的程序。那么你还是选择VB或Delphi吧,理由前面已经说过了。
反对微软垄断、喜爱开源的朋友:
C++或Java都是不错的选择,只要你学习了C++,那么你一定要关注开源社区(例如:www.sourceforge.net)Java现在具有强大的生命力,在各个领域都遍地开花,并且在整个语言在不断发展和完善之中。
搞互联网开发的朋友:
C#,ASP/ASP.Net/PHP/,Java都可以。建议你们能结合开发工具(如Dreamweaver),那样必然会事半功倍。
对于黑客家说,英语数学要达到什么水平,是高中还是大学,还有要想黑客入门,先要掌握计算机的那些知识...
英语基础词汇高中就够,然后建议买本书看专业词汇
数学高中基础打好,然后学离散数学和组合数学,高数不用
你至少要掌握计算机系统的构成,对软硬件有初步了解
黑客是什么,能做什么
什么是黑客?
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里充满了各种网页。多数是无意义的,零信息量垃圾。
要想有价值,你的网页必须有内容---必须有趣或对其它黑客有用。这样,我们来到下一个话题....
黑客文化中的地位大教堂与集市”,解释了许多Linux和开放源码文化的运做原理。我还在它的续集“大教堂与集市”,解释了许多Linux和开放源码文化的运做原理。我还在它的续集“开拓智域”一文中有更直接的论述。