2012-06-22 308 views
0

是否可以反編譯C++ Builder exe?是否可以反編譯C++ Builder exe? C++ Builder exe安全嗎?

是C++ Builder安全編程工具還是任何人都可以反編譯並查看代碼?

+2

如果通過「代碼」你是指大會,那麼是的。 – mfontanini

+11

汽車可以拆卸。汽車製造商是否安全? – tenfour

+2

給予適當的努力,每一個可執行文件都可以被反編譯,但是我發現它幾乎不可能從C++ Builder二進制文件中取回原始代碼註釋... –

回答

9

簡短的回答,是的,它可以被反編譯,它不是「安全的」。計算機上運行的任何東西都可以拆卸,並通過閱讀拆卸進行檢查。 反編譯將意味着恢復甚至一些原始的編譯的源代碼 - 在某種程度上確實是可能的。畢竟,編寫一個可以將程序集翻譯成所需語言的程序是「正義」。如果一個人可以做到這一點,那麼程序也可以做到這一點,因爲它只是應用已知的規則和邏輯將程序從不同的表示/語言翻譯到另一個。然而,它不僅僅是那麼簡單......

在編譯過程中會丟失大量信息(如源文件,變量名稱,一些未使用的代碼,註釋等)。通過編譯器優化,這會進一步惡化,通常會導致在某些情況下導致反彙編難以讀取。因此,經過反編譯的源代碼只能提供關於實現細節的線索,主要只是邏輯,而不是用於構建項目的實際源代碼。

請注意這與差不多與任何形式的「安全」或程序本身的安全性有關。任何程序都可以以某種方式進行反彙編,工作程序背後的任何邏輯都可以被檢查和反向工程。程序內部不可能有的祕密,如果可以運行,則不能隱藏任何內容。

它往往是更容易拆卸一段可執行並通過其在組件的邏輯工作,不是試圖依靠在高級語言非常模糊,通常破碎重構如C許多這樣反編譯仍然產生。有時候,工具可以通過反彙編生成可讀和非常清晰的高級表示,但它們通常是簡單的情況和代碼的簡短摘錄。

底線是,你並不需要一個反編譯檢查,逆向工程和了解目標程序。所有需要的是訪問可執行文件,反彙編程序以及對彙編語言的理解。沒有辦法避免這個事實,而且它很少是一個真正的問題。

+1

它是不是像.Net應用程序?或者像MFC或QT exe文件? –

+0

它們都不是。 C++ Builder可能是用Delphi編寫的,所以爲了反編譯它,你必須找到一個工具,它可以從Delphi編寫的程序中重建原始源代碼的一些結構。儘管這樣的工具可能不存在,但這並不意味着它將不可能。 – zxcdw

+0

IDE和框架是用Delphi編寫的,但編譯器不是。 C++ Builder和Delphi都編譯爲本地程序集,但是在C/C++和Delphi語言不同的地方,該程序集的語義會有所不同。 –