Mq4保护方法... - 页 4

 
那么你需要一个专业的解决方案来保护你的mql代码。这不是一个简单的问题。所有这些讨论过的dll东西对于保护你的代码都是无用的。
 

你们这些人有没有考虑过以下问题。

像往常一样运行MetaTrader。加载你那该死的受严重保护的指标或任何东西。运行一个进程转储工具,将 terminal.exe 进程的全部内存转储到一个文件中(......也许还有它分配的其他内存范围),使用十六进制编辑器或普通的文本编辑器,搜索你的完美保护指标的碎片。

我没有试过这个,但我有近30年的低级编程知识(680x0汇编程序,powerpc等等)。

狩猎愉快。

:)

 

好吧,当我回复这个主题时,我有点着急,因此想延长几句。像真正的代码保护这样的东西并不存在。你也许可以对你的代码进行加密、移动、旋转、联锁,但最后它又是裸露的。

比如说。在以前,我写过程序,并把代码的开始和结束地址转储到一个文件中。所有代码内的跳转都被设置为相对偏移,代码(毕竟是正常数据)被旋转了1位。因此,该代码不再存在。你可以在你的代码中附加一个加载器部分,让它再次取消旋转,并让它重新分配标签的地址(通常在hunks中找到)。跳到入口处,瞧,你又运行了程序。

因此,大多数人都会认为你的程序或指标得到了很好的保护,因为你无法从加密(可执行)中读取任何标签或其他东西。在最后,它又是可见的。一旦你运行它并让它通过你的进程(或程序)执行,就可以看到。

你可以随心所欲地残害、转移代码和或做保护。一旦程序运行,那么大部分的保护就又消失了(有一些例外,如密钥文件或序列号等)。

所以我假设指标也是如此。它们会被编译,是的。它是一个二进制文件吗?不知道。它是一个字节码吗?我也不知道。但是我很肯定,一旦你在终端.exe中运行它,并且你转储终端.exe为指标分配的内存区域,你可能会得到你的代码的痕迹(即使是里面的用过的文本的字符串或类似的)。

也许你会得到某种CODE,就像你的*.mql4文件一样。也许你不会。也许你会得到一些字节码,也许不会。也许你会得到一些东西。也许terminal.exe里面有它自己的代码解释器,解释由metaeditor.exe生成的代码,所以terminal.exe能理解。正如我之前所说,我没有试过。

我想解释的是,如果你想加密或保护你的代码,那么不要总是从一侧看到它(例如,元编辑器编译的ex4文件,用一些未知的代码覆盖。也要从另一面看。一旦你运行它,你的受保护的代码又是裸露的。而这是让手指上的一个部分。可以工作。一定不行。

通过转储运行中的代码的开始和结束地址,有一个负面的影响是这样的。一切都被初始化了。数组被填充了值,占位符可能有值等等。

 

说得好,阿里。谢谢。

内存转储中的采矿似乎是昂贵的解决方案。到目前为止,唯一便宜的解决方案来自于Metaquotes的知识泄漏。我期望有人--有能力进行内存代码挖掘的人--可以自己从头开始编码MQL4,而不费吹灰之力。这使我目前感到安全,直到新的知识泄漏出现,使廉价解码器出现。然后B计划就来了--编码的方式使拆解后的代码篡改值得高价。