反彙編

反彙編

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

基本介紹

  • 中文名:反彙編
  • 外文名:Disassembly
  • 領域:計算機
  • 本質:把機器語言轉換為彙編語言代碼
  • 用途:軟體逆向分析
  • 動態調試工具:OD、DEBUG、x64Dbg等
  • 靜態分析工具:IDA Pro、C32Asm等
編程原理,作用及方式,作用,靜態反彙編,相關工具,

編程原理

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

作用及方式

作用

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

靜態反彙編

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

相關工具

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

相關詞條

熱門詞條

聯絡我們