我想限制谁/什么可以使用我的C ++ DLL。我有一个 .mq4
脚本(或者它可以是我猜的任何其他内容),我使用DLL
- #import
- ed函数。
我想要做的限制是: DLL中有一个静态文件路径,在每个函数的开头我只计算一个新的校验和(sha1
) file(文件路径指向的位置)并将其与原始校验和(也是静态)进行比较。这很好,因为如果有人修改.mq4
,该功能将无效。
我的问题是:如果我只是将原始的.mq4
留在那里,我创建了一个新的,在那里导入DLL,我可以毫无问题地使用DLL,因为在DLL中,我正在检查原始.mq4
,(静态文件路径指向的位置),而不是我使用它的位置。
所以我应该弄明白,导入DLL的位置并检查该文件的总和。或许还有另一种技术,我不知道。
答案 0 :(得分:0)
为了知道谁导入/谁称为DLL函数,传统的#import
机制太轻量级,主要是开源的潜在攻击者。
根据设计,有史以来最强大,最智能,最难以平行的保护是 occam
并行执行语言(用于透明机),其中来电者和被叫者之间就通信达成一致协议与否。因此,没有人可以通过发送未被请求的"来劫持和使用远程服务。调用
第二个最接近的是(occam
- 遗留粉丝)语言,支持基于CSP的方案 - 无论是python,Go还是其他符合CSP标准的引擎。
世界其他地方习惯于生活在一个环境中,在这种环境中,对象和DLL无休止地容易受到攻击者的攻击,这些攻击者可能在任何时候超载/误用任何DLL服务或对象方法,而DLL端或一旦呼叫者不被允许/被允许请求这样的服务,对象实例就无法保护自己并拒绝/拒绝服务。
MQL4
具有与CSP沟通的能力 - " safe"环境,所以如果您确实有这样的需求,请让您的MQL4
- 侧连接到远程端并使CSP安全受益,以避免未经授权使用服务。
如果您不想移动那么远,请尝试使用代理调解您的C ++ DLL: