黑客可以访问已编译的exe Delphi VCL应用程序中的变量,方法,单元等名称吗?

Guy*_*ush 5 delphi decompiling reverse-engineering software-protection

我正在为使用Delphi 7创建的软件设计保护模式,想知道我是否需要担心函数/过程,变量等中使用的名称。“黑客”能否在已编译的exe VCL应用程序中访问这些名称?在没有任何第三方保护(即混淆)的情况下使用Delphi创建的?

Arn*_*hez 6

Delphi将其源代码编译为原始二进制文件-例如,与Java或C#/。Net签订合同,后者会编译为某种中间语言,这些语言很容易无法编译,并且经常需要混淆。用于Delphi的反编译工具非常粗糙且无效,甚至是最复杂的工具

默认情况下,没有将调试信息添加到Delphi可执行文件中。而且Delphi 7的RTTI数量有限-在Delphi 2010中已得到很大增强。人类可读的RTTI信息仅涉及枚举文本,published类的属性以及interface从继承的信息IInvokable。信息很少。

因此,几乎没有办法从典型的Delphi 7可执行文件中检索变量名和函数名。除非将.map文件连接到可执行文件(仅函数名和全局变量,而不是局部变量)。

请注意,这是关于源代码的-如您所问。对于GUI / VCL应用程序,.dfm内容(即TForm布局)被序列化为可执行文件,并且可以恢复。