本次所述方向为暂时订立。有可能会随着本实验室的发展有所调整。
有问题才会有发展,先看一些对代码行为的疑问。
首先,关于代码的自身行为。从指令诞生到现在,代码已经拥有很多行为。自我处理,便是代码行为中的一种。代码已经存在的自我处理的行为有自我移植(如病毒传播过程中的用自己去感染其它程序及将自己从一个地址空间搬移到另一个地址空间或从一个对象转移到另一个对象)、自我毁灭(如一个程序在运行过程中将自己删除)、自我保护(如一个软件为防盗版从而具有的对注册码验证)等等,除这些存在的行为外,代码对自己的处理会向如何往下发展?一段代码是否能自己创造另一段代码(新代码与原代码在结构、特征上相差甚大,不同于病毒生成器之类的生成行为)?代码是否能够拥有不是人为赋予的智能?代码行为是否真能脱离代码的创造者的控制?
其次,关于代码间的行为。代码行为发展到现在,已经能够互相入侵(现在大量存在),比如说钩子,注入,非授权访问其它进程空间。通过入侵,一段代码可以改变其它代码的行为(软件破解就是典型例子)。如何防范代码入侵及如何突破代码的自身防范,既是代码行为中的永恒命题,也是代码行为发展中的不变旋律。这一对立行为的发展,将会如何进行?如果真将两段不同代码放入内存,让它们大打出手,谁会是最终胜利者?
再次,关于代码的网络行为。代码的网络行为,除具有代码的自身行为和代码间行为外,还有其自身独特特性。多个对象(如电脑,路由器等)中的代码的行为与一对象中的代码的行为很显然会有很大不同。在多对象间,代码的行为主要是通过两种方式互相影响:第一种是代码有通信规则,也就是协议,通过协议相互作用;另外一种是通过试探。通信协议很好理解,这里只看代码在试探方式下的行为。对于现有的代码来说,一段代码的完成,往往标志着代码的行为、动作机械式化(因为指令已经固定)。正是由于代码的行为具有机械性的特点,所以,在多对象间,一段代码就可以通过发送一些“特征字”与解释对方返回的“状态字”来了解另一段代码,进而对对方进行影响。举个例子,网络中存在的扫描攻击就是很典型的这种代码试探行为。说到这里,不禁会问:在多对象间,代码的网络行为,将如何发展?一段代码能否像幽灵一样,可以在网络上自由传播吗?
疑问导致发展,所以,疑问便是方向。我们代码实验室的研究方向也逃不过这一命运。
研究方向:
代码的自身行为——除在现有的自身行为方面研究外,还会注重未知行为的研究。
代码间的行为——代码间的相互影响,有可能主要是在代码的突破行为与代码的保护行为。
代码的网络行为——在多对象间代码的相互影响,现在已有的各种网络安全中的代码行为都在内。