首先:也许这是一个 XY 问题:我真正想要解决的是一个穷人的保护计划,以防止对我们的源代码进行间谍活动。我们在 C# 项目中使用 HALCON(一个图像处理库);问题是 HALCON 部分存储为普通源代码,并且仅在程序开始时当您告诉它源代码在哪里时才由 DLL 编译/收集。我的目的是将源以加密形式保存在磁盘上,并在初始化 DLL 之前在程序开始时将其加载/解密到内存的一部分。这个想法是拒绝通过文件系统访问源(插入 USB 记忆棒并复制) - 我知道这是一种相当薄弱的保护形式,如果我遗漏了一些明显和优越的方法,请报告。
我一直在研究 RAM 磁盘,但这些对保护没有帮助,因为应用程序是 24/7 运行的。基于内存的文件将是理想的,因为它们在应用程序关闭时消失了,并且应该或多或少对外界不可见,但我必须为 DLL 提供一个简单的 DOS 文件路径(例如“C:/HALCON/ourproject”)的文件流/描述符,所以问题仍然存在,如果一个人可以(在 Windows 中!)用驻留在 RAM 中的瞬态部分覆盖每个进程的文件系统。
编辑:我使用的是 HDevelop-Interface,也就是说,HALCON 过程是通过调用 HALCON 解释器的过程调用的 HDevProcedure 对象调用的。