文章 "请保护好自己,开发员!"

 

新文章 请保护好自己,开发员!已发布:

知识产权的保护依旧是个大问题。 本文对 MQL4 程序保护的基本原则进行阐述。 通过这些原则,你可以确保你所开发的成果不会被窃取,或至少能够让小偷的“工作”复杂化,以让他罢手。

MQLEnigma - 是一款控制台应用程序。 该程序有强制参数 - 用于编码的文件名。 此后,将对文本进行以下操作:

  1. 插入所有 #include 文件。 如果你拥有在其他 Expert Advisor 的不同文件内使用的全局变量,则必须将它们集中到一个共同文件内。 这样,更换只会影响这个特定的 Expert Advisor,其他 Expert Advisor 则会继续使用包含了非加密名称的文件。

  2. 从得出的总文本中删除所有注释(不要遇到类似 // int i=0 的东西)。

  3. 将已清除的文本分成两部分:函数主体(它们被删除并单独分析),和所有外部变量和 #define(以及函数声明)。

  4. 从外部文本块中移除所有导入函数的描述。 它们由外部命名,无法被编码。

  5. 在两个文本块(外部和内部)中找到常用类型的描述,如 int, string 等等。 从这些类型中删除变量初始化和数组维度。 

  6. 从 #define 部分删除 #define 关键字和参数设置,从而仅留下已定义的名称。 同时删除已保留的关键字(即你不会不小心将洋红色名称更换为一些无用资料)。

  7. 因此,仅留下了变量名称、内部函数和已声明的常量。 这些名称将收入常用列表内,复制项目将从该列表中移除(如 int i=0; 这样的描述可在部分函数内发生)。 创建用于更换的“无用资料”变量名称并确定找到的识别器长度,从而从最长的那个开始执行更换。 否则,如果出现像 str 和 str2str 这样的两个变量,如果先更换两个 str “部分”的话,则最长的 str2str 的名称会出错。

就是这样:已清除的完整 Expert Advisor 文件文本插入了所有 #includes,按 开放 后缀形式写入单独文件。 随后更换识别器。 匹配识别器名称的表格将以 编码中 后缀形式写入单独文件中,已编码的文件以 已编码后缀形式写入。 后缀形式写入单独文件。 你需要编译此单独文件并分配得出的 ex4。

作者:Sergey Kravchuk