美剧哪里可以看:做一名黑客需要具备那些知识

来源:百度文库 编辑:高考问答 时间:2024/04/27 21:50:55
我想自学编程,自学编程容易吗?我应该学那一种编程,我看别的书上说脚本很有用,脚本好学吗?如果要学脚本的话要用多长时间才行。请再推荐几种现在黑客学的最多的编程

汇编语言能力要非常强。

对于网络底层的了解要比较深刻。

深入了解病毒和木马的工作机制。

什么才是黑客,
数学,特别是数论到达炉火纯青的的地步。
熟透各种加密解密算法,
物理一流,甚至能在硬件上“黑”,
熟练各种环境的编程:高级语言,低级语言,硬件编程...
编程速度一流,百分百的准确,几乎做到不用调试就直接用。
深入了解各种网络环境,对各种网络环境,能迅速找到编程接口。
....

重要的是:超强的记忆能力,分析能力,能在很短的时间内做一般人做不到的事。
这样的人,国家高级国防部门里有。

真正的黑客就是一名优秀的程序员,
而且不管是何种语言都能实现黑客技术,
学习脚本也不是很难,时间问题只在于你学习的多少,可以说是无期,因为编程是相通的,在这个语言上可以实现,在那个语言上也可以。
努力!不要问有多长时间。
建议你到 http://www.programfan.com
里面你可以找到很多知识。

如何成为一位 hacker

为何有这份文件?

身为 Jargon File 的编辑, 常有一些网络新手发 mail 问我 "如何成为一个厉害的hacker?". 但, 很奇怪的, 似乎没有任何的 FAQs 或 Web documents 说明这么重要的问题, 所以我写了一份我自己的看法.

如果你是以 offline 的方式在看这一份文件的某一个版本, 那么你可以在
"http://www.ccil.org/~esr/faqs/hacker-howto.html" 找到这份文件的目前最新版本.

怎么样才算是一位 Hacker ??

在 Jargon File 有一堆关于 `hacker' 这个名词的定义, 大部份必须是技术上的行家或热衷于解决问题, 克服限制的人. 然而, 如果你想知道如何成为一位 hacker,有两件事是很有关连的.

这可以追溯到几十年前第一台 minicomputer 刚诞生, ARPAnet 实验也刚展开的时代. 那时有一个由程序设计专家和网络名人所组成的, 具有分享特质的文化族群.这种文化的成员创造了 `hacker' 这个名词. 这些 Hacker 建立了 Internet,创造出我们现在使用的 UNIX 操作系统, 他们也使 Usenet 运作起来, 并且让 WorldWide Web 动起来. 如果你是这个文化的一部分, 如果你对这些种种有所供献, 而且这个文化的其它成员也认识你, 并称你为 hacker, 那么你就是一位 hacker.

在精神上, hacker 并不单指(限制于)这种软件 hacker 的文化. 有人也把 hacker的特质发挥在其它领域, 例如: 电子或者音乐方面. 事实上你会发现, 在任何一种科学或艺术的最高境界, 你都可以发现 hacker 的特质. 软件 hacker 们认为,那些类似的精神也都可以称为 "hacker". 有些人还主张 hacker 的通性是独立于任何媒介之上的, 不特别属于任何一种 hacker 所在的环境. 但是, 在这份文件,我们将把重点放在软件 hacker 们所需的技能、态度和发明`hacker' 这个词的分享文化的传统.

在另一个团体, 他们的成员也很大声的称自己为 hacker, 但是他们不是真的 hacker.这些人(大部分是男性青年)专门闯入电脑和入侵电话系统, 真正的 hacker 们称他们为 `cracker', 并且不愿意和他们在一些做任何事. hacker 们认为这些人都是懒惰, 不负责, 并且不够光明正大的, 并且认为能破解安全系统并不能使你成为一位hacker. 但是很不幸的, 很多记者和作家不明究理的使用 `hacker' 这个字来描述cracker 们; 这让真的 hacker 们很忿怒.

基本上, hacker 和 cracker 之间最主要的不同是: hacker 们创造新东西,cracker 们破坏东西.

如果你想要成为一位 hacker, 继续读下去吧. 如果你是想要成为一位 cracker, 那么就去读 alt.2600 newsgroup 并准备在你发现自己并不如想像中那么行时, 给自己一点评价. 所有关于 cracker 的事情就只有这些了.

Hacker 态度

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 的人而言, 是很重要的.

一位 Hacker 所需的基本技能

hacker 的精神态度是很重要的, 但技术则更是重要. hacker 的态度虽然是无可取代,但在梦想别的 hacker 开始也叫你 hacker 前, 有些基本的工具和技术是必备的.
随著新科技的发明和旧技术的取代, 这些工具随时间在慢慢的改变. 例如: 以往总是会学会用机器码写程序, 直到最近我们开始使用 HTML. 不过, 在 1996 年末,下面所举的工具是很明显的被需要的:

1. 学习程序设计.

当然, 这是基础的 hacking 技能. 在 1997 年, 理所当然的, 你必须学会 C. 但,如果你只是学一种语言, 那么你不能算是一位 hacker, 了不起只能算是一个programmer. 除此, 你还必须学会学会以独立于任何程序语言之上的概括性观念来思考一件程序设计上的问题. 要成为一位真正的 hacker, 你必须要能在几天之内将manual 内容和你目前己经知道的关连起学会一种新的语言. 也就是说, 你必会学会数个不同的语言.

还了 C 之外, 你至少还要会 LISP 或 Perl (Java 也正在努力的挤上这个名单;译者注: 我很怀疑这份名单说 :p ). 除了几重要的 hacking 常用语言之外,这些语言提供你一些不同的程序设计途径, 并且让你在好的方法中学习.

程序设计是一种复杂的技术, 我没辨法在这提供完整的学习步骤. 但是我能告诉你一些在书本上和课堂上所没有的东西 (有很多, 几乎全部最好的 hacker 们都是自习而来的). (a) 读别人的程序码 和 (b) 写程序, 这两项是不错的方法.

学习写程序就像在学习写一种良好的自然语言, 最好的方法是去看一些专家们所写的东西, 然后写一些你自己的东西, 然后读更多, 再写更多 ... 然后一直持续, 一直到你发展出一种属于自己的风格和特色.

要找到好的程序码来看是很一件很困难的事, 因为, 对菜鸟 hacker 们而言, 适于供他们阅读和努力的大型程序的 source 数量很少. 但这事己有了戏剧性的变化了;现在免费的供应的软件、程序设计工具和操作系统(大都公开提供 source, 而且全都是由 hacker 们写成的)到处可看. 进入下一个主题...

2. 取得一个免费的 UNIX , 并学习使用和维护.

我先假设你己经有一部个人电脑或者是可以使用任何一部 (现在的小孩子真幸福,可如此轻易的拥有 :-)). 取得 hacker 技巧的第一个步骤是取得一份 Linux 或者一份免费的 BSD-Unix, 并将它安装在自己的机器, 并使之顺利的运作.

没错, 在这个世界上除了 Unix 之外, 还有其它的操作系统. 但是他们只提供 bianry, 你不能看到他们的程序码, 你也不能修改他们. 想要在 DOS 或 Windows或 MacOS 开始 hacking, 无疑就是要你绑著枷锁跳舞一样.

除此之外, Unix 是 Internet 上的操作系统. 当你在不懂 Unix 的情况下学习使用Internet 时, 你没辨法在不懂 Unix 的情况下成为 Internet 的 hacker. 因为这个原故, 现在的hacker 文化还是很牢固的以 Unix 为中心绕著. (这并不完全是正确的, 而且有些活在旧时代的hacker 甚至也不喜欢这种情形, 但是 Unix 和Internet 之间的共生共成己经到了牢不可破的地步, 即使是 Microsoft 的大块肌肉也没能在上面留下明显的伤痕.)

因些, 把 Unix 装起来吧! (我自己是喜欢 Linux, 但是还有其它的东东可用.) 学习它, 让它运作起来, 让它陪你努力精进. 用他向整个 Internet 喊话. 看程序码,改程序. 有一天你成为一位高竿的 hacker, 你回头往后看时会发现, 你得到比Microsoft 操作系统所能提供的还要好的程序设计工具(包括 C, Lisp和 Perl).而且得到快乐, 并学到比你想像中的还要多的知识.

