delphi - 黑客能否访问已编译的 exe Delphi VCL 应用程序内的变量、方法、单元等名称?

标签 delphi reverse-engineering decompiling software-protection

我正在为使用 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/

相关文章:

delphi - 如何释放接口(interface)对象 (Delphi 7)

delphi - 垂直绘制多个饼图?

delphi - 如何在循环中定期更改 TLabel 标题?

delphi - TREST请求 : How to add query string parameters to a PUT request

hibernate - 如何使用 hibernate.reveng.xml 更改自引用多对多集的名称?

c - 了解反编译汇编代码

linux-kernel - 从 RAM 快照解码页表和描述符表的工具

algorithm - 游戏服务器 : Packet Analyzation

java - 从 APK 反编译 Java - while 循环不执行任何操作

ios - iOS 中的反编译可能性以及如何防止它们