没有(或加密)RCDATA的EXE?

时间:2010-11-04 14:26:19

标签: delphi exe

我正在使用Delphi 2010编译我的应用程序。我的问题(对任何其他人来说可能不是问题)是当您使用任何资源编辑器打开EXE时,您可以看到保存表单数据的RCDATA。我不喜欢我的程序被“暴露”的想法所以我想问你是否有任何技巧从EXE中删除该信息或加密它没有人(至少从资源编辑器)可以看到它?

5 个答案:

答案 0 :(得分:2)

您可以通过来源完全创建表单。 相反:你不能使用表单设计器。

使用gexperts您可以将现有表单转换为源。

加密和压缩不是解决方案。当应用程序可以加载工程师可以执行的资源时。

答案 1 :(得分:1)

我编写了一个DFM压缩器,它在Delphi IDE内部工作,在编译时压缩DFM。然后它在运行时动态解压缩它们。

我以15美元的价格出售它,并附带src。

目前适用于D7,D2006,D2007和D2009。我不拥有D2010,但我最近获得了XE,我将在不久的将来升级它并使其可用于XE。如果有人提出XE请求,甚至是D2010的兼容性,我会尽快做到这一点。

它被称为DeForM系统,可以找到here

我将它用于我的一些个人项目。

答案 2 :(得分:0)

您需要修改VCL源代码以教授表单加载器以将资源转移到其他位置。此外,编译将需要后期构建步骤或从已编译的EXE中剥离资源并将它们移动到单独的加密文件(例如)。所有这些都是手工操作,我从来没有听说过所描述任务的任何自动化。

如果您的表单最终确定(即不会进一步修改),您可以做的一件事就是使用GExperts并使用他们的Component To Code专家在运行时创建表单及其内容。但修改此类表单需要更改代码。

答案 3 :(得分:0)

它实际上只包含您放在表单上的组件的已发布属性和表单本身(实际上是每个表单的DFM文件的内容),而不是任何源代码。因此,即使有人提取了这些数据,他们最多只能生成一个与您的表单视觉相同的表单,但没有为表单编写的代码。

从资源编辑器隐藏此类数据的一种方法是在运行时构建表单中使用的所有组件,而不是使用表单设计器。这样,DFM资源将不包含其数据。至于我记得,有些工具能够自动收到一个DFM文件作为输入,并生成组件创作的运行时代码(例如GExpert),这样你就可以复制\粘贴在窗体的OnCreate事件处理程序的代码。

另一种选择是使用EXE压缩器。压缩器将压缩您的EXE文件,因此文件的内容将被更改,并且在解压缩之前不可用。像UPX这样的工具可以压缩您的EXE文件,并在执行EXE时动态解压缩。请注意,使用像UPX这样的已知压缩器有一个缺点,即许多破解工具或破解程序可以检测它们并在处理之前自动解压缩EXE。因此,如果您需要更高的安全性,最好选择自定义压缩器。

答案 4 :(得分:0)

我没有使用它,但Citadel for Delphi会在您的EXE中自动压缩和加密DFM资源。它看起来并不像他们已经更新过去的Delphi 2009,但它正是你正在寻找的。