第192章 笨办法
  既然要暴露自己的身份,萧云飞就知道自己必然要走上了一条险路,面对神秘组织的恐怖以及m国政府的强大,萧云飞觉得,自己应该有一样属于自己的,能够保命的大杀器!
  所以,萧云飞决定编写一款无与伦比的超级病毒,他要让这款病毒具有人工智能的雏形,那么,要完成这款病毒将会是一项极为庞大的工程。
  首先,萧云飞要考虑构建这个病毒的基层数据结构,然后根据数据结构逐步丰满病毒程序本体;其次,萧云飞要考虑病毒所具有的功能;最后一点,也是最重要的步骤,如何让病毒程序具有一定的人工智能。
  基层数据结构萧云飞利用汇编语言来进行整体构架,这其中涉及到调用各种命令参数和函数群,通过在数据结构中进行全面规划,让病毒程序能够从宏观上对它将来所攻击的计算机系统进行智能判断,然后根据判断的结果收集对应的计算机系统存在的各种漏洞。
  病毒产生的破坏作用多种多样,但是萧云飞要让自己编写的病毒具有极为强悍的穿透性以及传染性,它潜伏在计算机系统中必须是安静的、安全的,它不能让人看出丝毫的异常,通过基层数据结构,它能够感染的系统要非常广泛,当然,它必须是触发式病毒,当病毒被激活时,它爆发时产生的威力必须带有恐怖的侵略功能。
  “亚当”病毒必须具备这样两种特性。
  通过基层数据结构,针对不同的计算机系统建立隐蔽通道,它要具有后门的功能,萧云飞将病毒要建立在一些常用的通信协议端口上,这样便于自己在需要的时候通过隐蔽通道进行病毒触发。
  病毒具有木马的特征,它能够在计算机系统中开放内核级后门(kernel-levelrootkits)和嗅探式后门(sniffingbackdoors),这两种方法可以让萧云飞在需要肉鸡的时候将被病毒感染的计算机迅速收拢,然后整合成自己的傀儡机。
  (ps:这两者攻击手法其实也是未来比较流行的攻击手段,有资料中曾经介绍过,不过实现没有,倒是有待高手证实……)
  当然,建立病毒的基层数据结构以及它的破坏功能要实现起来对萧云飞来讲并不困难,因为病毒的这些特征和功能在很多病毒上都有所体现。
  编写“亚当”病毒最大的麻烦,当然同样也是它最大的亮点就在于萧云飞要让病毒具备一定人工智能的特征!
  计算机病毒并不等同于真正的生物病毒,一个计算机病毒产生了变种,或者它的代码在传播的过程中有了一定的改变,这也不能说明它们具有了生命的特征。
  不管你是用何种语言编写计算机程序,它们的最终目的都是要让计算机能够识别并且执行,计算机病毒同样也要满足这个条件,然而计算机能够识别的数字只有0和1,再怎么复杂的程序在计算机中运行,它都会经过计算机的运算将其转化成计算机能够识别的数字。
  基本上所有病毒的适应环境和发生作用的功能部分在电脑数据环境自身作用下基本是不变的,就拿这次轰动全球的“圣诞礼物”来讲,这个病毒虽然具有变异能力,但是它同样也只是在一定范围的关键部分进行变异,它的这种变异却被包含在了一段进化代码中,萧云飞正是因为窥破了这段进化代码,所以他才能顺利编写出专杀程序。
  虽然“圣诞礼物”同样具有变异和进化的功能,但是以萧云飞的评价,它并不能算作具有智能化和自筛选能力的生命体。
  什么样的计算机病毒才能具有“生命进化与生存特征”?达尔文的《物种起源》其实已经将答案告诉了我们。
  在各种恶劣的环境中以及外在的人为因素,有的生物被自然界所淘汰,而有的生物却产生进化从而适应了变化的环境,它们通过自身的变化不断让自己去适应变化的环境,环境改变,生物也跟随环境而改变。
  总之,随着生存的环境条件的改变,生活在环境中的生物就必须通过自身的进化随时产生进化,而进化的目的就是要让自己拥有生存的特征。
  这就是生物的“生命进化与生存特征”。
  当然,大胡子老达的进化论并不包括计算机病毒,因为那个时候,他根本没有见到过计算机这种高科技玩意。
  计算机病毒要具有“生命进化与生存特征”,那么它应该在让程序体内的函数群和数据段表现内容的共同变异能力,这种整体性的变异能力要实现起来是极为困难的,到目前为止,没有听说有哪种病毒可以让自己的程序整体发生变异的!
  当然,病毒程序如果具有吸收其它程序中高明的函数段和数据段处理能力,并且它能够在电脑内部存在多个不被用户感知的运行主体,主体程序要有一定的感知能力,病毒针对自己所处的计算机系统自主进行改进和变异,这样的计算机病毒才有可能在传播的同时迅速扩展种类,即便有杀毒软件,它也能够长期生存下去。
  计算机的世界里已经出现过利用生物遗传算法破解目标计算机数据的病毒,这种将遗传算法用于病毒程序的方法其实就是人工智能在计算机病毒方面的一个分支应用。
  这种遗传算法,其实就是达尔文的生物进化论,利用遗传算法编写的计算机病毒的与生物进化论有着非常相似的地方。
  如果,通过杀毒软件或者我们人为的查杀,在我们消灭计算机病毒之前,它们就已经淘汰了有缺陷或者会给自身带来危险的代码,杀毒软件根本就无法发现它们。
  如果,计算机病毒能够搜索网络上或者被感染计算机系统中的其它病毒,并且它能够与其他病毒交换代码,从而繁殖出新的变种,这样的病毒就可以被称之为“病毒之王”!
  (ps:学术问题,纯属瞎掰,请勿深究!)
  不得不承认,萧云飞的构想非常庞大,要是放在以前,尽管萧云飞对病毒的研究已经登峰造极,但是要编写出这样一款具有人工智能雏形的病毒程序,那时候的他也绝对不可能完成。
  但是现在的情况却大不相同,萧云飞对人工智能的领悟甚至已经超越了国内一些知名的专家,况且人工智能实验室服务器上如此庞大而详细的科研资料、程序的代码、实验的数据,萧云飞要想成功编写一款具有一定人工智能的病毒程序,并不是就完全没有把握。
  当然,萧云飞只是要尽量让“亚当”具有人工智能,毕竟以现如今科学的局限性和萧云飞现如今对人工智能和计算机程序的糅合能力,他也根本没有可能编写出真正意义上的人工智能病毒!
  虚拟电子智能生命经过这么长时间的研究,z国、m国以及神秘组织投入研究的人力、物力、财力想必是非常庞大的,那么多的科学家都还没能将人工智能的电子生命研究出来,萧云飞就算再天才也无法凭借自己的能力创造出一款真正意义上具有人工智能的病毒程序。
  上帝用泥土造的第一个人,取其名为“亚当”。
  萧云飞创造的第一个用于投放到网络世界的病毒,他也将其命名为“亚当”,这没什么特别的寓意,萧云飞并没有认为自己就是上帝的意思,他只是突然想到《圣经》中这个故事出现的这个人而已,所以他把自己编写的病毒取名为“亚当”。
  只不过,上帝造出来的亚当是善良的,纯洁无污染的用泥巴创造的产物,萧云飞创造的“亚当”则是邪恶的,还没出生就注定它是黑暗的破坏力极强的将人工智能用于程序的计算机病毒!
  (ps:废话两句,看这本书的朋友中应该没有信基督教的吧?我们这里有个信基督教的人已经快疯了,家里的事情都不管,奶奶的,老说世界末日就要到了,天天祷告,她以为信上帝就能得永生?
  现在都改“信春哥,得永生”了!我给她这么说,她还迷茫的问我“春哥”是谁,我心肠一软,只好说“春哥”是上帝的结拜兄弟,她还一本正经的解释:“上帝没有结拜兄弟啊……上帝没有结拜兄弟啊!他有个儿子,名字叫耶稣!”
  唉,新时代的祥林嫂诞生了,我彻底无语,愿春哥保佑她,阿门……
  如果看这本小说的朋友既有上帝的信徒,也有春哥的粉丝,你们可以对我表示不满,你们可以来揍我,但是事先申明,请不要打脸,虽然我不是靠脸混饭吃,但是我还是对我这张脸比较在乎滴……)
  如果这个病毒编写完成,萧云飞顺利将其投放到了网络上,当它传播到了网络世界的每一个角落,就算有一天事情败露,大家都撕破脸皮的时候,萧云飞也有一定的谈判资本。
  萧云飞很快平复了自己的激动的心情,想到就做,这就是萧云飞的性格,为了完成这项浩大的工程,萧云飞再一次义无反顾地投身到编写病毒的工作中去了。
  萧云飞知道自己的时间很紧迫,白天的时候,他依然会去上课,跟随教授们做实验,利用助理教授的身份,萧云飞根据自己在编写病毒时候遇到的问题向其他教授虚心请教,晚上的时候,萧云飞则在计算机前不知疲倦的忙碌着,包括吃饭、上厕所等等,萧云飞一天的休息时间不会超过四个小时!
  萧云飞就像一只被拧紧发条的时钟,不让自己有一刻停下来的机会!
  编写“亚当”病毒的工作萧云飞主要的精力放在两个方面,一个是编写病毒的基层数据结构的整体构架,这是病毒的基建工作,容不得半点马虎;另一个方面就是病毒的函数集和数据处理的进化能力,也就是人工智能的雏形,这需要精雕细琢,通过无数次失败,然后经过不断的总结才有可能能完成的事情。
  至于要实现“亚当”强大的攻击能力,这其实倒花费不了萧云飞多大的脑力,因为萧云飞掌握的病毒的攻击代码非常多,只不过要将这些病毒的攻击代码揉捏在一起显得有点繁琐而已。
  萧云飞不能让这个周期花费的时间太长,如果每天他还要做实验以及上课的话,就算每天不休息,萧云飞要想独立完成这个病毒起码也会超过半年甚至更长的时间。
  萧云飞不能等得太久,他要让自己用最短的时间编写出这个病毒!
  于是,萧云飞以身体不适的理由向学校请假三个月,在萧云飞出具了一系列通过特殊渠道得到的医疗证明后,学校的领导以及他的老师们都同意了萧云飞的假期申请。
  当然,很多人对萧云飞的身体颇为关心,作为mit最年轻的助理教授,萧云飞的“病情”也牵动着很多人的神经,所以三天两头来看望萧云飞的人更是络绎不绝,这样的情况反而弄得他根本完全没有办法工作了。
  萧云飞自己的公寓门口挂了一张“外出说明”的木牌,然后他给罗杰斯教授和帕克教授以及其他朋友发去了信息,告诉大家自己要需要静养,找了个安静的地方修养,请大家不要牵挂,如果身体好转,自己会立马返校。
  关闭了手机,萧云飞阻断了与外界的一切联系,然后萧云飞便带着装满资料的笔记本电脑外出了,找了一个安静的地方,萧云飞住了下来。
  萧云飞用了一天的时间进行大采购,然后他让自己沉静了下来,接着,他全身心地投入到病毒的研发工作中去了。
  在编写病毒程序的这段时间,除了补给食物的时候萧云飞会出门,平时萧云飞几乎没有走出房门一步!
  萧云飞本以为自己全身心地投入到病毒的编写中去,要编写出“亚当”并不会花费多长的时间,然而,在实际编写的过程中,萧云飞才真正体会到要达到自己预定的目标竟然是那么困难的事情。
  在进行“亚当”病毒的基层数据结构构建的过程中,要让病毒能够对每一种计算机系统进行判断,那么萧云飞就必须要记录下每一种系统反馈信息的特征,这就需要不停地测试,不停地记录。通过萧云飞一次又一次的测试,他不断完善着自己的创意和想法,终于,花费整整半个月的时间,萧云飞终于将病毒的基层数据结构搭建完成。
  基层数据结构完成,接下来的工作就是要向这个框架里面加入病毒程序了,当然,病毒的程序必须要包含萧云飞在之前构思的各种想法,最为关键的在于,如何让程序代码具有一定的智能。
  萧云飞通过人工智能实验室服务器的数据系统查询了大量的实验数据和用于机器人主控程序的“半智能”代码。
  为什么说萧云飞在病毒程序中加入的是“半智能”代码呢?其实人工智能实验室服务器上的数据系统中,被用在机器人身上的主控芯片其实就是半智能的,他们并没有制造真正的全智能程序代码。
  通过萧云飞的观察,虽然这些半智能代码只是让程序具备了一定的进化能力,但是它们却依然是有局限性的,比如调用的函数,比如传递的参数等等,它们并不是自动调用或者传递,它们是有规律性的,如果当别人掌握了这种规律性,那么病毒依然会被扼杀。
  萧云飞不可能创造出全智能的代码,虽然“半智能”代码具有缺陷,但是这也是目前为止可以让“亚当”具有人工智能雏形的唯一方法。
  为了避免这种“半智能”代码的缺陷,萧云飞就需要破坏这些规律性,怎么进行破坏?萧云飞想到的办法就是将不同的“半智能”代码进行融合。
  其实萧云飞的思路和加壳、加花木马程序的思路没有什么差别。
  举个简单的例子,比如我们生成了一个木马服务端,我们想让自己的木马躲避杀毒软件的查杀,很多小白朋友采用的简单方法就是对木马进行加壳或者加花指令。
  但是很多加壳的软件都被杀软列入了“黑名单”,加一次壳照样无法躲避杀毒软件的查杀,那怎么办呢?很多菜鸟朋友又会对加过壳的木马程序再进行加壳,方法以此类推。
  你或许会发现,当经过不同的加壳软件对木马进行了多次加壳之后,很多杀软程序就不能对你的木马进行查杀了,为什么会出现杀毒软件无法查杀的情况呢?原因很简单,因为木马程序的特征码被打乱了!
  小白朋友不要高兴,你不要因此就认为你学到一招保护木马的方法。
  这个经过多次加壳,杀毒软件也无法查杀的木马程序在运行的时候你可能会发现出现各种问题,它有可能无法执行,或者能够执行但是却达不到你的目的!
  这就是悲剧啊!虽然用这种方法来躲避杀毒软件的查杀比较简单,但是经过多次加壳后,你的木马程序或许就失效了!
  萧云飞将“半智能”代码进行融合要面对的就是这个问题!当“半智能”代码进行融合之后,他们的规律性或许会被打乱,但是他也要面对“半智能”代码失效的情况。
  当我们多次加壳木马后出现木马失效的情况,而我们根本对所谓的汇编语言完全不懂的时候,作为菜鸟,你会怎么办?
  我猜,很多人会换几种加壳工具慢慢进行测试吧?当木马程序既能躲过杀软又能正常运行的时候,菜鸟朋友就会很高兴了。
  当然,高手做免杀肯定不会这么干的!
  面对“半智能”程序代码,萧云飞也是一个彻头彻尾的菜鸟。所以,他也只能选择将不同的“半智能”代码不断融合,然后又不断测试的笨办法来企图达到打乱“半智能”代码的规律性!