构建一个 delphi EXE 其中没有过程名称?
Build a delphi EXE which has no procedure names in it?
出于安全原因,一位客户询问我们是否可以构建他的可执行文件的一个版本,其中不包含对我们在代码中使用的过程名称的引用。起初我认为这相对容易,并且可以通过不使用调试信息进行构建来实现。
遗憾的是...用记事本之类的文本编辑器打开EXE时,我们的EXE还是能看到很多信息。特别是 public 的过程名称。我认为如果没有调试信息,所有这些都会被混淆。
现在我想知道是否有一种简单的方法可以实现这一点。构建我的 EXE,它没有引用过程名称。
欢迎提出任何建议。
您可以在不希望发出扩展 RTTI
信息的单元中包含以下编译器指令,并且仅保留 RTTI
用于流式传输或通常使用的已发布属性、字段和方法其他基于 RTTI
的机制。
{$RTTI EXPLICIT METHODS([vcPublished]) PROPERTIES([vcPublished]) FIELDS([vcPublished])}
但是,这不会混淆 class 名称,并且会完整保留 RTL/VCL/FMX RTII
信息。
Any suggestion is welcome.
在主窗体中嵌入网络浏览器并将所有代码移至网络应用程序。然后在您的 Delphi 程序中启动网络应用主页。现在尝试使用记事本 - 和宾果游戏。 :)
出于安全原因,一位客户询问我们是否可以构建他的可执行文件的一个版本,其中不包含对我们在代码中使用的过程名称的引用。起初我认为这相对容易,并且可以通过不使用调试信息进行构建来实现。
遗憾的是...用记事本之类的文本编辑器打开EXE时,我们的EXE还是能看到很多信息。特别是 public 的过程名称。我认为如果没有调试信息,所有这些都会被混淆。
现在我想知道是否有一种简单的方法可以实现这一点。构建我的 EXE,它没有引用过程名称。
欢迎提出任何建议。
您可以在不希望发出扩展 RTTI
信息的单元中包含以下编译器指令,并且仅保留 RTTI
用于流式传输或通常使用的已发布属性、字段和方法其他基于 RTTI
的机制。
{$RTTI EXPLICIT METHODS([vcPublished]) PROPERTIES([vcPublished]) FIELDS([vcPublished])}
但是,这不会混淆 class 名称,并且会完整保留 RTL/VCL/FMX RTII
信息。
Any suggestion is welcome.
在主窗体中嵌入网络浏览器并将所有代码移至网络应用程序。然后在您的 Delphi 程序中启动网络应用主页。现在尝试使用记事本 - 和宾果游戏。 :)