在本章中在旱,我們將介紹靜態(tài)惡意軟件分析的基礎(chǔ)知識偷线。靜態(tài)分析通過分析程序執(zhí)行文件反匯編代碼、圖形圖像沽甥、可打印字符串,和其他磁盤資源声邦。它指的是不實際運(yùn)行程序的逆向工程。雖然靜態(tài)分析技術(shù)有其缺點摆舟,但它們可以幫助我們了解各種各樣的惡意軟件亥曹。通過仔細(xì)的逆向工程邓了,您將能夠更好地理解惡意程序二進(jìn)制文件在攻擊者占領(lǐng)目標(biāo)后所帶來的好處,以及攻擊者可以隱藏并繼續(xù)攻擊受感染的機(jī)器的方法媳瞪。您將看到骗炉,本章結(jié)合了描述和示例。每個部分介紹了一種靜態(tài)分析技術(shù)蛇受,然后說明了它在實際分析中的應(yīng)用句葵。
在本章的開始,我將描述大多數(shù)Windows程序使用的可移植可執(zhí)行文件格式兢仰,然后研究如何使用流行的Python庫pefile來剖析實際的惡意軟件二進(jìn)制文件乍丈。然后描述import分析、圖形圖像分析和字符串分析等技術(shù)把将。在所有情況下轻专,我將向您展示如何使用開放源碼工具將分析技術(shù)應(yīng)用于實際惡意軟件。最后察蹲,在本章的最后请垛,我將介紹惡意軟件給惡意軟件分析人員帶來的困難,并討論一些減輕這些問題的方法洽议。
您將在本書目錄/ch1下的數(shù)據(jù)中找到本章示例中使用的惡意軟件示例宗收。為了演示本章討論的技術(shù),我們使用ircbot.exe绞铃,一個為實驗使用而創(chuàng)建的互聯(lián)網(wǎng)中繼聊天(IRC)機(jī)器人镜雨,作為在野外常見的惡意軟件的一個例子。因此儿捧,當(dāng)連接到IRC服務(wù)器時荚坞,程序被設(shè)計成駐留在目標(biāo)計算機(jī)上。ircbot.exe抓住一個目標(biāo)后,攻擊者可以通過IRC控制目標(biāo)計算機(jī),允許他們采取行動,如打開網(wǎng)絡(luò)攝像頭捕獲和偷偷地提取目標(biāo)的物理位置的視頻,把桌面的截圖,從目標(biāo)機(jī)器中提取文件,等等菲盾。在本章中颓影,我將演示靜態(tài)分析技術(shù)如何揭示這種惡意軟件的功能。
一懒鉴、Microsoft Windows可移植可執(zhí)行格式
要執(zhí)行靜態(tài)惡意軟件分析诡挂,您需要了解Windows PE格式,它描述了現(xiàn)代Windows程序文件的結(jié)構(gòu)临谱,如.exe璃俗、.dll和.sys文件,并定義了它們存儲數(shù)據(jù)的方式悉默。PE文件包含x86指令城豁、圖像和文本等數(shù)據(jù),以及程序運(yùn)行所需的元數(shù)據(jù)抄课。
PE格式最初的設(shè)計目的如下:
告訴Windows如何將程序加載到內(nèi)存中PE格式描述了文件的哪些塊應(yīng)該加載到內(nèi)存中唱星,以及在哪里加載雳旅。它還告訴您在Microsoft Windows Portable可執(zhí)行文件格式中執(zhí)行靜態(tài)惡意軟件分析時,需要了解Windows PE格式间聊,該格式描述了現(xiàn)代Windows程序文件的結(jié)構(gòu)攒盈,如.exe、.dll和.sys文件哎榴,并定義了它們存儲數(shù)據(jù)的方式型豁。PE文件包含x86指令、圖像和文本等數(shù)據(jù)叹话,以及程序運(yùn)行所需的元數(shù)據(jù)偷遗。
PE格式最初的設(shè)計目的如下:
告訴Windows如何將程序加載到內(nèi)存中PE格式描述了文件的哪些塊應(yīng)該加載到內(nèi)存中,以及在哪里加載驼壶。它還告訴您在程序代碼窗口的什么位置應(yīng)該啟動程序的執(zhí)行氏豌,以及應(yīng)該將哪些動態(tài)鏈接的代碼庫加載到內(nèi)存中。
提供正在運(yùn)行的程序在執(zhí)行過程中可能使用的媒體(或資源)热凹。這些資源可以包括字符串泵喘,如GUI對話框或控制臺輸出中的字符,以及圖像或視頻般妙。
提供安全數(shù)據(jù)(如數(shù)字代碼簽名)Windows使用此類安全數(shù)據(jù)來確保代碼來自可信源纪铺。
PE格式利用圖1-1中所示的一系列構(gòu)造完成了所有這些。
如圖所示碟渺,PE格式包含一系列頭文件鲜锚,這些頭文件告訴操作系統(tǒng)如何將程序加載到內(nèi)存中。它還包括一系列包含實際程序數(shù)據(jù)的部分苫拍。Windows將這些部分加載到內(nèi)存中芜繁,使它們的內(nèi)存偏移量與它們在磁盤上出現(xiàn)的位置相對應(yīng)。讓我們從PE頭開始更詳細(xì)地研究這個文件結(jié)構(gòu)绒极。我們將跳過對DOS頭的討論骏令,它是上世紀(jì)80年代微軟DOS操作系統(tǒng)的遺留物,只是出于兼容性的原因才出現(xiàn)垄提。
1.1PE頭
顯示在圖1 - 1的底部,在DOS頭?PE頭?,它定義了程序的一般屬性,如二進(jìn)制代碼,圖片,壓縮數(shù)據(jù),和其他程序?qū)傩岳拼K€告訴我們程序是為32位系統(tǒng)設(shè)計的還是為64位系統(tǒng)設(shè)計的。PE頭為惡意軟件分析人員提供了基本但有用的上下文信息铡俐。例如凰兑,頭文件包含一個時間戳字段,可以泄露惡意軟件作者編譯文件的時間审丘。當(dāng)惡意軟件作者忘記用偽值替換該字段時吏够,就會發(fā)生這種情況,而他們經(jīng)常這樣做。
1.2可選的頭
可選頭?實際上是無處不在的在今天的PE可執(zhí)行程序,相反其名稿饰。它定義了PE文件中程序入口點的位置,PE文件引用了程序加載后運(yùn)行的第一條指令露泊。它還定義了Windows在加載PE文件喉镰、Windows子系統(tǒng)、程序目標(biāo)(如Windows GUI或Windows命令行)和有關(guān)程序的其他高級細(xì)節(jié)時加載到內(nèi)存中的數(shù)據(jù)的大小惭笑。這個頭文件中的信息對逆向工程師來說是無價的侣姆,因為程序的入口點告訴他們從哪里開始逆向工程。
1.3節(jié)標(biāo)頭
節(jié)標(biāo)題?描述PE文件中包含的數(shù)據(jù)段沉噩。PE文件中的一個部分是一組數(shù)據(jù)捺宗,當(dāng)操作系統(tǒng)加載一個程序時,這些數(shù)據(jù)將被映射到內(nèi)存中川蒙,或者包含有關(guān)如何將程序加載到內(nèi)存中的指令蚜厉。換句話說,節(jié)是磁盤上的字節(jié)序列畜眨,它要么成為內(nèi)存中連續(xù)的字節(jié)字符串昼牛,要么通知操作系統(tǒng)加載過程的某個方面。
節(jié)標(biāo)頭還告訴Windows應(yīng)該授予節(jié)哪些權(quán)限康聂,比如程序在執(zhí)行時是否應(yīng)該可讀贰健、可寫或可執(zhí)行。例如恬汁,包含x86代碼的.text部分通常被標(biāo)記為可讀和可執(zhí)行的伶椿,但不可寫,以防止程序代碼在執(zhí)行過程中意外修改自身氓侧。
圖1-1描述了一些部分脊另,如.text和.rsrc。當(dāng)執(zhí)行PE文件時甘苍,這些將被映射到內(nèi)存中尝蠕。其他特殊部分,如.reloc部分载庭,沒有映射到內(nèi)存中看彼。我們也將討論這些部分。讓我們回顧一下圖1-1所示的部分囚聚。
(1).text部分
每個PE程序的節(jié)標(biāo)頭中至少包含一個x86代碼段靖榕,該代碼段標(biāo)為可執(zhí)行;這些部分幾乎總是.text?命名。在第2章執(zhí)行程序反匯編和逆向工程時顽铸,我們將在.text小節(jié)中分解數(shù)據(jù)茁计。
(2).idata部分
?.idata部分,也稱為進(jìn)口,包含導(dǎo)入地址表(IAT),列出了動態(tài)鏈接庫及其功能。IAT是最重要的PE結(jié)構(gòu)之一谓松,當(dāng)最初接近PE二進(jìn)制文件進(jìn)行分析時星压,需要檢查它践剂,因為它揭示了程序所進(jìn)行的庫調(diào)用,而這些調(diào)用反過來又可能泄露惡意軟件的高級功能娜膘。
(3)data部分
PE文件中的數(shù)據(jù)部分可以包括.rsrc逊脯、.data和.rdata等部分,它們存儲程序使用的鼠標(biāo)光標(biāo)圖像竣贪、按鈕皮膚军洼、音頻和其他媒體等項。例如,.rsrc部分?在圖1 - 1包含可打印字符串,一個程序使用呈現(xiàn)文本字符串演怎。
rsrc (resources)部分中的信息對惡意軟件分析人員非常重要匕争,因為通過檢查PE文件中的可打印字符串、圖形圖像和其他資產(chǎn)爷耀,他們可以獲得關(guān)于文件功能的重要線索甘桑。第7頁“檢查惡意圖片”,您將學(xué)習(xí)如何使用icoutils工具包(包括icotool和wrestool)從惡意二進(jìn)制文件的資源部分提取圖形圖片歹叮。然后扇住,在第8頁的“檢查惡意軟件字符串”中,您將學(xué)習(xí)如何從惡意軟件資源部分提取可打印的字符串盗胀。
(4).reloc部分
PE二進(jìn)制文件的代碼不是位置獨(dú)立的艘蹋,這意味著如果它從預(yù)期的內(nèi)存位置移動到新的內(nèi)存位置,它將不能正確執(zhí)行票灰。.reloc部分?被允許在這個代碼不打破女阀。它告訴Windows操作系統(tǒng),如果已經(jīng)移動了PE文件的代碼屑迂,則轉(zhuǎn)換PE文件中的內(nèi)存地址浸策,以便代碼仍然正確運(yùn)行。這些轉(zhuǎn)換通常涉及從內(nèi)存地址中添加或減去偏移量惹盼。
雖然PE文件的庸汗。reloc部分可能包含了你想要在惡意軟件分析中使用的信息,但在本書中我們不會進(jìn)一步討論它手报,因為我們的重點是將機(jī)器學(xué)習(xí)和數(shù)據(jù)分析應(yīng)用到惡意軟件上蚯舱,而不是做那種需要尋找重定位的核心逆向工程。
二掩蛤、使用pefile剖析PE格式
由Ero Carerra編寫和維護(hù)的pefile Python模塊已經(jīng)成為剖析PE文件的行業(yè)標(biāo)準(zhǔn)惡意軟件分析庫枉昏。在本節(jié)中,我將向您展示如何使用pefile來剖析ircbot.exe揍鸟。在目錄中可以找到本書附帶的虛擬機(jī)上的ircbot.exe文件兄裂。
~/malware_data_science/ch1/data.?
清單1-1假設(shè)ircbot.exe位于當(dāng)前工作目錄中。
輸入以下命令安裝pefile庫,以便我們可以在Python中導(dǎo)入它:
$?pip install pefile
現(xiàn)在晰奖,使用清單1-1中的命令啟動Python谈撒,導(dǎo)入pefile模塊,然后使用pefile打開并解析PE文件ircbot.exe匾南。
$?python
>>>?import pefile
>>>?pe = pefile.PE("ircbot.exe")
清單1-1:加載pefile模塊并解析PE文件(ircbot.exe)
我們實例化pefile港华。是PE模塊實現(xiàn)的核心類。它解析PE文件午衰,以便我們可以檢查它們的屬性。通過調(diào)用PE構(gòu)造函數(shù)冒萄,我們加載并解析指定的PE文件臊岸,在本例中是ircbot.exe。現(xiàn)在已經(jīng)加載并解析了文件帅戒,運(yùn)行清單1-2中的代碼從ircbot.exe的PE字段中提取信息。
# based on Ero Carrera's example code (pefile library author)
for section in pe.sections:
??print (section.Name, hex(section.VirtualAddress),
????hex(section.Misc_VirtualSize), section.SizeOfRawData )
清單1-2:遍歷PE文件的各個部分并打印有關(guān)它們的信息
清單1-3顯示了輸出逻住。
('.text\x00\x00\x00',??'0x1000',??'0x32830',??207360)
('.rdata\x00\x00', '0x34000', '0x427a', 17408)
('.data\x00\x00\x00', '0x39000', '0x5cff8', 10752)
('.idata\x00\x00', '0x96000', '0xbb0', 3072)
('.reloc\x00\x00', '0x97000', '0x211d', 8704)
清單1-3:使用Python的pefile模塊從ircbot.exe中提取節(jié)數(shù)據(jù)
如清單1-3所示迎献,我們從PE文件的五個不同部分提取了數(shù)據(jù):.text、.rdata吁恍、.data、.idata和.reloc冀瓦。輸出以五個元組的形式給出,每個PE段對應(yīng)一個元組翼闽。每一行的第一個條目標(biāo)識PE部分。(您可以忽略\x00空字節(jié)序列感局,它們只是c樣式的空字符串終止符尼啡。)其余字段告訴我們,一旦將每個部分加載到內(nèi)存中询微,它的內(nèi)存利用率將是多少玄叠,以及一旦加載,它將在內(nèi)存中的何處被找到拓提。
例如,0 x1000?是虛擬內(nèi)存地址,這些部分將被加載读恃。可以將其視為節(jié)的基本內(nèi)存地址。0 x32830?在虛擬字段指定大小的內(nèi)存數(shù)量一旦加載所需的部分寺惫。207360年第三個字段?代表了部分的數(shù)據(jù)量將占用的內(nèi)存塊中疹吃。
除了使用pefile解析程序的節(jié)之外,我們還可以使用它列出二進(jìn)制文件將加載的dll西雀,以及它將在這些dll中請求的函數(shù)調(diào)用萨驶。我們可以通過轉(zhuǎn)儲PE文件的IAT來實現(xiàn)這一點。清單1-4顯示了如何使用pefile轉(zhuǎn)儲ircbot.exe的IAT艇肴。
$?python
pe = pefile.PE("ircbot.exe")
for entry in pe.DIRECTORY_ENTRY_IMPORT:
????print entry.dll
????for function in entry.imports:
????????print '\t',function.name
清單1-4:從ircbot.exe中提取導(dǎo)入
清單1-4應(yīng)該產(chǎn)生如清單1-5所示的輸出(為簡潔起見腔呜,進(jìn)行了截斷)。
KERNEL32.DLL
??????GetLocalTime
??????ExitThread
??????CloseHandle
??????WriteFile
??????CreateFileA
??????ExitProcess
??????CreateProcessA
??????GetTickCount
?GetModuleFileNameA
清單1-5:ircbot的IAT內(nèi)容再悼。顯示該惡意軟件使用的庫函數(shù)
如清單1-5所示核畴,這個輸出對于惡意軟件分析很有價值,因為它列出了惡意軟件聲明和引用的豐富函數(shù)數(shù)組冲九。例如,輸出的前幾行告訴我們,惡意軟件將使用WriteFile?寫入文件,使用CreateFileA叫?打開的文件,并創(chuàng)建新的進(jìn)程使用CreateProcessA?谤草。雖然這是關(guān)于惡意軟件的基本信息,但這是更詳細(xì)了解惡意軟件行為的開始莺奸。
三丑孩、檢查惡意軟件的圖片
要了解惡意軟件是如何設(shè)計來攻擊目標(biāo)的,讓我們看看它的.rsrc部分中包含的圖標(biāo)灭贷。例如温学,惡意軟件二進(jìn)制文件常常被設(shè)計成通過偽裝成Word文檔、游戲安裝程序甚疟、PDF文件等欺騙用戶點擊它們枫浙。您還可以在惡意軟件中找到一些圖像,提示攻擊者自己感興趣的程序古拴,比如網(wǎng)絡(luò)攻擊工具和攻擊者運(yùn)行的用于遠(yuǎn)程控制受攻擊機(jī)器的程序箩帚。我甚至看到過包含圣戰(zhàn)分子桌面圖標(biāo)的二進(jìn)制文件、看起來邪惡的賽博朋克卡通人物的圖像黄痪,以及卡拉什尼科夫步槍的圖像。對于我們的樣本圖像分析是嗜,讓我們考慮一個惡意軟件樣本鹅搪,安全公司曼迪昂特(Mandiant)被認(rèn)定是由一個中國政府支持的黑客組織設(shè)計的丽柿。您可以在本章的數(shù)據(jù)目錄中找到這個示例惡意軟件,名為fakepdfmalware.exe馁筐。本示例使用網(wǎng)絡(luò)攻擊工具和攻擊者運(yùn)行的程序來遠(yuǎn)程控制受攻擊的機(jī)器敏沉。我甚至看到過包含圣戰(zhàn)分子桌面圖標(biāo)的二進(jìn)制文件盟迟、看起來邪惡的賽博朋克卡通人物的圖像潦闲,以及卡拉什尼科夫步槍的圖像矫钓。對于我們的樣本圖像分析新娜,讓我們考慮一個惡意軟件樣本概龄,安全公司曼迪昂特(Mandiant)被認(rèn)定是由一個中國政府支持的黑客組織設(shè)計的私杜。您可以在本章的數(shù)據(jù)目錄中找到這個示例惡意軟件救欧,名為fakepdfmalware.exe笆怠。本示例使用adobeacrobat圖標(biāo)欺騙用戶蹬刷,讓他們以為它是adobeacrobat文檔,而實際上它是一個惡意的PE可執(zhí)行文件泡态。
在使用Linux命令行工具wrool從fakepdfmalware.exe二進(jìn)制文件中提取圖像之前某弦,首先需要創(chuàng)建一個目錄來保存將要提取的圖像刀崖。清單1-6顯示了如何完成這些操作。
$?mkdir images
$?wrestool –x fakepdfmalware.exe –output=images
$?icotool –x –o images images/*.ico
清單1-6:從惡意軟件樣本中提取圖像的Shell命令
我們首先使用mkdir映像創(chuàng)建一個目錄來保存提取的映像馆截。接下來,我們使用wrestool提取圖像資源(- x)從fakepdfmalware-exe到 /image,然后使用icotool提取(- x)和轉(zhuǎn)換(o) Adobe ico圖標(biāo)格式中的任何資源到png圖形以便我們使用標(biāo)準(zhǔn)的圖像查看器工具可以查看它們蜡娶。您的系統(tǒng)上沒有安裝wrestool窖张,您可以在http://www.nongnu.org/icoutils/上下載宿接。
您已經(jīng)使用wrestool將目標(biāo)可執(zhí)行文件中的圖像轉(zhuǎn)換為PNG格式睦霎,您應(yīng)該可以在您喜歡的圖像查看器中打開它們副女,并在各種分辨率下看到adobeacrobat圖標(biāo)碑幅。正如我在這里的示例所演示的沟涨,從PE文件中提取圖像和圖標(biāo)相對簡單异吻,并且可以快速顯示有關(guān)惡意軟件二進(jìn)制文件的有趣和有用信息涧黄。類似地笋妥,我們可以很容易地從惡意軟件中提取可打印字符串以獲取更多信息,我們接下來將這樣做酵颁。
四、檢查惡意軟件的字符串
字符串是程序二進(jìn)制中可打印字符的序列幽污。惡意軟件分析人員通常依賴惡意樣本中的字符串來快速了解其中可能發(fā)生的情況距误。這些字符串通常包含HTTP和FTP命令准潭,這些命令下載web頁面和文件刑然,IP地址和主機(jī)名告訴您惡意軟件連接到什么地址泼掠,等等择镇。有時沐鼠,即使是用來編寫字符串的語言也能提示惡意軟件二進(jìn)制文件的來源,盡管這可能是偽造的乘盖。您甚至可能發(fā)現(xiàn)字符串中的文本解釋了惡意二進(jìn)制文件的目的订框。
字符串還可以顯示有關(guān)二進(jìn)制文件的更多技術(shù)信息穿扳。例如茫死,您可能會發(fā)現(xiàn)有關(guān)用于創(chuàng)建二進(jìn)制文件的編譯器履羞、二進(jìn)制文件使用的編程語言、嵌入式腳本或HTML等信息被环。盡管惡意軟件作者可以混淆筛欢、加密和壓縮所有這些跟蹤悴能,但即使是高級惡意軟件作者也常常會留下至少一些暴露的跟蹤雳灾,這使得在分析惡意軟件時檢查字符串轉(zhuǎn)儲尤為重要谎亩。
五夫凸、使用字符串程序
查看文件中所有字符串的標(biāo)準(zhǔn)方法是使用命令行工具字符串夭拌,它使用以下語法:
$?strings?filepath?| less
該命令將文件中的所有字符串逐行打印到終端。最后添加|少阻止字符串只是滾動整個終端镶骗。默認(rèn)情況下,strings命令查找所有最小長度為4字節(jié)的可打印字符串鼎姊,但是您可以設(shè)置不同的最小長度并更改各種其他參數(shù)慰于,如commands manual頁面中列出的那樣婆赠。我建議只使用默認(rèn)的最小字符串長度4,但是您可以使用-n選項更改最小字符串長度战授。例如页藻,string -n 10 filepath只提取長度最小為10字節(jié)的字符串桨嫁。
(1)分析字符串輸出
現(xiàn)在我們輸出了一個惡意軟件程序的可打印字符串,挑戰(zhàn)是要理解這些字符串的含義份帐。例如璃吧,假設(shè)我們將字符串輸出到ircbotstring.txt文件中,該文件用于ircbot.exe废境,我們在本章前面使用pefile庫對其進(jìn)行了研究畜挨,如下所示:
$?strings ircbot.exe > ircbotstring.txt
txt的內(nèi)容包含數(shù)千行文本,但其中一些行應(yīng)該突出顯示出來噩凹。例如驮宴,清單1-7顯示了從字符串輸出中提取的一串以單詞DOWNLOAD開頭的行。
[DOWNLOAD]: Bad URL, or DNS Error: %s.
[DOWNLOAD]: Update failed: Error executing file: %s.
[DOWNLOAD]: Downloaded %.1fKB to %s @ %.1fKB/sec. Updating.
[DOWNLOAD]: Opened: %s.
--snip--
[DOWNLOAD]: Downloaded %.1f KB to %s @ %.1f KB/sec.
[DOWNLOAD]: CRC Failed (%d != %d).
[DOWNLOAD]: Filesize is incorrect: (%d != %d).
[DOWNLOAD]: Update: %s (%dKB transferred).
[DOWNLOAD]: File download: %s (%dKB transferred).
[DOWNLOAD]: Couldn't open file: %s
清單1-7:顯示惡意軟件可以將攻擊者指定的文件下載到目標(biāo)計算機(jī)的字符串輸出
這些行表示ircbot.exe將嘗試將攻擊者指定的文件下載到目標(biāo)計算機(jī)上纹安。
我們來分析另一個可帽。清單1-8所示的字符串轉(zhuǎn)儲表明ircbot.exe可以充當(dāng)web服務(wù)器扬虚,偵聽目標(biāo)機(jī)器上來自攻擊者的連接堪置。
??GET
??HTTP/1.0 200 OK
???Server: myBot
???Cache-Control: no-cache,no-store,max-age=0
???pragma: no-cache
???Content-Type: %s
???Content-Length: %i
???Accept-Ranges: bytes
???Date: %s %s GMT
???Last-Modified: %s %s GMT
???Expires: %s %s GMT
???Connection: close
???HTTP/1.0 200 OK
??Server: myBot
???Cache-Control: no-cache,no-store,max-age=0
???pragma: no-cache
???Content-Type: %s
???Accept-Ranges: bytes
Date: %s %s GMT
???Last-Modified: %s %s GMT
???Expires: %s %s GMT
???Connection: close
???HH:mm:ss
???ddd, dd MMM yyyy
???application/octet-stream
???text/html
清單1-8:字符串輸出,顯示惡意軟件有一個HTTP服務(wù)器告私,攻擊者可以連接到該服務(wù)器
清單1-8顯示了ircbot.exe用于實現(xiàn)HTTP服務(wù)器的各種HTTP樣板文件。很可能這個HTTP服務(wù)器允許攻擊者通過HTTP連接到目標(biāo)機(jī)器,從而發(fā)出命令,例如獲取受害者桌面的屏幕快照并將其發(fā)送回攻擊者。我們在清單中看到了HTTP功能的證據(jù)。例如,GET方法?請求數(shù)據(jù)從一個網(wǎng)絡(luò)資源。線HTTP / 1.0 200 OK?是HTTP字符串返回200狀態(tài)碼,表明一切順利與HTTP網(wǎng)絡(luò)交易,和服務(wù)器:myBot?表明myBot HTTP服務(wù)器的名稱,ircbot.exe有一個內(nèi)置的HTTP服務(wù)器。
所有這些信息都有助于理解和阻止特定的惡意軟件樣本或惡意活動。例如,知道惡意軟件樣本有一個HTTP服務(wù)器眨唬,當(dāng)您連接到它時岭妖,它會輸出特定的字符串,這樣您就可以掃描您的網(wǎng)絡(luò)來識別受感染的主機(jī)。
總結(jié)
在本章中,您大致了解了靜態(tài)惡意軟件分析旦袋,其中包括在不實際運(yùn)行的情況下檢查惡意軟件程序搔课。您了解了定義Windows .exe和.dll文件的PE文件格式,還了解了如何使用Python庫pefile剖析實際的惡意軟件ircbot.exe二進(jìn)制文件蔗牡。您還使用靜態(tài)分析技術(shù)(如圖像分析和字符串分析)從惡意軟件樣本中提取更多信息。第2章繼續(xù)討論靜態(tài)惡意軟件分析,重點分析可以從惡意軟件中恢復(fù)的匯編代碼商虐。