999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

逆向分析在電子數據取證中的應用——以“QQ密碼大劃拉”為例

2011-01-16 00:22:20羅文華
中國司法鑒定 2011年6期
關鍵詞:程序信息

羅文華

(中國刑事警察學院 計算機犯罪偵查系,遼寧 沈陽110854)

1 引言

目前,針對惡意程序的取證分析已經發展成為計算機法庭科學領域的重要組成部分。例如,進行電腦安全事件調查時,極有可能會遇到黑客所部署的惡意程序,此時就有必要鑒別出這些文件,并對其進行分析。常規方法主要是通過激活惡意程序樣本,抓取分析其網絡傳輸信息,獲知被竊取的信息內容以及信息傳輸的目的地址;或是通過架設系統監控工具,收集惡意程序引發的相關應用程序及其環境變化的信息,從而判斷其對操作系統所造成的影響。但在實踐中發現,多數情況下由于運行條件已不滿足或是其內部所設置的運行有效期限已經過期,惡意程序樣本往往無法被激活,或是改變自身行為,掩蓋惡意程序特征,應用上述方法往往無法發現有價值的信息。此種情況下,便有必要針對惡意程序進行逆向分析鑒定,從而發現相關證據或線索。

針對惡意程序進行逆向分析,是指將可執行惡意程序反匯編,通過反匯編代碼來理解其代碼功能,如各接口的數據結構等,逆向分析原程序思路,全面或重點掌握惡意程序行為,從中分析出其他方法無法發現的證據或線索。本文在介紹逆向分析相關概念、方法與工具的基礎上,結合用于偷盜QQ賬號和密碼的木馬生成器 “QQ密碼大劃拉”及其生成的木馬QQ_DYP,詳細說明查殼、脫殼、斷點設置、程序跟蹤、關鍵信息獲取等常用逆向分析方法,并力爭對一般性規律予以歸納和總結,希望能夠對惡意程序取證領域的研究起到拋磚引玉的作用。

2 軟件逆向

2.1 概念與用途

對于程序軟件而言,逆向工程歸結起來就是針對一個既沒有源代碼又沒有準確文獻資料的現成程序,嘗試恢復出它的設計和實現細節。至1990年起,逆向工程已發展成為了解程序軟件“所作所為”的一套最重要的技術和工具,在現代軟件分析中有著廣泛的用途:

2.1.1 查找惡意代碼

許多病毒和惡意代碼的探測技術使用逆向工程來理解那些繁瑣的代碼是怎樣構成和運作的。通過逆向找出可用作特征碼的可識別模式,用于驅動商業探測器和代碼掃描器。

2.1.2 發現意想不到的缺陷和錯誤

即使是設計最完美的系統也可能存在漏洞,這是由于使用的“前向工程”開發技術所固有的特點導致的。逆向工程可以幫助我們在發生致命的軟件失效前識別缺陷和錯誤。

2.1.3 查找是否使用了其他人所寫的代碼

搞清楚在應用程序的哪里使用了受保護的代碼和技術。這對于保護知識產權不被濫用是很重要的。逆向工程可用于檢測應用程序是否包含所關心的軟件單元。

2.2 分析方法

2.2.1 靜態分析

靜態分析指的是使用反匯編器或反編譯器將二進制可執行程序轉換為電子數據取證人員可以閱讀的表示形式。逆向工作通過人工閱讀和分析進行。由于電子數據取證人員無法看到程序所處理的數據以及數據的流動。靜態分析對電子數據取證人員要求較高,需要其能夠更好的理解代碼,對于程序加殼的情況,需要先執行脫殼操作,或結合動態分析才能完成逆向工作。

2.2.2 動態分析

動態分析是指將代碼轉換成易于理解的形式同時,能夠在調試器中運行代碼,并觀察其在運行現場的行為,而不需要單純的依靠靜態的閱讀轉化好的代碼。該方法可以觀察程序的內部數據以及數據對代碼流的影響,能夠提供更多的有價值信息。本文所介紹的針對惡意程序的逆向分析方法主要是基于動態分析的。

2.3 逆向工具[1]

2.3.1 系統監控工具

逆向需要各種各樣的工具來尋找、監控、研究以及剖析被逆向的程序。大多數工具都用來顯示操作系統收集到的有關應用程序及其環境的信息。由于程序與外部世界的所有聯系都需要經過操作系統,所以使用操作系統來提取這些信息。系統監控工具可以監控網絡活動、文件訪問、注冊表訪問等,常用的系統監控工具主要有API Monitor、FileMon、RegMon等。

2.3.2 反匯編器

