1、在對軟件進行逆向工程研究的時候,通常會依照如下幾個大的步驟來完成:
一、研究保護方法,去除保護功能。大部分軟件開發者爲了維護本身的關鍵技術不被侵犯,採用了各式各樣的軟件保護技術,如序列號保護、加密鎖、反調試技術、加殼等。要想對這類軟件進行逆向,首先要判斷出軟件的保護方法,而後去詳細分析其保護代碼,在掌握其運行機制後去除軟件的保護。
二、反彙編目標軟件,跟蹤、分析代碼功能。在去除了目標軟件的保護後,接下來就是運用反彙編工具對可執行程序進行反彙編,經過動態調試與靜態分析相結合,跟蹤、分析軟件的核心代碼,理解軟件的設計思路等,獲取關鍵信息。
三、生成目標軟件的設計思想、架構、算法等相關文檔,並在此基礎上設計出對目標軟件進行功能擴展等的文檔。
四、向目標軟件的可執行程序中注入代碼,開發出更完善的應用軟件
軟件逆向工程可讓人們瞭解程序的結構以及程序的邏輯,深刻洞察程序的運行過程,分析出軟件使用的協議及通訊方式,並可以更加清晰地揭露軟件機密的商業算法等。所以逆向工程的優點是顯而易見的。html
2、經常使用軟件:算法
OllyDbg:經常使用於動態調試程序,沒法調試內核,UI功能強大。
SoftICE:工做在ring0態的調試器,經常使用於調試驅動程序,功能強大的命令行工具。
WinDbg:介於上二者之間的調試器,具備圖形界面,調試主要經過命令來進行。
IDA Pro:反彙編軟件,用於靜態反彙編,帶有較弱的動態調試功能。
UltraEdit:16進制編輯器,可用於直接修改可執行文件,也可用於常見語言的變成工做。
虛擬機:防止被調試程序破壞物理機的內核及操做系統。架構
3、資源鏈接編輯器
http://www.freebuf.com/articles/network/167128.html 沒事兒下個副本吧?逆向新手踩坑指南
工具
http://www.freebuf.com/column/157275.html 逆向新手踩坑指南之爬登山能鍛鍊身體 加密
http://www.freebuf.com/column/158790.html 逆向動態調試值OIIydbg
spa
http://www.freebuf.com/column/157939.html 逆向神奇IDA的使用
操作系統
http://www.freebuf.com/sectool/75529.html 逆向分析神器BinNavi開源了
命令行
http://www.freebuf.com/news/topnews/40039.html 走進科學:對七夕「超級病毒」XX神器的逆向分析
設計
http://www.freebuf.com/articles/network/163233.html 經過逆向分析防護挖礦病毒
http://www.freebuf.com/articles/system/53021.html 金玉其外敗絮其中:百度殺毒「雪狼引擎」逆向分析