【"全球最牛"黑客暴毙】
现年35岁的美国著名黑客巴纳拜·杰克(见图)在2010年“黑帽”黑客会议上利用他独创黑客技术令自动提款机狂吐钞票,一跃成为全球最牛的“明星黑客”。而他本打算在7月31日开幕的2013年“黑帽”黑客会议上,展示一项更为惊人的黑客绝技——遥控杀人。然而蹊跷的是,7月25日,就在这项“黑客绝技”曝光前夕,杰克突然在美国旧金山神秘死亡!
据报道,巴纳拜·杰克是一名出生于新西兰的黑客、程序员和计算机安全专家。他曾花了2年时间研究如何破解自动提款机。2010年7月28日,在美国拉斯维加斯举行的一年一度的“黑帽”黑客会议上,杰克将2台ATM搬到“黑帽”会场上,他刚一执行破解程序,自动提款机便不断吐出钞票,在地上堆成一座小山!这段“提款机破解秀”堪称2010年“黑帽”黑客会议上最为轰动的精彩好戏。
时隔整整3年之后,身为“明星黑客”的杰克重出江湖,打算在7月31日开幕的“黑帽”黑客会议上,展示一项更为惊人的“黑客绝技”——在9米之外入侵植入式心脏起搏器等无线医疗装置,然后向其发出一系列830V高压电击,从而令“遥控杀人”成为现实!杰克声称,他已经发现了多家厂商生产的心脏起搏器的安全漏洞。
由于美国警方拒绝透露杰克死亡细节,杰克的死引发了各种疯狂阴谋论——有阴谋论者指出,杰克最新针对医疗设备的“遥控杀人”技术不仅会对公众的生活安全构成威胁,也将令生产这些存在漏洞的医疗设备的厂商的名誉和经济利益遭到重创,不排除杰克因此惹火烧身,招来杀身之祸。
黑客最早源自英文hacker,早期在美国的电脑界是带有褒义的。但在媒体报道中,黑客一词往往指那些“软件骇客”(software cracker)。
黑客一词,原指热心于计算机技术,水平高超的电脑专家,尤其是程序设计人员。但到了今天,黑客一词已被用于泛指那些专门利用电脑网络搞破坏或恶作剧的家伙。对这些人的正确英文叫法是Cracker,有人翻译成“骇客”,在中国,很多网友将黑客与骇客区分为一类,实际为错误区分。
【世界著名黑客有哪些?】
1、 【Kevin Mitnick】:
Mitnick也许就是黑客的代名词。美国司法部仍然指责他为“美国历史上头号电脑犯罪通缉犯”。他的所作所为被记录在两部好莱坞电影当中:《Takedown》和《Freedom Downtime》。-
Mitnick“事业”的起点是成功的破解了洛杉矶公交车打卡系统,并因此可以免费乘坐。然后和苹果的Steve Wozniak一样,Mitnick开始尝试盗打电话。Mitnick第一次被判有罪,是因为进入数码设备公司的电脑网络并且窃取软件。
稍后Mitnick开始了两年半的黑客行为,他声称自己侵入电脑、穿行于电话网络,窃取公司的秘密,并且进入了国防部的预警系统。他的落马源于其入侵电脑专家和黑客 Tsutomu Shimomura的家用电脑。
在五年零八个月的监禁之后,Mitnick现在的身份是一个电脑安全专家、顾问。
2、【Adrian Lamo】
Lamo专门找大的组织下手,例如破解进入微软和《纽约时报》。Lamo喜欢使用咖啡店、Kinko店或者图书馆的网络来进行他的黑客行为,因此得了一个诨号:不回家的黑客。Lamo经常发现安全漏洞,并加以利用。通常他会告知企业相关的漏洞。
在Lamo攻击过的名单上包括,雅虎、花旗银行,美洲银行和Cingular等,白帽黑客这么干是合法的,因为他们受雇于公司,但是Lamo这么做却是犯法的。
由于侵入《纽约时报》内部网络,Lamo成为顶尖的数码罪犯之一。也正是由于这一罪行,Lamo被处以65000美元的罚款,并被处以六个月的家庭禁闭和两年的缓刑。
3、【 Jonathan James】
16岁的时候James就已经恶名远播,因为他成为了第一个因为黑客行径被捕入狱的未成年人。他稍后承认自己喜欢开玩笑、四处闲逛和迎接挑战。
James攻击过的高度机密组织包括:国防威胁降低局,这是国防部的一个机构。他的入侵使其获得了可以浏览高度机密邮件的用户名和密码。
在James的“功劳簿”上,他还进入侵过NASA的电脑,并且窃取了价值超过170万美元的软件。美国司法部有这样的一段描述:James窃取的软件可以支持国际空间站的物理环境,包括温度和湿度控制。发现这次入侵之后,NASA不得不立刻关闭了整个电脑系统,造成的损失达到41000美元。现在James立志开办一家电脑安全公司。
4、【Robert Tappan Morrisgeek】莫里斯
.
Morris的父亲是前美国国家安全局的一名科学家,叫做Robert Morris。Robert是Morris蠕虫病毒的创造者,这一病毒被认为是首个通过互联网传播的蠕虫病毒。也正是如此,他成为了首个被以1986年电脑欺骗和滥用法案起诉的人。
Morris在康奈尔大学上学期间,创造的蠕虫病毒是为了探究当时的互联网究竟有多大。然而,这个病毒以无法控制的方式进行复制,造成很多电脑的死机。专家声称有6000台电脑被毁。Morris最后被判处3年缓刑,400小时的社区服务和10500美元的罚金。
Morris现在担任麻省理工电脑科学和人工智能实验室的教授,其研究方向是电脑网络的架构。
5、【Kevin Poulsen极客】
他的另一个经常被提及的名字是Dark Dante,Poulsen受到广泛关注是因为他采用黑客手段进入洛杉矶电台的KIIS-FM电话线,这一举动为他赢得了一辆保时捷。
此后FBI开始追查Poulson,因为他闯入了FBI的数据库和用于敏感窃听的联邦电脑系统。Poulsen的专长就是闯入电话线,他经常占据一个基站的全部电话线路。Poulson还会重新激活黄页上的电话,并提供给自己的伙伴进行出售。Poulson留下了很多未解之谜,最后在一家超市被捕,判处以五年监禁。
在狱中,Poulson干起了记者的行当,并且被推举为Wired News的高级编辑。在他最出名的文章里面,详细的通过比对Myspace的档案,识别出了744名性罪犯。
6、【李纳斯·托瓦兹】
Linux这部史诗发端于赫尔辛基。似乎天下的黑客都在为自己的生命创作源程序。李纳斯也不例外,他的家就
在离市中心不远的Kalevagatan(与卡勒瓦拉很相近)大街。这是一个19世纪的建筑与现代化平房交相呼应的地方。李纳斯与妻子住在这里。他的家很像是大学生的集体宿舍,楼梯下总放着一排排自行车。
李纳斯本人看起来就像一名学生,而不像道士。他中等身材,浅褐色头发,蓝眼睛,目光透过镜片直直地射向你,只有浓密的眉毛是黑色的,衬着一张孩子气的脸庞。他的房间四周排列着许多书籍,里面布满了油画和各种装饰品,相当低廉的窗帘,两把扶手椅之间挂着发干的鳄鱼皮,房间里还有两只目空一切的猫和几台计算机:三台PC,一台Power Mac,还有三台从DEC借来的基于Alpha芯片的微机。它们不起眼地布置在房间的角落中。另外一样很有意思的东西不易察觉:那是一根将计算机连到的专线,由当地的一家ISP安装并承担费用,它是对这位Linux道士的象征性奖励。
7、【尼亚克】 斯蒂夫·盖瑞·沃兹尼亚克
在硅谷,一个人要赢得好名声远比赢得大把的钱财要困难得多。因为财富是声名鹊起的基本条件。而要赢得
财富,就必须勾心斗角、逐利而去。因此无论是苹果的乔布斯、Oracle的埃里森还是英特尔的葛鲁夫,都只能在当地获得毁誉参半的名声。但是,如果在硅谷还有唯一一位大家公认的“好人”,那么这个人肯定非沃兹莫属。
这位当年的技术天才,淡泊名利,性格纯朴,早早离开了热闹的中心。这也注定了他必然与计算机业沿着不同的路线,书写各自的历史。昔日的战友乔布斯又在叱咤风云,而他则过着自己安静的生活。
8、【汤普生】
不可思议的是,当初这个操作系统的诞生,并不是为了把它推向市场,甚至不是为了让更多人使用,而仅仅是作者为了便于自己使用,而且初衷是为了自己更方便地玩游戏。连Unix这个别扭的名字,也是对早期一个名为Multics操作系统开玩笑的称呼。在后来的获奖答谢中,作者之一的丹尼斯·里奇坦然说:“我们的目的是为自己建立一个良好的计算机工作环境,当然也希望大家都能喜欢它”。
然而,在这不经意间,奇迹诞生了,再一次验证了IT业的创新往往是兴趣,而不是大把大把的金钱使然。
经过10年的内部使用,于70年代中期开始。Unix第一次公诸于世,就慢慢走向成功,震动整个计算机业。1969年开始工作时,里奇和汤普生根本没有想过要掀起业界的狂热,在1974年以前,他们甚至没有发表过任何关于项目的消息。而当Unix露面时,他们还惊奇于会引起如此大的兴趣。他们并没有积极推销,大学、研究机构可以免费使用,而且还提供源代码。
主要成就:贝尔实验室著名的计算机科学工作组的创造力的推进剂。里奇和汤普森在1969年创造了UNⅨ,UNⅨ是小型机上的一个一流的开放操作系统,它能帮助用户完成普通计算、文字处理、联网,很快成为一个标准的语言。
鲜为人知的事实:由汤普森和他的贝尔实验室的同事罗布·派克(Rob Pike)创造的Plan 9,是由UNIX衍生的下一代操作系统
9、【理查德】理查德·马修·斯托曼
主要成就:老牌黑客。1971年,斯托曼在街上找到一份MIT的人工智能实验室的工作。当时他是哈佛大学的一名本科生。后来,斯托曼创立了自由软件基金,打破了软件是私有财产的概念。理查德·马修·斯托曼
第一次接触计算机:1969年在IBM纽约科学中心,时值16岁。自己独特的黑客工具:在上世纪80年代,斯托曼不拿MIT的薪水但继续在其中的一个办公室工作。在那里他创造了一个新的操作系统GNU--GNU是"GNU’s Not Unix"的缩写。
10、【德拉浦】 约翰·德拉浦
主要成就,发现了使用(“嘎吱嘎吱船长”牌的)麦片盒里作为奖品的哨子(向电话话筒吹声)可以免费打(长途)电话。Cap’n Crunch给几代黑客引入了“盗用电话线路”打(长途)电话的辉煌思想。约翰·德拉浦
第一次接触计算机:青少年时期,试图使投币式公用电话确信得到他的硬币和接通他的电话。
自己独特的工具:嘎吱嘎
11、【雷蒙德】 埃里克.雷蒙德
任何一场革命或者运动都需要一个理论家,需要一份纲领性的文献,起到真正埃里克.雷蒙德的“画龙点睛”的神效。除了架构极具思辨力和逻辑性的理论体系,更需要激发起人们对美好理想的向往,为同行者的士气传递极具煽动性的烈焰。这场正在颠覆软件业传统商业模式的自由软件运动也不例外。自由软件精神领袖当然是理查德·斯托尔曼(Richard Stallman),但他太超凡脱俗,而且,除了提出核心理念外,斯托尔曼缺乏著书立作的能力。这些局限,使得埃里克·雷蒙德(Eric S Raymond)脱颖而出,担当了这个角色。如今,他已经成为开放源代码运动(脱胎于自由软件运动)和黑客文化的第一理论家,不可动摇。
雷蒙的策略获得了很大的成功。一般认为,1998年Mozilla的发布主要归功于他。大多数黑客和主流观察家也同意,正是雷蒙将开放源代码的理念成功地带到了华尔街。但是也有批评他的声音:有一些黑客认为他利用这些机会为自己打广告,而他对理查德·斯托曼和自由软件基金会的理想主义所进行的批评,以及所采取的更务实、更符合市场口味的线路,也曾经在黑客社群里掀起了不小的政治对立。
12、【朱利安·阿桑奇】
被称为“黑客罗宾汉”,作为“维基解密”的创始人,朱利安·阿桑奇认为,透露公共治理机构的秘密文件和信息,对大众来说是件有益的事。
9万多份驻阿美军秘密文件的泄密让他足以成为创造历史的人物。39岁(2010年)的阿桑奇,因涉嫌在瑞典强奸及性侵犯2名女性,被通缉,2010年12月7日他向伦敦警方自首,随即被押送到威斯敏斯特地方法院出席引渡聆讯,保释申请被驳回。
2012年8月16日,阿桑奇获厄瓜多尔政治庇护。
13、【卡普尔】
1971年,卡普尔从耶鲁大学毕业。在校期间,他专修心理学、语言学以及计算机学科。也就是在这时他开始
对计算机萌生兴趣。他继续到研究生院深造。20世纪60年代,退学是许多人的一个选择。只靠知识的皮毛,你也能过日子。那些年里,卡普尔1年可以挣1.2万美元。他漫无目标地在游荡,正如他后来描绘自己这一时期的生活时所说,他成了一个“有知识的吉普赛人”。
参考地址推荐阅读:
【中国日报网】
【中国时刻网】
【华讯财经】
【百度百科】
做梦,真破了早就放了。
那个破解团队我认识
星际2那会隔一个月就出来蹦跶一次跟大家收一次钱,然后收完了钱就消失了
然后过一个月再出现。
看这个应该对你有帮助。
PSP1000型于2004年12月12日首发,收发系统版本1.0版。PSP以专用光盘Universal Media Dise作为载体。不过从一开始,各大PSP玩家就梦想着脱离UMD运行PSP游戏,而这个梦想,于2005年3月24日开始。这一天,SONY推出了1.5固件升级程序。这下子可让PSP黑客们欣喜万分,一直以来,黑客们都不知道PSP能够识别什么格式的文件,也不知道应该把文件放在什么地方PSP才能执行。可现在,一切都清楚了。格式是PBP,文件放在PSP\GAME下能够运行。于是。。。。。。。PSP的破解时代开始了。。。。。一同开始的,还有SONY的噩梦。。。。。。。。。
2005年5月3日,一个所有PSP玩家都应该记住的日子。这一天,一个叫做hellopsp的自制软件在PSP上运行成功。虽然运行的结果只是一张简单的写有“Hello World,PSP”的图片,但就是这张图片,证明了自制软件在PSP上运行的可能性。着一张小小的图片成了PSP破解之路的开端。
接下来,PSP上的游戏“Wipe Out(反重力战车)”的发布彻底改变了自制软件的面貌。利用这个游戏自带的内核浏览器工具,黑客们找到了通往PSP核心的道路。不久之后,2005年5月10日,PSP历史上第一个模拟器--GB模拟器推出。它的出现预示着,PSP自制软件的黄金时机即将到来。
随着SONY1.5固件的发布,原本在1.0版本上运行的自制程序变得不能使用,而SONY更是推出了许多系统版本要求1.5的游戏,使得很多经不住诱惑的玩家升级到了1.5系统,自制软件暂时沉寂了一段时间。不过很快,就在2005年6月15日,西班牙的黑客们准时于当地时间15点放出了Mswaploit这个软件,利用它可以使用两根记忆棒快速的交换引导来顺利运行自制程序的PC端程序。此方法俗称“飞棒”。不过,由于两根记忆棒不仅很麻烦而且还很伤机器,所以并不完美。很快,2005年6月22日,自制软件“KXploit tool”的出现彻底解决了飞棒的问题。这个软件可以将原本的1.0核心的软件转化成两个文件包,也就是常见的带%和不带%的两个文件夹,的形式来运行自制软件。直到这一刻,PSP上的自制软件终于能够成功并且顺利的在1.5版本的PSP上运行了。
不过,以上这些解决的只是自制软件的问题,人们真正关注的PSP游戏的破解还没有出现。然而(我现在怕写“然而”了--!),纵观游戏机发展史,自从个人电脑PC出现之后,还没有哪个游戏机没被破解的。虽然SONY曾经宣称UMD永远不会被破解,不过其实他们心里也知道这个美好的愿望基本是不可能实现的。有人说,SONY就像当年的国民,当年国民就是解放军需要什么他们就给什么(看了《亮剑》就知道了),现在的SONY也是一样,黑客需要什么,SONY就给他们什么。1.5升级包的发布造就了PSP上的自制软件,而Lumines的发布,宣告了UMD破解的开始。
2005年6月30日,作为PSP首发游戏的Lumines(音乐方块)被破解。通过ISO Loader和引导盘,音乐方块的ISO得以在PSP上运行。虽然引导运行的游戏需要经过修改,虽然部分游戏还不能运行,不过有了这个好的开始,PSP游戏破解的春天也不会太远了。随着自制软件的不断完善,许多游戏相继被破解出来。而随着PSP史上著名的DeveHook的出现,PSP游戏更是开始了免引导时代。
不过,SONY也不是吃素的,在反破解领域,SONY也算是老手了。2005年7月27日,SONY发布2.0固件,这一固件加入了网络浏览器,AVC格式支持,AT3支持和壁纸更换等诸多功能。不过当然,最主要的还是增强了安全性,使得原本的自制软件都无法运行。此时此刻,黑客们知道,想要再次破解2.0新系统已经不再可能。于是他们转而寻求其他办法,试图通过让2.0系统降级到1.5系统。实践证明,这个方法是可行的。(不过这里先插入几句话,就在众多黑客寻求降级方法时,DeveHook已经放出了功能更强大的DH0.22版,同时发布的还有UMD Emulator v0.8c,在这两个软件的配合下,1.5版PSP可以运行绝大部分ISO游戏,更能读取UMD VIDEO)。再回到降级来,2005年9月28日,PSP破解小组MPH(不是MHP!!!)放出了基于2.0系统图片缓冲区溢出这个漏洞的降级程序。这个程序通过让PSP读取一张特殊的图片来触发漏洞并进行降级。没想到,一张小小的图片彻底断送了2.0版本的安全保护功能,而SONY也紧跟着于10月3日放出2.01升级程序,不过可惜的是,此时已经为时太晚。
现在,SONY终于开始放狠招了。在2005年末,一大批需要2.0以上系统版本的游戏出现了。1.5版本的玩家陷入了无游戏可玩的境地,2005年10月13日和11月29日,SONY又放出了2.5和2.6的升级包,支持RSS,支持中文网页,支持WMA格式音乐。众多的新功能着实让当时的1.5玩家眼睛红的发紫。同时,11月6日,MPH(再次申明不是MHP!!!)小组发布了Firmwave Launcher这个软件,通过它,可以实现在PSP上模拟出一个2.0系统来,但真实系统还是1.5.只可惜当时这个软件还不完美,破解玩家在2005年末经历了一个寒冬。
历经了3个月的寒冬之后,春天到来了,2006年2月22日,MPH小组发布了功能强大的MPHGameLoader,在UE 0.8c的配合下,经过破解的2.0以上系统的游戏成功在1.5版本上运行。3月12日发布的DeveHookGL2更是完全支持1.0,1.5和2.0+的游戏。短短两天之后,Dark-AleX(这个名字大家应该记住)带来了他的第一个作品--DAX ZISO Loader。这个软件可以将原本的ISO格式压缩,使得记忆棒上能够装更多的东西。随后在4月11日,Dark-AleX放出了UE和RUNUMD的修改版--UMD Emulator(RUNUMD Edit W-Genesis),它的出现,使得国民级PSP游戏《怪物猎人》(这个是MHP--!)得以在1.5版本上运行。不过在那个时候,破解程序一般只针对某些特定的游戏,很多情况下,换了游戏就得更换新的破解程序,这无疑是非常麻烦的。直到它的出现。。。。。。
2006年7月14日,经过了数度修改的最强引导程序DeveHook 0.45发布,它不仅能够完美的模拟2.71版本官方系统,更可以再配合引导盘的情况下通吃所有2.71(及其以下)版本游戏的ISO。模拟系统最辉煌也是最巅峰的时刻终于到来。
不过,模拟终究是一项复杂的工作,而有的人也正在想一些其他的办法。2006年十月,具有划时代意义的作品--2.71SE自制系统发布。他完全打破了通过软件找漏洞的传统破解方式,创造性的提出了“自制系统”这一新概念。作为它的作者,Dark-AleX从这一刻开始,真正成为了PSP破解领域的神。很快,随着3.03OE自制系统于2007年二月发布,PSP玩家告别了破解引导时代,进入了自制系统时代。很快,3.10OE,3.30OE,3.40OE都相继出现,甚至可以做到无时差发布(2007年4月20日,SONY官方3.40系统放出,就在短短十几个小时之后,还是4月20日,3.40OE随即放出。)由此可见,黑客们的破解能力是多么强大。
然而,在3.40OE发布后过了很长一段时间,OE系统都没有在更新。随后更是传出DA宣布放弃破解的消息。一时间,破解玩家们都像是慌了神一样。可是不久,一个新的破解小组,来自俄罗斯的M33小组(名字来源于银河系外的March33星云)宣布,他们将发布自己的自制系统--3.51M33。他们没有让我们失望,M33系统被证明于OE系统一样出色,甚至是更加出色。很快,大家就投入了M33的怀抱,尤其是中国玩家,因为从3.52M33-2开始,PSP系统语言终于可以免补丁直接选择中文。
很快,PSP2000型发布。(同时期,一段通过神秘电池破解PSP官方系统的视频在网上广为流传。)不久之后,PSP2000破解成功,2000型专用自制系统3.60M33放出,PSP正式进入3.XX核心时代。不过,对于PSP玩家而言更好的消息还在后面呢。DA复出了,同时宣布自己就是M33小组的成员。于是,OE和M33这两大自制固件迎来了统一。更好的消息是,2007年8月,DA还为我们带来了“神奇电池”,通过它,PSP可以强制运行升级程序,哪怕是在无操作系统的“变砖”情况下也可以起死回生。这下子,PSP玩家们真正的可以自己修复变砖的PSP了。现在,拥有强大即时存档功能的4.01M33也已经出现,自制系统从此进入了4.XX和新时代!
纵观PSP破解史,一路走来是多么的不易。虽然盗版并不是一件什么正大光明值得称颂的事情,但它的确给我们PSP玩家带来了许多好处。所以我们还是应该感谢那些为了大多数PSP玩家的利益而工作的黑客们,不只是Dark-AleX,也不只是MPH小组,而是所有的为了PSP破解而工作的人们。没有他们,作为PSP玩家的我们不会如此幸福。
破解了被发现不是封号就是追回。而且一个黑客是不会管这么小的事的。
只有傻子盗了你的号后用来玩游戏,这样他不是免费帮你升级吗?!别人盗你的号一般是要你的装备和游戏币,除此之外就是你的游戏级别非常高所以顺便把你的密码也改了,一般
黑仔
都是不会改你密码的,因为他等你一直帮他冲
Q币
。啊懂了!
隐蔽软件(surreptitious software)是近十年来计算机安全研究领域新兴的一个分支。在隐蔽软件的研究过程中不仅需要借鉴计算机安全方面的技术,还会用到计算科学其他领域的大量技术,如密码学、隐写术、数字水印、软件量度(software metric)、逆向工程以及编译器优化等。我们使用这些技术来满足在计算机程序中安全存储秘密信息的需求,尽管这些需求的表现形式千差万别、各不相同。本书中“秘密”一词的意思比较广,书中所介绍技术(代码混淆、软件水印和指纹、防篡改技术以及软件“胎记”等)的使用目的是防止他人剽窃软件中的智力成果。比如,软件中使用指纹技术可以用来跟踪软件是否被盗版,代码混淆技术能够加大攻击者逆向分析软件的难度,而防篡改技术则可以使别人很难制作软件的破解版,等等。
好了,现在我们来讲讲为什么需要阅读本书,谁使用隐蔽软件以及本书将会涵盖哪些内容。
为什么阅读本书
与传统的安全研究不同,隐蔽软件不关心如何使计算机免于计算机病毒入侵,它关心的是计算机病毒的作者是如何防止他人分析病毒的!同样,我们也不关心软件到底有没有安全漏洞,我们关心的是如何隐蔽地在程序中加入一些只有在程序被篡改时才会执行的代码。密码学研究领域中,被加密数据的安全性依赖于加密密钥的隐秘性,而我们现在研究的恰恰是如何隐藏密钥。软件工程中有大量的软件量度技术,以确保程序结构良好,本书中将使用同样的技术使程序复杂难读。本书中描述的很多技术都是基于编译器优化技术研究开发的算法的,但是编译优化的目的是使编译器生成个头尽量小、运行速度尽量快的程序,而使用本书中介绍的一些技术却会使生成的程序个头又大,执行起来又慢。最后,传统的数字水印和隐写术是想办法把要隐藏的信息藏到图像、音频、视频甚至纯文本文件中,而隐蔽软件则是把需要隐藏的信息藏到计算机代码中。
那么,为什么要阅读本书呢?为什么要了解一种不能防止计算机被病毒或者蠕虫攻击的安全技术?为什么要学习一种只会让代码体积变大而执行速度变慢的编译优化技术?为什么要把精力花在一种违反了密码学基本前提(即密钥是不可能被攻击者获得的)的密码学分支上呢?
回答是,传统的计算机安全和密码学研究成果有时并不能解决实际工作中遇到的且亟待解决的安全问题。比如,在本书中将展示如何使用软件水印技术防止软件盗版。软件水印是在程序中嵌入的唯一标识(类似信用卡的卡号或者版权声明),通过这个标识,程序的某个副本就和你(程序的作者)或者客户联系在了一起。要是你发现市场上在卖自己软件的盗版光盘,就可以通过在盗版软件中提取的水印追查制作这个盗版软件的母版 当初是哪个家伙从你这里买走的。当给合作商提供新开发的游戏的测试版时,你也可以在测试版中加上数字水印。要是你感觉有人泄露了你的代码,就能(从众多的合作商中)找出肇事者,并把他送上法庭。
又比如,在程序的新版本中加上了某个新的算法,你当然不希望竞争对手也得到这个算法,并把它加到他们的软件中。这时,你就可以去混淆程序,使之尽可能变得复杂难懂,使竞争对手逆向分析软件时效率很低。而如果确实怀疑某人剽窃了你的代码,本书也会教你如何使用软件“胎记”证实你的怀疑。
再比如,你的程序中包含有某段不能为人所知的代码,并且你想确保没有这段代码程序就不能正常运行。例如,你肯定不希望黑客修改程序中的软件使用许可验证代码,或者可用于解密数字版权管理系统中mp3文件的密钥。第7章将讨论多种防篡改技术,确保受到篡改的程序停止正常运行。
听说你把密钥放在可执行文件里了?这主意实在太糟糕了!以往的经验告诉我们,任何类似“不公开,即安全” 的做法最终都将以失败告终,而且不管在程序中怎样隐藏密钥,最终它都逃不出一个足够顽强的逆向分析人员的手心。当然,必须承认你的做法也还是对的。本书中介绍的所有技巧都不能保证软件能永远免于黑客的毒手。不必保证某个东西永远处于保密的状态,也不必保证程序永远处于不可能被篡改的状态,更不需要保证代码永远不会被剽窃。除非这个研究领域有什么重大的突破,否则能指望的只是延缓对方的攻击。我们的目标就是把攻击者的攻击速度减缓到足够低,使他感到攻击你的软件十分痛苦或要付出过高的代价,从而放弃攻击。也可能攻击者很有耐心地花了很长时间攻破了你的防御,但这时你已经从这个软件中赚够了钱,或者已经用上了更新版本的代码(这时他得到的东西也就一钱不值了)。
比方说,你是一个付费频道的运营商,用户通过机顶盒来观看你提供的电视节目。每个机顶盒都是带有标签的——在代码的某个位置上存放了分配给每个用户的唯一标识(ID),这样你就可以根据用户的缴费情况决定是允许还是拒绝某个特定用户观看频道里的节目。可是现在有一个黑客团伙找到并且反汇编了这段代码,发现了计算用户ID的算法,并且在网上以低廉的价格把修改用户ID的方法卖给了网民。这时你该怎么办呢?你也许想到了使用防篡改的智能卡,不过这玩意儿并不像看上去那么难破解,这将在第11章中讲解。或者你可能想到要混淆代码,使之更难以被分析。或者你也可以使用防篡改技术使程序一被修改就自动停止运行。更有可能,你会混合使用上述各种技巧来保护代码。但是尽管使用了所有技术,你还必须要知道并且必须接受,你的代码仍然可能被破解,秘密仍会泄露(在这个案例里就是机顶盒里的用户ID仍然会被篡改)这一事实。怎么会这样呢?这只是因为“不公开,既安全”这个想法在根本上就存在漏洞。不过既然本书中介绍的所有技术都不能给你一个“完美并且长期的安全保证”,那么为什么还要使用这些技术,为什么还要买这样一本书呢?答案很简单,代码能顶住黑客攻击的时间越长,订阅频道的客户就越多,同时升级机顶盒的周期也就越长,这样你赚到的钱和省下的钱也就越多。
就这么简单。
谁使用隐蔽软件
很多知名的公司都对隐蔽软件有浓厚的兴趣。事实上很难真正掌握有关技术在实践中具体被使用的程度(因为大多数公司在如何保护自己的代码一事上绝对是守口如瓶的),但是我们还是可以根据他们专利的申请和拥有情况把他们对隐蔽软件的感兴趣程度猜个八九不离十。微软公司拥有多个关于软件水印[104,354]、代码混淆[62,62,69,69,70,70,180,378]和软件“胎记”[364]技术的专利。Intertrust公司拥有大量与数字版权管理技术相关的组合式专利,包括代码混淆和代码防篡改专利。2004年,在微软与Intertrust之间的马拉松式官司落下了帷幕之后,微软向Intertrust支付了高达4.4亿美元的专利使用费,才获得了后者所有的专利使用许可。同年,微软也开始与PreEmptive Solution公司开展商业合作[250],从而把PreEmptive Solution开发的identifier obfuscator(PreEmptive solution公司在该工具中拥有专利[351])加到了Visual Studio的工具集里。而普渡大学科研成果的副产品Arxan,因其独创的防篡改算法专利[24,305]而成功地开办了一家公司。苹果公司拥有一个代码混淆方面的专利,估计是用于保护其iTune软件的。Convera,一家从英特尔公司独立出来的企业,则着力研究应用于数字版权管理的代码防篡改技术[27,268-270]。从加拿大北方电信公司中分离出来的Cloakware公司也是这个领域里最成功的企业之一。该公司拥有他们称为“白盒加密”的专利[67,68,182],即把加密算法和密钥藏到程序代码中。2007年12月,Cloakware公司被一家主营付费电视业务的荷兰公司Irdeto以7250万美元的价格收购。即使是相对的后来者Sun Microsystem也已经提交了一些代码混淆领域的专利申请。
Skype的VoIP客户端也使用了类似Arxan[24]、英特尔[27]及本书中将要提到的[89]代码混淆和防篡改技术进行了防逆向工程加固。对于Skype公司来说,保护其客户端的完整性无疑是极其重要的,因为一旦有人成功逆向分析了其客户端软件,解析出Skype所使用的网络协议,黑客们就能写出廉价的能与Skype软件进行正常通信的程序(这样的话,人们就没有必要一定用Skype)。所以保持网络协议不公开则有助于Skype拥有一个庞大的用户群,这大概也是2005年易贝公司以26亿美元收购Skype的原因吧。实际上,使用隐蔽软件技术还使Skype公司赢得了足够多的时间,进而成为了VoIP技术的领军企业。即使这时Skype的协议被分析出来了(这一点黑客们确实也做到了,详见7.2.4节),黑客们也拿不出一个能够撼动Skype市场地位的类似软件了。
学术研究者从多种角度对隐蔽软件技术进行了研究。一些拥有编译器和程序语言研究背景的研究者,比如我们,会很自然地加入这一领域的研究,因为涉及代码转换的绝大多数算法都会涉及静态分析的问题,而这一问题则是编译优化技术的研究者再熟悉不过的了。尽管以前,密码学研究者大多不屑于研究“不公开,即安全”的问题,但最近一些密码学研究人员已经开始把密码学的相关技术应用于软件水印以及发现代码混淆技术的局限性上了。来自多媒体水印、计算机安全和软件工程方面的研究人员也已经发表了很多关于隐蔽软件的文章。遗憾的是,由于没有专门的刊物、学术会议(供研究人员相互之间进行交流),这一领域的研究进展被大大延缓了。事实上,为了使这些研究成果能被传统的学术会议和期刊接受,研究人员在不停地努力着,现在仍在努力。目前已经发表过隐蔽软件研究成果的学术会议有POPL(Principles of Programming Languages,程序设计原理)上的ACM专题研讨会、信息隐藏研讨会、IEEE的软件工程研讨会、高级密码学会议(CRYPTO)、ISC(Information Security Conference,信息安全大会)以及其他一些关于数字版权管理的学术会议。随着隐蔽软件这一领域的研究越来越成为学术研究的主流,我们有望拥有专门针对于隐蔽软件的期刊、专题讨论会甚至是研讨会,只是可惜目前为止这一切都还没有实现。
军方也在隐蔽软件上花了很多精力(和纳税人的钱)。比如,Cousot公司拥有的软件水印算法[95]专利就归属于世界上第九大国防工程承包商法国Thales集团。下面是一段引自最新的(2006)美军招标文件[303]中有关AT(anti-tamper)技术 研究的文字。
现在,所有的美军项目执行部门(PEO)和项目管理方(PM)在设计和实现有关系统时,必须在系统中使用军队和国防部制定的AT策略。嵌入式软件现代武器系统的核心,是被保护的最重要技术之一。AT技术能够有效地保证这些技术不被他国(人)逆向工程分析利用。仅仅由标准编译器编译生成而不加AT技术防护的代码是很容易被逆向分析的。在分析软件时,逆向工程分析人员会综合使用诸如调试器、反编译器、反汇编器等很多工具,也会使用各种静态和动态分析技巧。而使用AT技术的目的就是使逆向工程变得更为困难,进而防止美国在技术领域的优势被他国窃取。今后还有必要向部队的PEO和PM提供更有用、更有效并且多样化的AT工具集……研发AT技术的目的在于提供一个能够抗逆向工程分析的高强度壳 ,从而最大限度地迟滞敌方对被保护软件的攻击。这样美国就有机会维持其在高科技领域的优势或者减缓其武器技术泄密的速度。最终,美军就能继续保持其技术优势,进而保证其军备的绝对优势。
这份招标文件来自于美军导弹和空间程序(设计部门),专注于实时嵌入式系统的保护。我们有理由相信产生这份招标文件的原因是,美军担心射向敌方的导弹由于种种原因落地后未能爆炸,使敌方有机会接触到嵌入在导弹中负责引导导弹飞临目标上空的控制软件。
下面是另一段引自美国国防部[115]的文字。
进行主动式软件保护 (SPI)是国防部的职责之一,它必须开发和部署相关的保护技术,以保证含有国防武器系统关键信息的计算机程序的安全。SPI提供的是一种全新的安全防护方法,它并不(像传统的安全技术那样)保护计算机或者网络的安全,而只是加强计算机程序自身的安全。这种新方法能显著提升国防部的信息安全情况。SPI的适用范围很广,从台式机到超级计算机上面所有的程序都能使用SPI技术予以保护。它是(软件保护技术中)完整的一层,是“纵深防御”的一个范例。SPI技术是对网络防火墙、物理安全等传统安全技术的一个补充,但是其实现并不依赖于这些传统的安全设备。现在SPI技术被部署在选定的HPC中心和150多家国防部机关以及其他由商业公司参与建设和维护的军事基地。广泛地部署SPI技术将会有效地增强美国和美国国防部对关键应用技术的保护。
. 上面这段话说明了什么?它说明美国国防部不仅关心导弹会不会掉到敌方领土上去,还关心在自己的安全系数和性能都很高的计算机中心运行的软件的安全。事实上,窃密和反窃密是防间谍机关和情报部门之间永恒的主题。比方说,一架战斗机上的某个程序需要更新一下,这时我们很可能就是用一台笔记本电脑连接到这架战斗机上进行更新操作。但是万一这台笔记本电脑不慎遗失了,或者干脆就被其他国家政府使用某种方法控制了,就像电影里常演的那样,这时会有什么情况发生呢?对方会马上把相关的代码拿去做逆向工程分析,并把分析的结果用于改进其战斗机中所使用的软件。更有甚者,对方会悄悄地在你的软件中加上一个特洛伊木马,并让飞机在特定的时间里从天上掉下来。如果我们不能绝对保证上述这一幕100%不可能发生的话,隐蔽软件至少可以作为安全防御的最后一道防线(至少还能做到事后的责任追究)。例如,飞机中的软件可以用有权访问相关软件的人的ID做一个指纹签名。要是哪天,在其他国家的战斗机上发现了这些代码,就可以立即对这些代码进行逆向分析,并进一步推算出谁是泄密事件的元凶。
什么?我听见你说,为什么我要对政府之间和商业巨头之间如何保护它们各自的秘密感兴趣呢?如果黑客破解了这些软件,他们也不过是通过自己的劳动换取一些微薄的利益而已啊。话虽如此,但是这些保护技术给你 带来的好处最终还是大于它给商业巨头带来的好处。理由是,对你来说,法律形式的保护措施(如专利、商标和版权)只有当你拥有足够的财力,能在法庭上把对方告倒的时候才会管用。换而言之,即使你认为某家大公司通过破解你的代码,剽窃了一个极有“钱途”的主意,你也无力通过那种马拉松式的官司在法庭上告倒微软,除非你有足够的经济实力能在这种财力的比拼中熬出头 。而在本书中讨论的保护技术(比如代码混淆和防篡改技术)则既廉价又好用,中小型企业和商业巨头均可使用。而且如果这时你去告这家大公司的话,也可以用水印或者软件“胎记”等技术,在法庭上当场拿出代码被剽窃的真凭实据来。
最后不得不简单地提一下另一类极其擅长使用隐蔽软件的人——坏蛋们。病毒的作者已经能非常成功地利用代码混淆的技术伪装病毒的代码,使之逃避杀毒软件的检测了。值得一提的是,人们使用这些技术(如保护DVD、游戏和有线电视)时经常被黑客破解,而黑客使用这些技术(如构建恶意软件)时,人们却很难抗击。
本书内容
隐蔽软件研究的目的是发明能够尽可能迟滞对手(逆向工程分析)进度,同时又尽可能地减少因为使用该技术,而在程序执行时增加的计算开销的算法。同时也需要发明一种评估技术,使我们可以说“在程序中使用了算法A之后,相对于原先的程序,黑客攻破新程序需要多花T个单位的时间,而新程序增加的性能开销是0”,或者最低限度我们也应该可以说“相对于算法B,使用算法A保护的代码更难被攻破”。特别要强调一下,隐蔽软件研究尚处于婴儿期,虽然我们在书中会把相关的保护算法和评估算法全都介绍给大家,但是这门艺术的现状却还并不理想(到时候你可不能太失望啊)。
在本书中,我们试图把当前所有有关隐蔽软件的研究成果组织起来系统化地介绍给读者。我们力争每章内容涵盖一种技术,并描述这一技术的应用领域以及目前可用的算法。第1章将给出隐蔽软件这个领域的一些基本概念;第2章用对抗性演示的模式介绍黑客逆向分析软件时常用的工具和技巧,然后针对这些工具和技巧介绍如何防范黑客的攻击;第3章详细讲述黑客和软件保护方用于分析计算机程序的技术;第4章、第5章和第6章分别介绍与代码混淆有关的算法;第7章介绍与防篡改技术相关的算法;第8章和第9章分别介绍与水印相关的算法;第10章介绍与软件“胎记”相关的算法;第11章讲述基于硬件设备的软件保护技术。
如果你是位企业管理人员,只是对隐蔽软件的研究现状和这些技术怎么应用到你的项目中感兴趣,那么只要阅读第1章和第2章就够了。如果你是位拥有编译器设计背景的研究人员,那么建议直接跳到第3章开始阅读。但是之后的章节还是最好顺序阅读。这是因为……呃,还是举个例子吧,介绍水印技术的章节中会用到在代码混淆章节中介绍的知识。当然在本书撰写过程中,我们还是尽量使各章内容都能独立成章的,所以(如果你拥有一些背景知识)偶尔跳过那么一两章也未尝不可。如果你是一位工程师,想要使用有关技术加固你的软件,那么强烈建议你仔仔细细地阅读第3章的所有内容,如果有条件的话,还应该再搞几本编译原理方面的教材恶补一下“程序静态分析”的知识。然后你就可以随意跳到感兴趣的章节去阅读了。如果你是名大学生,把本书作为一门课程的教材来阅读,那么就应该一页一页地完整阅读本书,期末别忘了做好复习。
希望本书能够做到两件事情。首先,希望能向你,亲爱的读者,证明代码混淆、软件水印、软件“胎记”和防篡改等技术里有大量妙不可言的想法,值得你花点时间去学习,而且这些技术也可以用来保护软件。其次,希望本书能把本领域内当前所有有用的信息汇集在一起,从而为隐蔽软件的深入研究提供一个良好的起点。
Christian Collberg和Jasvir Nagra
2009年2月2日(土拨鼠日)
P.S.实际上写作这本书还有第三个目的。要是在阅读本书时,你突然灵光闪现,冒出一个绝妙的主意,进而激发了你投身于隐蔽软件研究的雄心壮志,那么,亲爱的读者,我这第三个目的就算是达到了。请把你的新算法告诉我们,我们将把它加到本书的下一版里!