工具推薦:逆向破解利器OllyDbg
之所以要進行逆向破解,其原因之一就是通過逆向工程可以了解惡意軟體的工作原理並有可能對其功能進行重新設計,比如中情局和國家安全局等機構定期會將惡意軟體重新用於其他目的。
由於IDA Pro是目前最棒的一個靜態反編譯軟體,是眾多安全分析人士不可缺少的利器,所以我在以前專門介紹過IDA Pro的一些用法。但在本文中,我將介紹OllyDbg,它和DA Pro一樣,目前也被安全分析人士廣泛使用,且是免費的。
OllyDbg是一個新的動態追蹤工具,是將IDA與SoftICE結合起來的產物,Ring 3級調試器,非常容易上手,另外由於OllyDbg是一個通用的32位彙編分析調試器且操作界面非常直觀簡單,己代替SoftICE成為當今最為流行的調試解密工具了。同時OllyDbg還支持插件擴展功能,是目前最強大的調試工具。
如果你正在使用Kali linux,則你的系統上則很可能已經預裝了OllyDbg。OllyDbg可以在任何Windows或Linux環境中運行,要說明的是,實際上OllyDbg是在Linux的WINE中運行。如果你的系統上沒有OllyDbg,你可以在這裡下載http:或或www.ollydbg.de或download.htm。
步驟1:啟動OllyDbg
要在Kali中啟動OllyDbg,請點擊Applications,然後進入Reverse Engineering,最後找到ollydbg,如下面所示。
這樣,你就會打開一個如下所示的界面。請注意,OllyDbg的界面頂部具有下拉菜單系統。
步驟2:將文件載入到OllyDbg中
下一步是將.exe文件載入到Ollydbg中,你可以將文件直接拖放到Olly的工作區域中,或使用頂部的下拉菜單的「文件」菜單,然後選擇「打開」。請注意,打開窗口必須是可執行文件。
當文件打開時,Ollydbg就將開始分析代碼。不過此時,我會使用一個簡單的.exe,它預裝在名為LaunchU3.exe的快閃記憶體驅動器上,僅用於演示。顯然,這不是惡意軟體。在將來的教程中,我將同時使用惡意軟體和非惡意軟體進行調試和分析。
如下圖所示,Olly將代碼分析過程分成幾個窗口來進行。在窗口中的左上角,我會發出虛擬地址的指令。然後在CPU registers窗口中(右上角窗口中),我會將數據駐留在內存中。最後在右下方窗口中,我會得到一個棧的窗口。另外請注意,在右下角(黃色突出顯示的部分)表示目前目前我所處的棧的狀態,比如下圖,我就處於「暫停」狀態。
步驟3:不同視圖下的代碼
我可以通過點擊頂部菜單上的查看按鈕來從不同視圖獲取我的代碼:
從上圖可以看到,打開進程日誌的快捷鍵為"Alt+L",可執行文件的快捷鍵為"Alt+E",內存布局的快捷鍵為"Alt+M",窗口,控鍵及其斷的快捷鍵為"Alt+B"。請注意,菜單欄上的藍色字母也可以表示每一個功能的快捷操作。
如果我選擇可執行模塊"Alt+E"或藍色字母"E",我都可以打開一個包含所有可執行文件的窗口,如下圖所示。可執行模塊窗口會將基本虛擬地址(base virtual address)顯示在第一列,而內存中的二進位文件的虛擬大小會在第二列顯示,入口點的虛擬地址會在第三列中顯示,從第四列到第六列分別是模塊名稱,文件版本和進程中載入的每個模塊的文件路徑。如果文本顯示為紅色,則表示模塊已被動態載入。
不過在可執行文件窗口中,我可以通過單擊右鍵,然後找出相關窗口比如「查看名稱」的窗口。
這樣,我就可以看到程序中使用的所有函數和導入的函數。我也可以使用Ctrl+N訪問此窗口。通過檢查可執行文件的導入功能,我可以經常對惡意軟體的功能進行分析。我建議大家可以查看Microsoft的MSDN API文檔網站,這是一個很有用的資源,用於了解這些函數,參數以及返回函數的功能。
在「名稱」窗口中,如果我單擊右鍵,就可以通過單擊或直接按F2來設置斷點。
OllyDbg的內存映射窗口顯示了進程中每個分配的內存區域的虛擬地址,虛擬大小,所有者模塊,段名稱,內存分配類型和內存保護。
OllyDbg的線程窗口會顯示線程ID,入口點虛擬地址,線程環境塊(TEB)虛擬地址,last-error值,例如活動或掛起的優先順序狀態以及進程中每個線程的時序信息。
Windows窗口會顯示進程擁有的每個窗口的控鍵,標題,父窗口,窗口ID,窗口樣式和窗口類信息。
「控鍵」窗口會顯示對象類型,引用計數,訪問標誌以及進程擁有的每個控鍵的對象名稱。
SEH(結構化異常處理程序)鏈接窗口會顯示當前線程的結構化異常處理程序函數。
斷點
任何一個好用的調試器,其必備的關鍵特點就是能夠設置斷點。斷點使我能夠以指定的地址或指令停止程序的執行。目前有兩種主要類型的斷點方式:軟體斷點和硬體斷點。OllyDbg提供了一種通過使用"Alt+B"的斷點窗口來查看和打開斷點的方法。
OllyDbg常用快捷鍵
用戶界面
打開新程序
F3關閉程序
Alt+F2最大化或恢復活動窗口
F5使OllyDbg最上面的窗口
Alt+F5關閉OllyDbg
Alt+X
Windows
打開斷點窗口
Alt+B打開CPU窗口
Alt+C打開模塊窗口
Alt+E打開日誌窗口
Alt+L打開內存窗口
Alt+M
編輯
編輯內存
Ctrl+組合
Space撤消更改
Alt+BkSp
執行
進入
F7設置動畫
Ctrl+F7單步執行
F8設置動畫結束
Ctrl+F8運行應用程序
F9傳遞異常處理程序並運行
Shift+F9執行直到返回
Ctrl+F9執行到用戶代碼
Alt+F9跟蹤開始
Ctrl+F11跟蹤結束
Ctrl+F12暫停
F12暫停跟蹤條件
Ctrl+T
斷點
設置或取消設置斷點
F2設置或編輯條件斷點
Shift+F2設置或編輯條件日誌斷點
Shift+F4臨時禁用或恢復BP
Space
數據
分析可執行代碼
Ctrl+A掃描對象文件
Ctrl+O顯示符號名稱
Ctrl+N
搜索搜索二進位
Ctrl+B搜索命令
Ctrl+F重複上一次搜索
Ctrl+L
※Linux應急響應姿勢淺談
※美國FLIR熱感攝像頭預裝後門,且無法刪除
※CAT文件數字簽名使用技巧
※使用FTP的系統控制後門作為C
※知名評論系統Disqus 2012年被黑,官方現在才發現用戶數據泄漏了
TAG:嘶吼RoarTalk |