最近从台湾一个网站看到一篇文章,思路比较好,整理如下,
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);
}
【链接】
http://notepad.yehyeh.net/Content/Program/ASCII.php
发表评论