惡意程式碼分析實戰Lab1302
main -> 1851 -> 1070,181F,1000
碰到了好多不認識的WINAPI函式
GetSystemMetrics:該函式只有一個引數,稱之為「索引」,這個索引有75個ID,通過設定不同的識別符號就可以獲取系統解析度、顯示區域的寬度和高度、滾動條的寬度和高度等。
來自MSDN~~~獲取螢幕的寬度和高度
GetDesktopWindow:該函式返回桌面視窗的控制代碼。桌面視窗覆蓋整個螢幕。桌面視窗是一個要在其上繪製所有的圖示和其他視窗的區域。
GetDC:該函式檢索一指定視窗的客戶區域或整個螢幕的顯示裝置上下文環境的控制代碼,以後可以在GDI函式中使用該控制代碼來在裝置上下文環境中繪圖。
CreateCompatibleDC的解釋:
Windows不允許程式設計師直接訪問硬體,它對螢幕的操作是通過環境裝置,也就是DC來完成的。螢幕上的每一個視窗都對應一個DC,可以把DC想象成一個視訊緩衝區,對這這個緩衝區的操作,會表現在這個緩衝區對應的螢幕視窗上。
在視窗的DC之外,可以建立自己的DC,就是說它不對應視窗,這個方法就是CreateCompatibleDC,這個DC就是一個記憶體緩衝區,通過這個DC你可以把和它相容的視窗DC儲存到這個DC中,就是說你可以通過它在不同的DC之間拷貝資料。例如:你先在這個DC中建立好資料,然後在拷貝到視窗的DC就是完成了這個視窗的重新整理。用雙緩衝的話還要再定義一個位圖物件,然後用CreateCompatibleBitmap建立一個與螢幕顯示相容的點陣圖,再用SelectObject將點陣圖選入到記憶體顯示裝置中。
總結:1070函式很可能是利用這些API對桌面螢幕視窗進行操作
181F -> 1739:
函式加密段,看起來有對稱性,也還是比較麻煩,暫時跳過
這個有個FileName的字串拼接過程,然後呼叫1000(其中是CreateFile和WriteFile),動態執行的時候看一眼就好
執行起來,可以發現當前資料夾下檔案越來越多:
奇怪的是這些檔案內容都是一模一樣的
再來看到main中的過程:
1070負責獲得資料,181F負責加密資料,1000負責寫入資料,所以嘗試:
A:直接把40181F函式塊nop掉
B:用OD除錯程式,在401070之後下斷點,直接去看程式中的資料
nop掉這個,然後找回加密前的資料
還是看不懂。。。但是:這個已經是解密了的哦!查查檔案頭:
發現:424D是windows的bmp檔案,重新命名一發,就可以打開了!
當然,還有這種姿勢!
所以:惡意程式碼功能為:定時對螢幕進行截圖,且進行加密儲存