一個反編譯器的輸入是一個可執行文件,並試圖創造一個高層次,即做同樣的事情編譯,甚至可能維護的源文件。
因此,它是一個編譯器,它接受一個源文件,並使得可執行的相反。然而,一般的反編譯並不試圖扭轉反編譯的每一個動作,而是將輸入程序反复直到結果是高水平的源代碼。因此,它不會重新創建原始源文件;可能沒什麼喜歡它。
它並不重要,如果可執行文件具有符號或沒有,或從任何特定語言編譯。 (不過,聲明的語言,如ML不考慮。)
這樣做的目的是創建一個可移植的反編譯器(即一個可以反編譯不同類型的機器代碼文件微薄的努力,比如X86-窗口,SPARC-Solaris中,等)。它也意欲是高度模塊化,從而使反編譯的不同部分可以被替換為實驗的模塊。它的目的是要最終成為互動,一拉IDA Pro的,因為有些東西(不僅僅是變量名和評論,雖然這些顯然是非常重要的)需要專家介入。是否交互所屬的反編譯或在一個單獨的工具仍不清楚。
通過將各指令的語義,並利用強大的技術,例如靜態單賦值數據流分析,飛鏢應(主要)獨立發生所使用的編譯器的確切行為。優化應不影響結果。因此,我們的目標是一般反編譯。
局限性:
·在你想嘗試迴旋鏢,因為它是一個反編譯器(而不是用它進行試驗,或改進它)的情況下,應注意其嚴格的限制。截至2004年初,迴旋鏢只會反編譯X86(的Linux / X86或Windows PE),SPARC(Solaris或Linux的推測/ SPARC),或Power PC(Linux的/ PPC或Mac OS / X)計劃。特別要注意的是它不會反編譯DOS或NE(Windows 3.1的)程序。添加另一個處理器是一個大的(數月)的事業。
·它只會生成C,而不是C ++。它將反編譯的C ++,當然方案,(以及任何種類的程序,包括彙編)。您可以手動編輯一些C ++程序轉化為可用的C ++源代碼。對於MSVC編譯的程序,目前你必須spoonfeed的反編譯器,並告訴它有一個寄存器參數(thiscall調用約定)。開關來處理這是複雜的;看到使用-sf開關。
按類別搜索
熱門軟件
-
Android Studio 9 Dec 15
-
Barista 14 Apr 15
-
Kodos 3 Jun 15
-
Aqua Data Studio 17 Feb 15
-
codership-mysql 12 May 15
-
Lubi 3 Jun 15
-
MBW 18 Feb 15
Boomerang
類似的軟件
意見 Boomerang
按類別搜索
熱門軟件
-
Redis 28 Sep 15
-
Barista 14 Apr 15
-
Ankur 3 Jun 15
-
Aqua Data Studio 17 Feb 15
-
MySQL Query Browser 3 Jun 15
-
Android Studio 9 Dec 15
-
MagicDraw UML 11 May 15
評論沒有發現