软件控有时会收到一些股友的求助。但很多人未必真正明白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是不同的作者编写的,方式并不是有同样规律可循的。因为相对花时间和精力。
软件控声明
1,本站部分资源为网络收集,如侵犯您了权益,请与本站联系,我们将尽快删除!
2,本帖如为原创资源/教程分享帖,则本站与发布用户共同享有内容版权!
3,本站管理有权在不经发布者同意的情况下,根据版规及相关法律法规删除/修改本帖!
4,如无特别说明,任何个人或者组织不得转载本帖内容!
5,股票公式,股票池相关交流仅限于技术层面的探讨,并非股票推荐与投资建议!股市有风险!请勿据此买卖!否则后果自负!
6,未尽事宜最终解释权归本站所有!