我正在为使用 Delphi 7 创建的软件制定保护模式,并且想知道是否需要担心函数/过程、变量等中使用的名称。“黑客”可以访问编译后的这些名称吗?使用 Delphi 创建的 exe VCL 应用程序没有任何第三方保护(即混淆)?
最佳答案
Delphi 将其源代码编译为原始二进制文件 - 例如在构造中Java 或 C#/.Net 编译成某种中间语言,这些语言很容易反编译,并且通常需要混淆。 Delphi的反编译工具有very rough and ineffective - 甚至是most sophisticated ones .
默认情况下,Delphi 可执行文件中没有添加调试信息。 Delphi 7 的 RTTI 集有限 - 它在 Delphi 2010 中得到了很大增强。人类可读的 RTTI 信息仅涉及枚举文本、类的已发布
属性、接口(interface)
继承自IInvokable
。所以信息非常少。
因此,几乎没有办法从典型的 Delphi 7 可执行文件中检索变量名称和函数名称。除非您将 .map
文件加入到可执行文件中(仅函数名称和全局变量,而不是局部变量)。
请注意,这是关于源代码的 - 正如您所问的。对于 GUI/VCL 应用程序,.dfm 内容(即 TForm 布局)被序列化为可执行文件,并且可以恢复。
关于delphi - 黑客能否访问已编译的 exe Delphi VCL 应用程序内的变量、方法、单元等名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58881934/