反匯編器是以程序的可執行二進制代碼作為輸入,生成包含整個或部分程序的匯編語言代碼的程序。因為匯編語言代碼是目標語言代碼簡單的文本映射,所以這個轉化過程比較簡單,常用的反匯編工具主要有IDA Pro、W32DASM。其中IDA Pro是一款功能非常強大的反匯編器,能夠提供非常詳細的反匯編代碼,并可以為給定的函數生成流程圖,實現了逆向工作中的許多附加特性,但其價格并不便宜。

2.3.3 調試器

調試器是一種程序,它允許相關人員在程序運行的同時觀察程序。調試器的兩個最基本的特征是:設置斷點能力和代碼跟蹤能力。斷點允許用戶選擇程序中任何位置的函數或代碼行,一旦程序運行到這一行,它就指示調試器暫停程序的運行。這時可以釋放調試器,繼續運行程序,或者開始跟蹤程序。它是逆向工程中的一個非常重要的工具,常用的調試工具主要有OllyDBG、SoftICE。值得一提的是OllyDBG,其除了具有完備的調試功能外,還內置有良好的反匯編功能,是軟件逆向中的一個重要法寶。

2.3.4 反編譯器

反編譯器比反匯編器更近了一步。反編譯器接受可執行的二進制文件,并試圖從中生成可讀性好的高級語言代碼。其思想是嘗試逆向編譯過程,以獲取最初的源代碼文件或接近于最初源代碼的文件。對于大多數平臺而言,真正恢復初始源代碼是不現實的。多數高級語言的重要元素在編譯過程中被省略掉了,且不可恢復。常用的反編譯工具主要有DeDe、DJ Decompiler。

3 鑒定實踐

3.1 案例背景

目前,由于QQ賬號所涉及的Q幣與游戲裝備等虛擬財產可以轉化為現實世界中的貨幣,因此偷盜QQ賬號及密碼的現象日益猖獗,情節嚴重者甚至觸犯了相關法律?!癚Q密碼大劃拉”即是一款用于偷盜QQ賬號及密碼的惡意程序,該軟件屬于木馬生成器范疇,能夠根據使用者的設置(如收信郵箱、發信郵箱、發信郵箱密碼等)生成相應木馬(配置界面如圖1所示),使用者可以利用生成的木馬來盜取他人QQ賬號和密碼。但該生成器本身就是一款能夠偷盜QQ賬號及密碼的木馬,使用者在生成自己盜號木馬的同時,其自身的賬號與密碼也極可能被該生成器竊取。本節即以木馬生成器“QQ密碼大劃拉”及其默認生成的木馬QQ_DYP為例,說明逆向分析在電子數據取證中的實際應用。

圖1 “QQ密碼大劃拉”木馬生成器配置界面

3.2 針對木馬生成器“QQ密碼大劃拉”的分析

3.2.1 查殼與脫殼

首先用PEiD對木馬生成器 “QQ密碼大劃拉”查殼,如圖2所示。查殼結果表明該軟件未加殼,是由Visual C++語言編寫的;接著使用OllyDBG加載該軟件,但卻提示該軟件為self-extracting或self-modifying文件,其啟動函數中也未表現出Visual C++編寫程序的典型特征,由此懷疑該軟件使用了偽裝的殼。

圖2 PEiD對QQ密碼大劃拉的查殼結果

利用PEiD的“Deep Scan”功能查出該惡意程序系使用UPX加的殼。接下來直接利用PEiD自帶的插件“PEiD Generic Unpacker”對其進行脫殼。針對脫殼后的程序再執行查殼操作,“Deep Scan”結果顯示該程序由“Borland Delphi 6.0-7.0”編寫,其啟動函數中call語句與mov語句間隔出現[2](如圖3所示),滿足Delphi程序啟動函數的典型特征,從而驗證了查殼結果的正確。

圖3 脫殼后QQ密碼大劃拉的啟動函數反匯編代碼

3.2.2 通過逆向分析發現隱秘的網頁地址

脫殼成功后,使用OllyDBG載入,對惡意程序進行逆向分析。在OllyDBG中運行該程序,主程序窗口出現后,點擊“生成木馬”按鈕,程序會彈出保存窗口以供選擇生成木馬的存放位置;此時不要點擊保存窗口的“保存”按鈕,而是點擊OllyDBG工具欄上的“暫?!卑粹o,然后執行ALT+K操作打開函數窗口,查詢得到保存窗口對應的 API函數 DialogBoxIndirect-ParamW(圖4),可在此處設置斷點,以追蹤被竊信息的發送地址;另外,由于該惡意程序要執行生成木馬操作,便可設想在CreateFileA函數上設置斷點,在OllyDBG的command窗口中執行 “bp CreateFileA”命令,然后運行程序,中斷后便可繼續分析。

圖4 函數窗口中保存窗口對應的API函數

