複製鏈接
請複製以下鏈接發送給好友

反彙編

鎖定
反彙編(Disassembly):把目標代碼轉為彙編代碼的過程,也可以説是把機器語言轉換為彙編語言代碼、低級轉高級的意思,常用於軟件破解(例如找到它是如何註冊的,從而解出它的註冊碼或者編寫註冊機)、外掛技術、病毒分析、逆向工程、軟件漢化等領域。學習和理解反彙編語言對軟件調試、漏洞分析、OS的內核原理及理解高級語言代碼都有相當大的幫助,在此過程中我們可以領悟到軟件作者的編程思想。總之一句話:軟件一切神秘的運行機制全在反彙編代碼裏面。
中文名
反彙編
外文名
Disassembly
領    域
計算機
本    質
把機器語言轉換為彙編語言代碼
用    途
軟件逆向分析
動態調試工具
OD、DEBUG、x64Dbg等
靜態分析工具
IDA Pro、C32Asm等

反彙編編程原理

通常,編寫程序是利用高級語言如C,C++,Delphi等高級語言進行編程的,然後再經過編譯程序生成可以被計算機系統直接執行的文件(機器語言)。反彙編即是指將這些執行文件反編譯還原成彙編語言或其他語言。但通常反編譯出來的程序與原程序會存在些許不同,雖然執行效果相同,但程序代碼會發生很大的變化,要讀懂反彙編需要有紮實的高級語言編寫功底和彙編功底。

反彙編作用及方式

反彙編作用

有許多程序可以進行逆向操作即反編譯以求修改,例如Flash的文件生成的SWF文件,可以被反彙編成Flash原碼,但可以發現與原程序代碼發生了很大變化。
網絡上的許多“免費軟件”,PSP PS NDS遊戲機的破解和蘋果iOS系統的越獄都跟反彙編息息相關。

反彙編靜態反彙編

反彙編 反彙編
靜態反彙編是從反彙編出來的程序清單上分析,從提示信息入手進行分析。大多數軟件在設計時,都採用了人機對話方式。所謂人機對話,即在軟件運行過程中,需要由用户選擇的地方,軟件即顯示相應的提示信息,並等待用户按鍵選擇。而在執行完某一段程序之後,便顯示一串提示信息,以反映該段程序運行後的狀態,是正常運行,還是出現錯誤,或者提示用户進行下一步工作的幫助信息。為此,如果我們對靜態反彙編出來的程序清單進行閲讀,可瞭解軟件的編程思路,以便順利破解該軟件,也就是我們常説的破解版即盜版。反彙編亦是外掛設計最重要的環節,可以説沒有反彙編就沒有外掛。 常用的靜態分析工具是W32DASMPEiD、FileInfo、 Hex Rays Ida和HIEW等。

反彙編相關工具

反彙編工具如:ODIDA Pro、radare2、DEBUG、C32等。
反彙編可以通過反彙編的一些軟件實現,比如DEBUG就能實現反彙編,當DEBUG文件位置設置為-u時,即可實現反彙編。 而使用OD實現反彙編時,殺毒軟件可能會報告有病毒與木馬產生,此時排除即可,且使用OD需要有紮實的基礎才能看懂。