关于学习 Unix, 在 Loginataka 有更多的资料.(http://www.ccil.org/~esr/faqs/loginataka.html)

看一下 Linux distribution 的目录或 Linux CD, 并把自己交付给它.

3. 学习使用 World Wide Web 并学会写 HTML.

在 hacker 文化创造出来的东西, 大多在他们的活动范围外被使用著, 如, 在工厂和辨公室或大学被漠漠的使用著. 但 Web 是一个很大的例外, 这个 hacker 眼中的大玩具甚至还被政客们接受, 并巧巧的在改变这个世界. 因此(还有很多好的理由),你必须学习 Web.

并不只是学习使用 browser (这太容易了)而己, 还要学会写 HTML 这个 Web 的标签语言. 如果你不知道如何设计程序, 写 HTML 也可以给一些习惯上的帮助.嗯!! 建立 home page 吧!

不过, 有一个 home page 并没任何特别之处能让你成为一位 hacker. Web 上到处都是 home page, 而且大部份都没什么重点, 没什么内容的烂泥 -- 很好看的烂泥巴,但是看起来都一样, 差不多.
(http://www.ccil.org/~esr/html-hell.html)

为了让你的 page 有其价值, 它必须是有内容的东西 -- 它必须是有趣并且(或者)对其它 hacker 有用处的.

Hacker 文化的状况

就像大多数没有经济活动的文化一样, hackerdom 的运作是建立在名望之上. 当你尝试去解决一个有趣的问题时, 你所做事是否有趣, 你的解决方案是不是真的好用, 这些只有你的技术上的同好或前辈准备好为你做评价.

因此, 当你开始玩起 hacker 的游戏时, 你的主要分数是来自其它 hacker 们对你的技术的看法(这就是为什么只当其它的 hacker 都认为你是 hacker 时, 你才算是一位真正的 hacker). 这个事实被人们认为 hacking 是一种孤独的工作的印象所朦敝了; 也被hacker 文化的禁忌(现在己渐渐的朽坏了, 但依然存在) 和存在人们内心动机的自大或特权之间的冲突所朦敝.

具体的说, hackerdom 就是人类学家所说的「天才文化」.你在其中所得到的地位和名望并不来自于支配其它人, 或是因为长的漂亮, 或因为你有一些别人想要的东西, 而是因为你送出东西. 特别是, 你给送出你的时间,你的创造力和你的技术成果.

首先是兴趣,没有兴趣坚持不久!
其次是多接触相关方面的知识。我认为黑客有两种(褒义的),一种是挑战软件加密的黑客,一种是挑战网络安全的黑客。如果你喜欢破解软件,那么就需要掌握高级语言、汇编语言、编译原理和调试软件,这是最基本的了。如果是你喜欢网络安全的话,至少要懂TCP/IP,而且要懂socket(berkeley socket或windows socket),至少要掌握linux或windows 2k。如果想写溢出的话,也要掌握汇编与操作系统的知识。
最后就是要坚持到底。

首先看你想成为哪方面的黑客了。

如果是想成为真正的网络安全黑客的话,那么就一定要学习C、汇编、SOCKET、TCP/IP,这都是最基本的了。有了这些知识以后,你就可以开发很多黑客应用软件了。
如果想写exploit的话,那么需要对操作系统有深入的了解,比如你要写windows下堆溢出或是栈溢出的攻击程序,如果你不懂得windows如何管理内存的话,是不可能完成的。楼上也有朋友提到缓冲区溢出的问题了,缓冲区溢出我没有见过用JAVA写的,哈哈~!~!真的,到现在也没有。

推荐的书:
关于C的《C Primer Plus》、《windows程序设计》
关于汇编的《intel汇编语言程序设计》、《windows环境下的32位汇编言语》
关于socket(主要是winsock了)的《winsock2网络编程实用教程》
关于TCP/IP的《TCP/IP详解:卷1》

能看完这些就很厉害了。

如果想做一个脚本小子(称不上是黑客了)的话,那么学学脚本就可以了,比如说php、asp,在学学sql语言就可以了。如果想写个上传工具啦,或是自动注入的工具的话,有VB的基础就够了。

哈哈,再具体的话就很多啦。不过我也不是专业的了,相比在深了就解释不大清楚了,或者你也就越听越听不明白了。

先入门吧~!~!对各种攻击有个形式上的了解,然后再进行深入

在你攻击的同时也要接受攻击,必须先防后攻