Security

如何將 c、c++ 和 python 程式碼編譯為“已發布/最終”版本?

  • February 24, 2014

我想知道是否有辦法編譯 C、C++ 和 Python 程式碼以便不能在 Linux 上對其進行逆向工程?

我聽說在 Windows 上有一些方法可以做到這一點,但我正在使用 Linux。

我想安全地編譯我的程式碼,作為發布版本或最終版本。

更新

至少我想讓普通使用者很難拆機,

我正在為 C 和 C++ 使用 GCC,如果您向我介紹 Python 的最佳編譯器,我將不勝感激。

前言

你可能不想花時間阻止人們反彙編你的程式碼:而是專注於讓你的項目變得更好,這樣一旦你的競爭對手弄清楚了你是如何實現 X 功能的,你的軟體就已經有了 Y 功能……

道理很簡單:如果你有一個枯燥的項目,那麼沒有人會願意拆解它,而你一直在白費力氣地投入。otoh,如果你的產品很酷,一群黑客會花時間弄清楚你是怎麼做到的。您對此無能為力(主要參與者(如微軟,…)也會發生這種情況)。但這些黑客總是會落後一步:從彙程式序重新建構程序並非易事。所以要確保你繼續前進,他們會留在後面。

因此

確保您的程式碼不包含調試符號。這gcc基本上意味著你應該關閉-g標誌。(很可能這正是 Visual Studio 的“發布”版本為 MSVC 所做的)。

您可能還會考慮外部庫的靜態連結(以使通過動態連結器進行的程式碼注入最小化)

最後

不要相信任何供應商,提供發布版本會以任何方式保護您的二進製文件。

引用自:https://unix.stackexchange.com/questions/116668