近日,卡巴斯基實(shí)驗(yàn)室反惡意軟件專家表示,經(jīng)過對Duqu進(jìn)行不懈地調(diào)查,發(fā)現(xiàn)了更多關(guān)于此木馬的細(xì)節(jié)信息和其復(fù)雜的工作原理,該惡意程序之所以如此受到關(guān)注,是因?yàn)樗且环N新型的蠕蟲,同去年著名的Stuxnet蠕蟲有相似之處。
代碼實(shí)現(xiàn)Duqu的框架有幾個鮮明的特性:
一切都被封裝成對象
函數(shù)表是直接放在類的實(shí)例,運(yùn)行后可以修改
實(shí)用工具類(鏈表,哈希)和用戶編寫的代碼之間的沒有區(qū)別
對象使用的方法調(diào)用,延遲執(zhí)行隊列和事件驅(qū)動的回調(diào)
沒有運(yùn)行時庫函數(shù)的引用,而是用來代替本地Windows API
對象
所有的對象都是某個類的實(shí)例,確定了60類。每個對象的構(gòu)造“構(gòu)造”函數(shù)分配內(nèi)存,在功能表填寫,并初始化成員。

每個對象的布局取決于它的類。有些類似乎有二進(jìn)制兼容的功能表,但沒有任何跡象表明他們有共同的父類(如在其他面向?qū)ο笳Z言)。此外,功能表的位置不是固定不變的:一些班級有偏移量為0的實(shí)例,但有些不。

對象被銷毀由相應(yīng)的“析構(gòu)函數(shù)”功能。這些功能通常銷毀所有成員字段和無任何使用的內(nèi)存引用的對象。

成員函數(shù)可以被引用的對象的函數(shù)表(如C + +中的“虛擬”功能),或者他們可以直接調(diào)用。在大多數(shù)面向?qū)ο蟮恼Z言中,成員函數(shù)收到“這個”參數(shù),引用的實(shí)例的對象,是一個調(diào)用約定定義的參數(shù)的位置 – 無論是在寄存器中,或在堆棧。這是不是為Duqu框架類的情況下 – 他們可以接受任何登記冊或“這個”參數(shù)在棧。
事件驅(qū)動的框架
對象的布局和實(shí)施在Duqu框架是絕對不是C + +編寫的木馬程序。
有特殊對象實(shí)施的事件驅(qū)動模型
事件對象,根據(jù)本地Windows API的手柄
線程上下文對象舉行的事件和延遲執(zhí)行隊列列表
與事件的回調(diào)對象
事件監(jiān)控器,每個監(jiān)控事件的線程上下文中創(chuàng)建并執(zhí)行回調(diào)對象
線程上下文存儲管理活動線程的列表,并提供每線程上下文對象的訪問
事件驅(qū)動模型類似于C和函數(shù)傳遞功能,但沒有任何語言直接引用的代碼,它看起來像與已知的Objective C編譯器編譯。

每個線程上下文對象可以啟動“主回路”,查找和處理名單中的新項(xiàng)目。大多數(shù)的Duqu代碼遵循相同的原則:創(chuàng)建一個對象,幾個回調(diào)綁定到內(nèi)部或外部事件,并返回?;卣{(diào)處理程序,然后執(zhí)行每個線程的上下文內(nèi)創(chuàng)建事件監(jiān)視器對象。
這是一個未知的編程語言編寫的Duqu框架。
和一般的Duqu不同,它不是C + +,它也不是微軟的Visual編譯的C + + 。
鑒于的Duqu項(xiàng)目的規(guī)模,創(chuàng)建該木馬的一定是一個具備特定專業(yè)編程能力的人或團(tuán)隊所為。
神秘的編程語言,明確不是C + +,C,JAVA,Python。
相比Stuxnet(MSVC + +),這是特殊性定義的的Duqu框架之一。
更多點(diǎn)擊卡巴斯基實(shí)驗(yàn)室專家Igor Soumenkov發(fā)表的一篇文章
本文編寫:站長百科;轉(zhuǎn)載時請注明來源 (編輯:樹葉)
-
廣告合作
-
QQ群號:4114653