程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 反編譯Delphi(三)

反編譯Delphi(三)

編輯:Delphi
       反向工程一直被認為是技術奇才的專有藝術,需要熟悉匯編語言和調試器。下面幾個Delphi反編譯器允許任何人反編譯大多數Delphi可執行文件,即使只有有限的技術知識。

        如果你對Delphi程序反向工程感興趣,我建議你看一看以下幾個“反編譯器”:

        DeDe

        DeDe是一個非常快的程序,用於分析Delphi編譯的可執行文件。反編譯之後,DeDe會提供以下信息:

  • 所有的目標dfm文件。你可以用Delphi打開並編輯它們;
  • 帶有良好的注釋的ASM代碼的所有發布的方法,它涉及字符串、輸入函數調用、類方法調用、單元的組件、Try-ExceptTry-Finally塊。默認情況下,DeDe僅僅只獲得已發布方法的源代碼,但如果你通過使用Tools | Disassemble Proc菜單知道RVA偏移量的話,你也可以處理可執行文件中的其他過程。
  • 大量的附加信息。
  • 你可以創建一個帶有所有的dfmpasdpr文件的Delphi工程的文件夾。注:pas文件包含上面提及的被良好注釋過的ASM代碼。他們不能被再編譯!

        Revendepro

        Revendepro可以找到程序中幾乎所有的結構(類、類型、過程等),並生成pascal表達式、過程則以匯編程序的形式寫出來。由於匯編程序的某些限制,生成的結果不能被在編譯。這個反編譯器的源代碼可以免費獲得。不幸的是,這是唯一一個我不能使用的反編譯器—當試圖用它反編譯某些Delphi可執行文件時,總提示異常。

        MRIP

        這個對用途文件分割器可以從其它文件中尋找和摘取文件。MRIP分割100多種文件格式。對我們而言,最重要的是MRipper可以反編譯任何Delphi可執行文件。該工具可以從Delphi應用程序中摘取所有的資源:cursors(光標)、icons(圖標)、dfm文件、pas文件和其他資源。pas文件不包含事件過程執行。MRIP是一個DOS工具。

        DfmExplorer

        以下是DfmExplorer的說明(包括原始資料):

  • 通過調用Win32 API“LoadLibrary”“LoadLibraryEx”函數在內存中載入可執行模塊(EXEDLLBPLDPL)。
  • 通過Win32 API“EnumResourceName”函數找尋RCDATA資源。
  • 載入每個發現的DFM塊,解碼它並以表的形式(包括它們的名稱)存儲在內存中。
  • 在程序的主窗口我們可以以文本方式可視化所有載入可執行文件的所有的DFM
  • 最後,程序可以保存到DFM選擇的磁盤,作為ASCII文件(.RC)或作為二進制塊(DAT)連接到可執行文件中。

        Exe2Dpr

        如果你試圖放松你的工程源代碼,這個Delphi工程源代碼救助器可以挽救丟失的源碼部分。救助器生成所有的帶已分配屬性和事件的工程表單和數據模塊。生成的事件過程沒有主程序(它不是反編譯器),但又在可執行文件中的代碼地址。這個工具沒有GUI—它使用命令行的形式:'exe2dpr [-o] exeFile'。工程源代碼在當前目錄創建。如果你想覆蓋當前目錄的任何已存在的文件,就可以使用選項 '-o'。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved