gpt4 book ai didi

security - 任何第三方都可以从我的项目加载嵌入式资源吗?

转载 作者:行者123 更新时间:2023-12-03 15:20:08 29 4
gpt4 key购买 nike

请引用我的一个previous questions 。我问的是如何从 DLL 加载已编译的资源。然后引用David Heffernan的回答。他的建议是使用内置机制直接从 DLL 实例加载资源,甚至不使用我自己的导出函数。这向我指出了一个安全漏洞。

如果情况确实如此,如果这种解决方案可行,那么任何外部第三方都可以从任何 Delphi 应用程序/DLL 加载资源吗?嵌入式资源的安全性如何?假设我编译了一个带有嵌入资源的 DLL。有人可以获取这个 DLL 并提取资源吗?考虑到他们必须知道资源名称,这有多容易?他们是否能够检测编译了哪些资源并获取命名资源的列表?如果是这样,那么我将必须实现自己的安全级别并加密每个嵌入资源并通过登录对其进行解密。

最佳答案

Windows Portable Executable资源部分任何对可执行文件具有读取权限的进程/用户都可以访问和枚举。

Windows API提供了一系列函数work with resources ,包括以下功能:

  • 添加、删除和替换资源
  • 枚举资源
  • 查找并加载资源
  • 资源文件格式
  • 使用资源

事实上,有很多现成的工具可以执行此操作。您自己的 Delphi 安装有一个名为 Resource Explorer 的演示项目,通常安装在 Samples\Delphi\VCL\resXplor 文件夹中。

如您所见,任何有知识和/或 tools 的人不仅可以读取,还可以删除和替换 Windows 可执行文件中找到的资源,无论生成它的编译器是什么。

您可以在文章 An In-Depth Look into the Win32 Portable Executable File Format 中找到有关 PE 文件格式的更多信息。 .

关于security - 任何第三方都可以从我的项目加载嵌入式资源吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14741696/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com