除了可以跟蹤API函數,在關鍵字符串信息上設置斷點,也可以達到調查取證的目的。載入惡意程序后,點擊“插件”→“Ultra字符串參考”→“查找 ASCII”,得到如圖5所示的字符串信息。從字符串信息中可以發現有“QQ2009_Hooker_Head”字樣出現,其實際為該生成器設計者編制的實現竊取功能的函數名稱,故可在此設置斷點。

圖5 字符串信息中出現有“QQ2009_Hooker_Head”字樣

設置好斷點后,OllyDBG中運行該惡意程序,在彈出的配置界面中隨意設置 “收信郵箱”、“發信郵箱”、“發信郵箱密碼”等信息;然后點擊“生成木馬”按鈕,在彈出的保存窗口中選擇好木馬存放位置,然后點擊“保存”按鈕;由于事先設置了斷點,木馬并未生成,而是自動中斷在了“QQ2009_Hooker_Head”的位置上(圖6)。

圖6 惡意程序自動中斷在事先設置的斷點上

惡意程序在紅色斷點處(0045E310)中斷,點擊F8鍵單步運行以分析程序。當到達地址0045E339時,堆棧窗口中出現“SS:[0012F620]=009D3724,(ASCII" http://www.XXX.com/QQ456/XXX.asp")”字樣(圖7),此即該生成器竊取QQ賬號及密碼后發往的網頁地址。電子數據取證人員獲得該隱秘地址后,可以通過調查相關網站獲取犯罪分子用來訪問的IP地址,進而找到其真實的藏身之所。

圖7 堆棧窗口中出現被竊信息發往的網頁地址

3.3 針對生成木馬QQ_DYP的逆向分析

3.3.1 查殼和脫殼

使用PEiD檢查QQ_DYP,顯示其是由Visual C++編寫的。OllyDBG卻依然提示this software is a self-extracting or self-modifying file。使用OllyDBG加載QQ_DYP(如圖8所示),發現其啟動函數與“QQ密碼大劃拉”頗為類似,難怪PEiD做出同樣的誤判。

圖8 脫殼前的“QQ_DYP”啟動函數指令序列

距離起始地址不遠處,出現有 “jmp QQ_DYP. 00413EF0”字樣,判斷該指令是一個大跳轉,因此執行該指令來到地址00413EF0處(如圖9所示)。該地址存放有指令“pushad”,因此考慮使用ESP定律法進行脫殼。

圖9 地址00413EF0處的指令序列

執行pushad指令后,寄存器窗口顯示ESP值為0012FFA4,選擇數據窗口跟隨,并在數據窗口設置硬件訪問斷點(Word),接下來按Shift+F9運行該程序,即可來到另一個大跳轉——地址0041403F處(如圖10)。

圖10 地址0041403F處出現大跳轉語句

執行地址 0041403F處的 “jmp QQ_DYP.0040 5380”指令,便來到程序真正的OEP(如圖11)。其啟動函數滿足Borland Delphi啟動函數特征。脫殼修復后,PEiD也判斷其由Borland Delphi 6.0-7.0編寫,從而驗證了查殼結果的正確。

圖11 脫殼后的“QQ_DYP”啟動函數指令序列

3.3.2 QQ_DYP的主要惡意行為

QQ_DYP對進程explorer進行注入,然后通過被注入的explorer進程修改注冊表項為HKLMSOFTWAREMicrosoftWindowsCurrentVersionExplorer ShellExecuteHooks{08315C1A-9BA9-4B7C-A432-26885F78DF28},達到監視系統的目的,并通過注冊SHELL擴展組鍵,使木馬能夠伴隨系統進程啟動(如圖12所示)。同時使用SetWindowsHookExA函數,通過將消息處理類型設置為WH_KEYBOARD和WH_MOUSE以截獲鍵盤和鼠標消息。

QQ_DYP還會釋放DLL文件于Program Files Common FilesMicrosoft SharedMSINFO目錄下(如圖13所示),該DLL文件會判斷加載自身的進程名,如果是QQ安全檢查主程序則結束該進程,如果為QQ. exe則刪除QQ安裝目錄下的npkcrypt.sys(QQ鍵盤鎖保護文件,部分版本的QQ擁有此文件),使QQ的鍵盤安全鎖失效。同時釋放名為“_xr.bat”的批處理文件,內容為“:try del"D:digital investigationQQ_DYP(unpack)QQ_DYP脫殼后 _.exe"if exist"D:digital investigationQQ_DYP (unpack)QQ_DYP脫殼后 _. exe"goto try”,達到刪除自身的目的。

