https://binary.ninja/
專為新手打造的反匯編器
第一印象
軟件簡介
雖然IDA在反匯編器的地位無人可以撼動,但是新手使用IDA往往也會感到無所適從。Binary Ninja以其精美的界面和便捷的交互方式,使得新人簡單了解后就能很快上手。
運行平台:支持windows、linux,macos。具體來說, Linux:官方支持64位的Ubuntu最新的LTS和最新的穩定版,許多其他發行版雖然沒有官方支持,但開箱即用。 請參閱我們的用戶文檔,了解更多關於Linux的具體問題。 MacOS:10.13及更新版本(我們通常支持最新的主要版本和至少一個主要修訂版,舊版本可能會工作,但不支持。 Windows。 Windows 10 x64 (雖然官方不支持,但目前Windows 8 x64可以使用,如果安裝了所有可用的補丁,Win 7 x64也可以使用)
版本:2.1.2263(2020-07-10),演示版 免費 個人 299美元 商業 1199美元 企業 聯系官方
輸入:任何文件都可以作為原始二進制文件加載,並可以在任何偏移量處反匯編。 當前,我們為以下文件格式提供了官方加載程序: PE /COFF ELF Mach-O(目前不支持fat文件,建議使用man lipo 手動提取) .NES(通過示例插件) 原始二進制文件(您可以使用“ P”熱鍵或原始十六進制右鍵單擊上下文菜單或線性視圖中的在原始二進制文件上輕松地從任何體系結構創建函數) 此外,第三方加載器有助於在不編寫自己的加載器的情況下以特定偏移量加載二進制Blob。Binary Ninja包含了對不同處理器的不同程度的支持。我們根據是否支持反匯編、提升lifting、內嵌式匯編編輯(也包括插入原始的匯編塊)和C編譯(使用我們自己的內置編譯器SCC),對每個架構的支持進行了如下細分。
文檔:https://binary.ninja/support/#documentation
盈利:收費可試用
組織:Vector 35
開源:否。之前發布過python寫的開源反編譯工具,但是與這個二進制忍者沒有共享代碼。
優點:美而簡,雲反編譯 https://cloud.binary.ninja/
缺點:支持的文件和架構太少,文檔少,收費,只專注於靜態分析工作沒有本地調試環境只能用插件binjateon
快速上手
將文件拖入即可
打開后默認以反編譯c偽代碼的形式展示。它定義了5種標准視圖,如圖
右下角點開,有 高ssa、高、中、低、反匯編,5種,默認是高就是反編譯視圖,下來就介紹一下這幾個視圖區別
下來我用IOLI-crackme中的linux下的 crackme0x00 代碼為例子講解,代碼可在github上找到。為了方便對比我把忍者中的代碼粘貼到了notepad++中,箭頭表示對應關系,紅框表示增加的內容,黑框表示黒域,黒域就是忍者無法解釋的部分,可以叫做間隙或raw
從代碼中我把main函數反編譯結果匯總了,我們可以看到,高級是偽c代碼,反編譯效果不錯,不過少了一條if的分支沒有解析出來,放到了黒域中。高級別最接近源碼,中與高相似,中把指針顯示出來了。
低級別和反匯編相似,低級別顯示了序言尾聲、寄存器、堆棧和部分指令。反匯編視圖顯示了所有的指令