近日,卡巴斯基实验室反恶意软件专家表示,经过对Duqu进行不懈地调查,发现了更多关于此木马的细节信息和其复杂的工作原理,该恶意程序之所以如此受到关注,是因为它是一种新型的蠕虫,同去年著名的Stuxnet蠕虫有相似之处。
代码实现Duqu的框架有几个鲜明的特性:
一切都被封装成对象
函数表是直接放在类的实例,运行后可以修改
实用工具类(链表,哈希)和用户编写的代码之间的没有区别
对象使用的方法调用,延迟执行队列和事件驱动的回调
没有运行时库函数的引用,而是用来代替本地Windows API
对象
所有的对象都是某个类的实例,确定了60类。每个对象的构造“构造”函数分配内存,在功能表填写,并初始化成员。
每个对象的布局取决于它的类。有些类似乎有二进制兼容的功能表,但没有任何迹象表明他们有共同的父类(如在其他面向对象语言)。此外,功能表的位置不是固定不变的:一些班级有偏移量为0的实例,但有些不。
对象被销毁由相应的“析构函数”功能。这些功能通常销毁所有成员字段和无任何使用的内存引用的对象。
成员函数可以被引用的对象的函数表(如C + +中的“虚拟”功能),或者他们可以直接调用。在大多数面向对象的语言中,成员函数收到“这个”参数,引用的实例的对象,是一个调用约定定义的参数的位置 – 无论是在寄存器中,或在堆栈。这是不是为Duqu框架类的情况下 – 他们可以接受任何登记册或“这个”参数在栈。
事件驱动的框架
对象的布局和实施在Duqu框架是绝对不是C + +编写的木马程序。
有特殊对象实施的事件驱动模型
事件对象,根据本地Windows API的手柄
线程上下文对象举行的事件和延迟执行队列列表
与事件的回调对象
事件监控器,每个监控事件的线程上下文中创建并执行回调对象
线程上下文存储管理活动线程的列表,并提供每线程上下文对象的访问
事件驱动模型类似于C和函数传递功能,但没有任何语言直接引用的代码,它看起来像与已知的Objective C编译器编译。
每个线程上下文对象可以启动“主回路”,查找和处理名单中的新项目。大多数的Duqu代码遵循相同的原则:创建一个对象,几个回调绑定到内部或外部事件,并返回。回调处理程序,然后执行每个线程的上下文内创建事件监视器对象。
这是一个未知的编程语言编写的Duqu框架。
和一般的Duqu不同,它不是C + +,它也不是微软的Visual编译的C + + 。
鉴于的Duqu项目的规模,创建该木马的一定是一个具备特定专业编程能力的人或团队所为。
神秘的编程语言,明确不是C + +,C,JAVA,Python。
相比Stuxnet(MSVC + +),这是特殊性定义的的Duqu框架之一。
更多点击卡巴斯基实验室专家Igor Soumenkov发表的一篇文章
本文编写:站长百科;转载时请注明来源 (编辑:树叶)
-
广告合作
-
QQ群号:707632017