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

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

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

Delphi将其源代码编译为原始二进制文件-例如Java或C#/。Net编译成某种中间语言,这些语言很容易无法编译,并且经常需要混淆。用于Delphi的反编译工具是very rough and ineffective-甚至是most sophisticated ones

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

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

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

,

与几乎每个EXE一样,您可以看到从哪个库(即CreateWindowA()等)导入了哪些功能(即SendMessageA()SHELL32.DLL等)。只需将EXE拖到文本编辑器中,然后搜索.dll-即可看到可读的文本。

通过链接功能索引可以避免通过功能名称链接;恶意软件采取的一种方法(不允许扫描程序识别“错误的”函数名称)是枚举库的所有导出函数名称,对每个名称进行哈希处理,然后将该哈希与以前哈希的文本进行比较。

本文链接:https://www.f2er.com/3093621.html

大家都在问