关于通达信DLL类型的指标的破解说明

软件控 2022-04-03 4159

软件控有时会收到一些股友的求助。但很多人未必真正明白DLL函数类型的指标。下面软件控就带大家从头说起。


很多股票软件,都一般会提供公式管理器,供用户自行编写指标。然后也提供了很多函数供用户直接调用。

举个最简单的例子。均线函数 MA。 代码 M5:MA(CLOSE,5); 就是指输出变量M5为5日均线。放到具体的主图上就是画出5日均线。


然后因一些特殊算法需求,通达信等股票软件自身未必能实现所有用户需求的算法。或者用户根本不满意通达信当前已有的算法的速度。于是通达信提供了DLL接口,供用户编写实现自己的函数。相当于用户编写了DLL文件,供通达信调用。

用法:
 TDXDLL1(funcid,param1,param2,param3), funcid为数字,表示调用dll函数编号.


于是用户就可以根据通达信提供的DLL接口编程的规范,使用他/她所熟悉的编程语言进行开发DLL来实现所需要的函数了。

另外由于通达信普通加密和完全加密目前比较容易被破解,加上DLL的编程的灵活性。原用于给用户编写自有函数的DLL,现在已经被大多数作者用来作另外一种形式的加密。即在编写DLL函数时同时加上了时间限制,机器绑定,网络验证等等逻辑。这样只有用户是授权的,才能输出正常的函数返回值,这样指标才能正常显示。


好了,现在说回通达信DLL函数类型的指标破解。常见的破解结果有2种:

一是你可以把DLL看作是EXE或者EXE的模块,它的破解其实相当于软件。跟踪相关的反汇编代码,找到相关的验证逻辑,破解掉验证限制。让它不管什么情况,均能被它的算法内部认为你是授权了的。这样就确保指标仍然能够正常显示了。


二是跟一基本一样,但是跟踪出相关的算法。比如TDXDLL(1,C,5,0); 这样的代码,如果跟踪出DLL1号函数的算法逻辑就是与已有的5日均线一致。那么这个DLL函数内部即使有一些验证,我们也可以直接替换为 MA(C,5)来实现免DLL函数的方式。当然这只是举例,具体作者挑了什么函数来做DLL替换,参数又实际有起什么关系。这些都是要在破解掉验证的基础上跟踪反汇编分析才知道的。有的算法复杂的话,未必能找到原通达信可以替换的函数。


当然还有第三种的可能,就是你直接付一笔费用找原作者要源码?哈哈。

不管哪一种方式,DLL的破解毕竟不是像破通达信普通加密和完全加密那样,有现成的成型的工具直接破解即可。因为上面所讲的DLL是不同的作者编写的,方式并不是有同样规律可循的。因为相对花时间和精力。


最新回复 (0)
返回
发新帖