Jer*_*dge 4 delphi security embedded-resource
请参考我之前的一个问题.我问的是从DLL加载编译资源.然后参考David Heffernan的回答.他的建议是使用内置机制直接从DLL的实例加载资源,甚至不使用我自己的导出函数.这给我指出了一个安全漏洞.
如果确实如此,如果可以使用这种类型的解决方案,那么任何外部第三方都可以从任何Delphi Application/DLL加载资源吗?嵌入式资源有多安全?假设我使用嵌入式资源编译DLL.有人可以拿这个DLL并提取资源吗?考虑到他们必须知道资源名称,它有多容易?他们能够检测到编译的资源并获得命名资源的列表吗?如果是这样,那么我将必须实现我自己的安全级别并加密每个嵌入式资源并使用登录进行解密.
jac*_*ate 10
在资源部分 A的Windows便携可执行文件是可访问的,并枚举与读取权限上的可执行文件的任何程序/用户.
Windows API提供了一系列用于处理资源的功能,包括以下功能:
事实上,有很多现成的工具可以执行此操作.您自己的Delphi安装有一个名为Resource Explorer的演示项目,通常安装在该文件夹中Samples\Delphi\VCL\resXplor.
正如您所看到的,拥有这些知识和/或工具的任何人都不仅可以读取,而且可以删除和替换Windows可执行文件中的资源,无论生成它的编译器如何.
您可以在文章深入了解Win32可移植可执行文件格式的文章中找到有关PE文件格式的更多信息.