利用ASCII码对mq4源码做简单功能限制



   最近从台湾一个网站看到一篇文章,思路比较好,整理如下,

       MT4编译后会产生16位机器码,使用可阅读这个机器码的编辑器,如UltraEditor即可打开,代码中的标注很容易被更改。若使用ASCII码,会制造一些障碍。

一、给定版权信息

string CRChar[256]; int i;                      //版权字符串
for (i = 0; i < 256; i++) CRChar[i] = CharToStr(i);
Comment
(
/* Copyright c 2013, kitgain */
CRChar[67] + CRChar[111] + CRChar[112] + CRChar[121] + CRChar[114] + CRChar[105] + CRChar[103] +
CRChar[104] + CRChar[116] + CRChar[32] + CRChar[169] + CRChar[32] + CRChar[50] + CRChar[48] +
CRChar[49] + CRChar[51] + CRChar[44] + CRChar[107] + CRChar[105] + CRChar[116] + CRChar[103] +
CRChar[97] + CRChar[105] + CRChar[110] );

二、限制时间

bool ValidDate()
{ 
string TMchar[256]; int i;
for (i = 0; i < 256; i++) TMchar[i] = CharToStr(i);
int LastAllowedDate = StrToTime(
// 2010.12.31 23:59:00 
TMchar[50]+TMchar[48]+TMchar[49]+TMchar[48]+TMchar[46]+TMchar[49]+TMchar[50]+TMchar[46]+TMchar[51]+
TMchar[49]+TMchar[32]+TMchar[50]+TMchar[51]+TMchar[58]+TMchar[53]+TMchar[57]+TMchar[58]+TMchar[48]+TMchar[48]
);
if (TimeCurrent() >= LastAllowedDate) 
{
Print("Demo period has expired " + TimeToStr(LastAllowedDate,TIME_DATE|TIME_SECONDS));
return(false);
}
return (true);
}

三、限制单一账号用户

       锁密码,可以用一个公式计算的序列号来当密码。

bool PasswordCheck()
{ 
string PWchar[256]; int i; 
for (i = 0; i < 256; i++) PWchar[i] = CharToStr(i);
// AllowedAccountNo = Accountnumber
// Account number, on which expert is allowed to work
/* If password is 999999 */
int AllowedAccountNo = StrToInteger(PWchar[57]+PWchar[57]+PWchar[57]+PWchar[57]+PWchar[57]+PWchar[57]); 
if(AccountNumber() != AllowedAccountNo) return(False);
return(true); 
}

【链接】

ASCII码速查表

http://notepad.yehyeh.net/Content/Program/ASCII.php


本博客所有文章如无特别注明均为原创。作者:天泓评测
分享到:更多

相关推荐

发表评论

路人甲 表情
Ctrl+Enter快速提交

网友评论(0)