有没有一种方法可以将DLL的文件系统访问(仅读取)重定向到内存映射的文件/目录?

时间:2019-04-09 15:25:52

标签: c# .net windows dll halcon

首先:也许这是一个XY问题:我真正要解决的是一个穷人的保护方案,以防止窥探我们的源代码。我们在C#项目中使用HALCON(图像处理库);事实是,HALCON部件存储为纯源代码,并且仅当您告诉程序源位置时才由DLL编译/收集。我的意图是使源以加密形式存储在磁盘上,并在初始化DLL之前在程序开始时将其加载/解密到一部分内存中。这样做的目的是拒绝通过文件系统(插入USB记忆棒并进行复制)访问源-我知道这是一种较弱的保护形式,如果我错过了一些明显而优越的方法,请报告。< / p>

我一直在研究RAM磁盘,但是由于应用程序位于24/7上,因此这些磁盘无助于保护。基于内存的文件将是理想的,因为它们在应用程序关闭时就消失了,并且应该或多或少对外界不可见,但是我必须给DLL一个简单的DOS文件路径(例如“ C:/ HALCON / ourproject”)一个文件流/描述符,因此问题仍然存在(是否可以在Windows中)在每个进程中使用驻留在RAM中的过渡部分覆盖每个进程的文件系统。

编辑: 我正在使用HDevelop-Interface,也就是说,通过HDevProcedure对象调用了HALCON过程,该对象为过程调用了HALCON解释器。

1 个答案:

答案 0 :(得分:0)

您可以直接将过程转换为C#代码,而不是直接使用HDevelop:File-> Export或Export Library Project:

enter image description here

您的代码将与项目的其余部分一起编译,但是您应该意识到,反编译C#程序非常容易。