調試QQ_DYP時,我們發現該惡意程序會將字符串或解密信息輸出至009D0000開始的內存地址空間中,因此在該內存地址空間設置寫入斷點,并且在調試選項設置時不要忽略內存訪問異常,這樣經過跟蹤調試,009D009C處會出現如圖14所示的解密信息。從圖中可以看出,QQ_DYP不僅會將QQ賬號與密碼信息發送至用戶配置的郵箱信息中,還會像“QQ密碼大劃拉”一樣,將信息發送至事先內置的ASP網頁地址。

4 結語

惡意程序編寫者一般具有較高的專業知識水平,他們會千方百計的模糊惡意程序行為,隱藏其真實意圖。這就對電子數據取證人員提出了更高的要求,需要對反匯編代碼進行更深入的分析[3]。本文即是針對一特定的惡意程序,描述其逆向分析全過程,并對一般性方法進行歸納總結。需要指出的是,惡意程序千變萬化,本文所描述的方法還具有相當的局限性。比如在脫殼方面,該生成器及其生成的木馬使用的都是比較簡單的壓縮殼,脫殼相對簡單,而對于更為復雜的加密殼的破解研究,本身就是一個十分深入的領域,本文對此并未涉及;關鍵信息獲取方面,雖然介紹了一些典型斷點的設置方法,但實際上整個惡意程序的分析花費了作者大量的時間與精力在繁雜的反匯編代碼中摸索穿行,因此針對快速定位關鍵信息的研究依然有很長的路要走;另外,如何將逆向分析方法與其他分析方法更好的結合,更加全面徹底的揭示惡意程序隱藏的秘密,也將是作者未來的主要研究方向之一。

[1]Eldad Eilam.逆向工程揭秘[M].北京:電子工業出版社,2007:4-16.

[2]段鋼.加密與解密[M].北京:電子工業出版社,2008:71-99.

[3]金波,黃道麗,夏榮.電子數據鑒定標準體系研究[J].中國司法鑒定,2011,(1):49-52.

猜你喜歡
程序信息
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
恐怖犯罪刑事訴訟程序的完善
信息
建筑創作(2001年3期)2001-08-22 18:48:14
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
主站蜘蛛池模板: 国产黑丝视频在线观看| 丁香婷婷激情综合激情| 成年女人18毛片毛片免费| 看看一级毛片| 久久这里只精品热免费99| 中文字幕久久精品波多野结| 国产国产人免费视频成18| 高清无码不卡视频| 热99精品视频| 99草精品视频| 天天综合色网| 欧美爱爱网| 99热免费在线| 午夜福利在线观看入口| 日本久久网站| 99视频在线精品免费观看6| 午夜福利亚洲精品| av一区二区三区高清久久| 欧美在线观看不卡| a级毛片毛片免费观看久潮| 国产精品观看视频免费完整版| 久久综合一个色综合网| 99人妻碰碰碰久久久久禁片| 成人在线观看一区| 国产精品自在自线免费观看| 午夜三级在线| 久久婷婷综合色一区二区| 伊人久久婷婷五月综合97色| 午夜精品福利影院| 亚洲欧美成人在线视频 | 99九九成人免费视频精品| 国产成人精品优优av| 欲色天天综合网| 亚洲人在线| 日韩人妻无码制服丝袜视频| 色有码无码视频| 香蕉视频国产精品人| 国产xx在线观看| 久久黄色一级视频| 欧美69视频在线| 精品无码日韩国产不卡av| 亚洲色成人www在线观看| 国产成人乱无码视频| 亚洲无码高清免费视频亚洲| 久久性妇女精品免费| 72种姿势欧美久久久大黄蕉| 91精品人妻互换| 亚洲男人天堂网址| 国产尤物jk自慰制服喷水| 在线国产毛片| 1769国产精品免费视频| 欧美第二区| 欧美啪啪网| www.亚洲一区| 亚洲成人黄色在线观看| 日韩在线成年视频人网站观看| 午夜人性色福利无码视频在线观看| 久久精品亚洲专区| 伊在人亚洲香蕉精品播放| 国产精品久久自在自线观看| 四虎亚洲精品| 日韩在线永久免费播放| 成人免费视频一区| 亚洲码一区二区三区| 97精品伊人久久大香线蕉| 国产网站免费| 亚洲国产精品成人久久综合影院| 欧美午夜理伦三级在线观看| 久久免费精品琪琪| 欧美视频在线不卡| 亚洲愉拍一区二区精品| 欧美成人免费一区在线播放| 亚国产欧美在线人成| 免费看一级毛片波多结衣| 午夜福利亚洲精品| a在线观看免费| 99国产在线视频| 欧美a级完整在线观看| 亚洲国产亚综合在线区| 国语少妇高潮| 亚洲AV成人一区二区三区AV| 国产精品30p|