MT5中的MQL代码作者保护。 - 页 2

 

就EX4而言,它很可能是被反编译的编辑器。

而且从保护措施来看,似乎是赤裸裸的。那里没有资金流动。

如果两个受保护的 组件(客户端和编辑器)都用钥匙操作--成功的希望就更大了。

;)

 

5分钱...


1.大多数(如果不是全部)产品需要连接才能使用。

2.因此,以 "服务 "的形式放在网络上的 "钥匙"(在作者的网站上)。

当你启动终端时,有指标或专家顾问的终端,在上面运行,"使用 "它...

因此,反编译问题不再是一个问题。


出类拔萃。该产品必须是非常有趣的。

对一个以超级秘密算法为 "基础 "销售的产品的评论

显示,没有什么有趣的东西,更没有什么用处...唉......。


原则上讲,算法本身是超强的,如果作者认为是,可以放在网站上。

专家顾问应该只在交易过程中处理和实施,这不是一个秘密,即使是公开发表的。

- EA发送一个请求(通过订阅)。

- 接收值

- 流程

- 贸易

- 可同时从事绘图工作

//

指标也一样,除了交易


账户号码 组织订阅本身...


总的来说,正如一位罗马皇帝曾经说过的:分而治之!

 
circlesquares :


事实是,反编译仍然是一个问题。如果所有必要的代码都在EA内,那么用已知的工作密钥反编译它,就可以得到EA的源代码及其所有后果。

然而,如果部分代码位于网站上,这就是一个非常不可靠的解决方案。网站的任何故障都会导致客户资金的令人难以置信的损失。

 
api :

另外,我曾经在某个地方看到有人提到,MQL5代码可以编译成本地CPU代码。我不知道:是真的还是假的,但如果是真的,这就是反编译保护中的一个严重漏洞。

这又会如何降低安全性?

通过使用非对称密码学来防止添加代码--如果密钥足够长,就不可能伪造签名。

如果你指的是反编译--它的自动化对机器代码来说是非常困难的。我不是指反汇编--这是可能的,因为处理器本身必须以某种方式执行代码。有自动反编译的尝试(http://www.hex-rays.com/),但它们主要被简化为对编译器生成的代码的所有可能选项的分析(这根本不是一个微不足道的任务,因为根据我的理解,转换为机器代码将在元引号一侧进行)。如果我们将代码生成器与月相绑定(即以不同方式编译结构体),反编译的自动化就变得不现实了

 
lea :

这又会如何降低安全性?

添加代码是通过非对称加密技术来防止的--如果密钥足够长,就不可能伪造签名。

如果你指的是反编译--其自动化对机器代码来说是非常困难的。我不是指反汇编--这是可能的,因为处理器本身必须以某种方式执行代码。有自动反编译的尝试(http://www.hex-rays.com/),但它们主要被简化为对编译器生成的代码的所有可能选项的分析(这根本不是一个微不足道的任务,因为根据我的理解,转换为机器代码将在元引号一侧进行)。如果我们将代码生成器与月相绑定(即以不同方式编译结构体),反编译的自动化就变得不现实了


的确,我是指拆卸。我,就像每个人经常遇到的情况一样,以我自己的能力来判断。对我来说,这类似于反编译,因为在大多数情况下,我可以很容易地从汇编文本中重构出算法。当然,通过使用多态病毒算法,这一过程会变得非常复杂,但最后,由于有反病毒,这种方法也不能完全保证。

 
api :


的确,我是指拆卸。就像每个人经常遇到的情况一样,我是根据自己的能力来判断的。对我来说,这就像反编译一样,因为在大多数情况下我可以很容易地从汇编代码中重构算法。当然,通过使用多态病毒算法,这一过程会变得非常复杂,但最后,由于有反病毒,这种方法也不能完全保证。

拆解大文件(即使用ida)和手动重建算法需要大量的时间和精力。人们是否会经常实践这种方法是值得怀疑的。但是,如果开发者设法以某种方式使生成的机器码复杂化,这似乎是未来机器码文件唯一可能的方法。
反病毒软件很少使用任何特殊算法。大多数情况下,他们紧紧抓住文件和指令序列的特殊性--我曾遇到过一个杀毒软件抱怨通过数列之和计算圆周率(我正在训练使用FPU)。反编译是一项根本性的不同任务。如果你在代码生成过程中进行了不可逆的代码突变,通过特征代码变体进行反编译原则上是不可能的(你将需要模拟/跟踪代码并观察在 "高层 "发生了什么--它是从哪里读来的,在哪里写的,调用了什么以及用什么参数......反病毒软件似乎使用类似的方法,但它们只观察各种系统函数的调用序列)。

关于不可逆突变的问题,我也许会抛出一些文章的链接(我希望管理部门和读者不会介意此类链接)。

 

就在MQL5中的代码乱码/混淆,你可以为每个函数指定一个特殊的修改器。

void MyFunc(int val) trash
  {
   Print("Val: ",val);
  }

到目前为止,它被称为垃圾,但我们很可能会把它改为保护


这将导致代码的深度垃圾化和指定函数的速度减慢。


此外,MQL5编译器使用了大量的优化,这极大地减少了反向反编译的可能性。

 
Renat :

只是在MQL5中的代码垃圾/混淆,你可以为每个函数指定一个特殊的修改器。

这很好 :) 是否可以调整垃圾代码的百分比? 函数是否会按其调用位置嵌入?

 
lea :

这很好 :) 是否可以调整垃圾代码的百分比? 函数嵌入是否会在调用点完成?

每次的垃圾都会不同。你不能自定义百分比--这要由编译器来决定。


自动内联函数已经工作了很长时间--编译器本身根据函数的大小和复杂程度作出决定。也就是说,大型函数不被内联。

 

呃...对我来说,生活是多么容易...

我没有黑客的欲望,也不打算在可预见的未来出售任何东西。

这就是人们的麻烦所在...

:)))