如何将 c、c++ 和 python 代码编译为“已发布/最终”版本?

MLS*_*LSC -2 compiling security c python c++

我想知道是否有办法编译 C、C++ 和 Python 代码,以便无法在 Linux 上对其进行逆向工程?

我听说在 Windows 上有一些方法可以做到这一点,但我正在使用 Linux。

我想安全地编译我的代码,如已发布或最终版本。

更新

至少我想让普通用户很难拆卸,

我在 C 和 C++ 中使用 GCC,如果你向我介绍最好的 Python 编译器,我将不胜感激。

uml*_*ute 5

前言

你可能不想花时间阻止人们反汇编你的代码:而是专注于让你的项目变得更好,这样一旦你的竞争对手弄清楚你是如何做功能 X 的,你的软件就已经有了功能 Y...

道理很简单:如果你有一个沉闷的项目,那么没有人会愿意拆解它,而你一直投入的时间都是徒劳的。otoh,如果你的产品很酷,一大群黑客会花时间弄清楚你是怎么做到的。您对此无能为力(而且主要参与者(例如微软,...)也会遇到这种情况)。但是这些黑客总是会落后一步:从汇编程序中重新构建程序并非易事。所以确保你继续前进,他们会留在后面。

因此

确保您的代码不包含调试符号。与gcc这基本上意味着你应该把关闭-g标志。(很可能这正是 Visual Studio 的“发布”版本为 MSVC 所做的)。

您可能还会考虑外部库的静态链接(为了通过动态链接器尽量减少代码注入)

最后

不要相信任何供应商,提供发布版本将以任何方式保护您的二进制文件。