摘要: Cerbero Suite是為x86/x64設計的一款交互式反匯編工具。最初的目的是為了讓我們的用戶能夠檢查內存轉儲中的代碼以及shellcode。如今,市面上已有非常先進的反匯編工具,如IDA和Ghidra,在我看來嘗試模仿其中的一種工具是沒有意義的。這也是我設計該反匯編工具的原因,同時我也考慮了客戶如何使用Cerbero Suite的問題。
軟件功能:
windows Dmp文件(WINDMP)
內部結構檢查
可用時全面檢查內存
Windows休眠文件
內部結構檢查
完全檢查內存
Windows原始內存映像(WINMEM)
支持所有Windows版本
檢查內存中的文件
支持Windows版本的所有系統符號
檢測SSDT,IDT,GDT
軟件簡介:
Cerbero Suite Advanced是一種專業且有用的惡意文件和文件類型分析工具。該軟件支持主流文件類型,包括PE,mach-O,ELF,JAVA,SWF,DEX,PDF,DOC,XLS,RTF,Zip等。該軟件提供自動分析,交互式分析,反匯編分析,字節碼反匯編等。它還具有Python3 SDK,擴展支持,c ++ / PDB結構導入器等。
特性介紹
Flat 反匯編視圖
Carbon帶有一個顯示文件中所有指令的Flat 反匯編視圖。我不排除將來可能會有圖表視圖,但它不是我優先考慮的事情。
遞歸反匯編
遞歸反匯編程序是解決代碼被數據中斷的情況所必需的。Carbon將盡可能的在較短時間內完成disassemble,并同時進行基本的分析工作。
速度
Carbon是多線程的,可以非常快速地處理大型的文件。這對于文件的初始分類非常有用。
以上是大約十分鐘內對60 MB chrome DLL執行的分析。這是在虛擬機中運行的。未來的挑戰將是保持速度,同時增加更多的分析段落。
x86/x64 支持
Carbon同時支持x86和x64代碼。將來會支持更多架構。
實際上,Carbon的設計允許在相同的反匯編視圖中混合架構。
不受限的數據庫
一個項目在Carbon中可以包含無限個Carbon數據庫。這意味著如果你正在分析包含10個可執行文件的Zip文件,那么這些文件中的每一個都可以擁有自己的數據庫。
不僅如此:單個文件也可以有多個數據庫,只需單擊Carbon工具欄按鈕或按“Ctrl+Alt+C”即可添加新的Carbon數據庫。
如果你對分析不滿意,那么你可以通過右鍵單擊相關的摘要條目或選擇它并按“Del”輕松刪除它。
腳本
你只需幾行Python代碼就可以加載和disassemble一個文件。
分析完成后,我們可以修改和瀏覽其內部數據庫的各個部分,或者我們可以創建一個視圖并顯示反匯編:
內部數據庫使用SQLite,即使不使用SDK也可以輕松瀏覽和修改它。
Python 加載程序
在很早之前我就決定使用Python編寫所有的文件加載程序。雖然這可能會使文件的加載速度稍慢(盡管不明顯),但它允許用戶自定義加載程序并添加功能,從而提供了極大的靈活性。添加新的文件加載程序也非常簡單。
PE文件的整個加載程序大約有350行代碼。這是原始文件的加載程序:
一旦熟悉了SDK,添加新的加載器將會非常的輕松簡單。
Raw/PE 加載程序
初始文件的支持是針對PE和raw文件的。
例如,這是一些反匯編的shellcode。
在內存 PEs 中
其中一個主要的功能是分析內存中的PE文件。
這是內存中PE的代碼:
當然,反匯編僅限于未被分頁的內存頁面,因此可能存在一些空白。
我們對這個功能不是特別了解,后續該功能也將隨著即將發布的版本進行相應擴展。
交叉引用
當然,沒有一個像樣的反匯編程序可以缺少交叉引用這項功能:
我們還可以從設置中選擇我們想要查看的交叉引用數:
重命名
我們可以在代碼中命名和重命名任何位置或函數(允許重復)。即使ERROR沒有指向同一位置,我們也可能有多個帶有“jmp ERROR”實例的方法。
生成代碼/取消定義
我們可以通過按“C”將未定義的數據轉換為代碼,或者相反,按“U”將代碼轉換為未定義的數據。
在這里,我們向shellcode添加了一個新的Carbon數據庫。正如你所看到的,它最初都是未定義的數據:
在第一個字節按“C”后,我們得到一些初始指令:
但是,正如我們所看到的,突出顯示的跳轉無效。通過“jmp”之前的“jne”,我們可以看到我們實際上在“jmp”指令之后跳轉了一個字節。所以我們要做的是在“jmp”上按“U”,然后在地址0xA的字節上按“C”。
之后,在0xA再次按“C”:
現在,我們就可以正確分析shellcode了。
函數
我們可以在任何我們想要的位置定義和取消定義函數。
例外
已支持x64異常。
注釋
添加注釋最重要的功能之一。
已標記的位置
你也可以通過按“Alt+M”標記位置或通過“Ctrl+M”跳轉到標記的位置。
清單列表
從“Ctrl+1”到“Ctrl+4”的快捷方式可以為你展示反匯編中的各種列表。
Ctrl+1將顯示入口點列表:
Ctrl+2顯示函數列表:
Ctrl+3顯示導入列表:
Ctrl+4顯示導出列表:
字符串
可以通過按“Ctrl+5”創建:
一旦我們跳轉到一個字符串,我們就可以檢查代碼中使用它的位置:
反匯編本身將嘗試識別字符串,并在適當時將它們顯示為自生成的注釋:
集成
我們已經將Carbon很好地融入到了Cerbero Suite的整個邏輯中。Carbon數據庫保存在Cerbero Suite項目中,就像文件分析的任何其他部分一樣。
雖然Carbon已經為標記的位置提供了支持,但沒有什么可以阻止你使用書簽來標記位置并跳回到它們。區別在于標記的位置特定于單個Carbon數據庫,而書簽可以跨數據庫和不同的文件。
主題
一個好的主題同樣非常的重要,至少對我而言是這樣的。你可以在設置中切換顏色主題。第一個版本包含以下四個主題。
Light:
Classic:
Iceberg:
Dasm:
后續也將添加更多的顏色主體,敬請期待!
上述內容不知道大家學習到了嗎?網絡世界的安全漏洞每天都會出現,安全知識和安全意識每個公民都應該了解和學習,有想學習網絡安全技能的小伙伴可以隨時私信我哦!