Relyze是一款二進制分析工具,可以用來分析你的軟件,對你電腦上的軟件進行逆向工程和分析,對于喜歡搞軟件破解的朋友來說非常有用!
Relyze軟件功能
1、加載PE和ELF二進制文件
導航二進制結構并發(fā)現它的組成方式?梢暬瘮祿⑹褂梅栘S富分析。
2、分析x86,x64和ARM代碼
讓分析重建控制流圖,解決間接調用,生成引用,發(fā)現堆棧變量等。
3、互動分析
在工作時修改和注釋分析。使用交互式控制流,調用和參考圖來探索代碼和數據之間的關系。
4、二進制差異
對兩個二進制文件執(zhí)行差異分析,并探索它們的相似之處和不同之處。
5、現代界面
該軟件采用時尚的現代界面和平面UI設計理念,將分析帶入中心舞臺。
6、插件框架
豐富的Ruby插件框架允許您使用自己的插件擴展該軟件的功能。
7、可視化數據
使用熵圖來識別打包或加密的數據以及其他異常。熵圖覆蓋相應的文件部分并且是交互式的,因此您可以導航到結構或代碼視圖以了解更多信息。
8、探索結構
深入研究文件結構,以便確切了解它的組成方式。使用十六進制編輯器進一步探索結構,即時解碼和搜索數據。您還可以利用自定義解碼器來處理部分數據。
探索結構
9、多線程分析
該軟件可以執(zhí)行并行分析并利用所有可用的處理器內核,允許您瀏覽大型二進制文件并盡快完成分析。
10、編輯代碼
通過為每個支持的體系結構提供內置匯編程序,您可以動態(tài)編輯指令并修補二進制文件。分析將重新處理更改的指令以更新分析。插件框架公開了對匯編程序的完全訪問權限,因此您可以根據需要編寫腳本。
11、導航控制流程圖
該軟件使用交互式控制流程圖可視化功能,允許您導航功能代碼路徑并與局部變量,指令和其他屬性進行交互
12、導航調用圖
使用多種圖形布局算法生成和探索交互式調用圖。我們基于DirectX的硬件加速圖形渲染引擎允許您使用黃油流暢的界面探索大型復雜圖形。
13、功能分析
自動分析識別函數,它們的參數和其他元數據,例如調用約定。函數局部變量會自動分析并顯示在函數控制流圖中,以便您可以與它們進行交互,發(fā)現對本地的引用,更新其數據類型等。
14、查看所有代碼路徑
獲取具有自動跳轉表和異常處理程序分析的函數的完整控制流圖。發(fā)現原本不可見的代碼路徑。
15、解決間接呼叫
可能的分析可以解決間接調用目標,為您提供功能邏輯的完整畫面。
16、找到一切
快速搜索和識別分析的有趣部分或瀏覽所有內容。段,導入,導出,函數,字符串,書簽,符號行和搜索結果等項目合并在一個統(tǒng)一的位置,以便于遍歷。
17、數據類型分析
自動分析可以通過分析或在可用時通過符號輔助來發(fā)現數據并識別合適的數據類型。識別基元類型,字符串,復雜結構等。
18、靜態(tài)庫分析
通過靜態(tài)庫分析自動識別靜態(tài)庫代碼中常見的鏈接,例如編譯器運行時。已識別的靜態(tài)庫函數將重命名為其原始函數名稱,從而加快分析代碼的速度。
19、創(chuàng)建和管理自定義數據類型
通過使用C / C ++聲明定義它們來管理可用的數據類型并創(chuàng)建新類型。您還可以導入C / C ++頭文件以訪問其中定義的數據類型。將可用數據類型導出為C / C ++標頭,以便與您自己的工具進行互操作。
創(chuàng)建和管理自定義數據類型
20、可視化關系
使用交互式參考圖表發(fā)現代碼和數據之間的關系。您可以生成特定目標或源自特定目標的參考圖。與這些參考圖表交互并瀏覽您發(fā)現的代碼和數據。
21、找到路徑
使用圖形路徑突出顯示來發(fā)現圖形中任意兩個節(jié)點之間的所有路徑。確定有趣代碼塊的最短路徑,或參考圖中某些數據的所有潛在路徑。
22、交互式二進制差異
對兩個二進制文件執(zhí)行差異分析,發(fā)現它們的差異和相似之處。了解已修改,刪除或添加的功能。在驗證安全修復程序或分析惡意軟件變體時,非常適合進行補丁分析。
23、自定義地址模式
根據相對虛擬地址或虛擬地址顯示和導航代碼。當您將該軟件與調試器一起使用并且必須處理地址空間布局隨機化(ASLR)時,立即將二進制文件重新基于新的虛擬基址。
24、使用插件擴展
利用豐富的Ruby插件框架,以擴展Relyze的新功能,并針對二進制文件執(zhí)行定制的分析或研究。集成的插件編輯器可讓您快速測試您的想法,一切都按預期運行,無需額外配置或第三方庫。
25、存檔一切
使用集成的庫管理器歸檔您分析的每個文件,以便隨著時間的推移建立語料庫。使用自定義標記和說明應用您的存檔,以便輕松查找和分類它們。
反匯編與逆向編程的區(qū)別
反匯編:一般是只對編譯器根據高級語言生成的本機二進制可直接在芯片上執(zhí)行的機器碼”解析“為人類可讀的匯編形式的代碼(實際上最最早期的計算機操作員具備直接閱讀機器碼和使用機器碼編程的能力,不需要轉換為匯編形式,這是計算機普及,程序規(guī)模也爆炸性增大后,人們就有需要轉換為匯編代碼來讀懂機器碼程序)
早期的反匯編目的是編譯器生產商用來檢查編譯器生成代碼的性能。
當今主要在得不到源代碼的情況下,研究分析其他人的程序,如病毒程序的分析,系統(tǒng)漏洞的挖掘,或者黑\灰色產業(yè)鏈里的山寨抄襲功能等。通過反匯編分析其功能、算法、邏輯等。
反匯編實際就屬于逆向過程,分析得到別人的功能、算法、邏輯后,再根據得到的信息再開發(fā)、增加補丁開發(fā)、防御產品開發(fā)等,在開發(fā)的過程根據實際需求而言,比如分析匯編代碼得到的一個算法,可以用任意其它編程語言再現,這就是逆向編程了
逆向編程屬于逆向工程,
逆向編程一般指根據反向分析別人程序的功能而使用其它編程語言編程再現該功能。
反向分析(逆向工程)不僅僅是反匯編,對不同系統(tǒng)平臺語言平臺芯片平臺的不同也囊括不同內容,如反匯編則基本有對各種芯片(如8086、arm、c51等芯片的反匯編)
反匯編實際屬于反編譯,反編譯就包括各種語言從低級或中間級語言到高級語言的解析
如.NET平臺的C#就可由中間語言MSIL反編譯成C#
Java平臺的就可由.class中的Java字節(jié)碼反編譯為Java代碼
后有其它的dex虛擬機的字節(jié)碼,自定義的虛擬機字節(jié)碼等等
總言之,反匯編屬于反編譯的一個分支,
反編譯是實現逆向編程的必經步驟
這些都屬于IT界的”逆向工程“范疇。
- PC官方版
- 安卓官方手機版
- IOS官方手機版