下载MetaTrader 5
要添加评论,请登录注册
在代码库发布您的应用程序。数以百万的交易者都将看到它!
zhang
25
zhang 2011.03.13 06:16 

防反编译外汇指标加密方法

http://www.jmi8.com/ http://www.zlocksoft.com/

加密特点: 下载 防反编译加密后例子

  • 加密后,将永远不会被目前的反编译软件 ex4-to-mq4.exe 反编译出源码。

  • 可以限制加密后MT指标,只能安装在固定计算机上(可以固定1-3台)。

  • 可以限制指标使用期限。过期不能使用,续费后,可以继续使用。

防反编译 加密步骤:

  1. 运行我们提供的加密工具:Pr otectEx4.exe,它将把您的 EA 或普通指标文件 *.ex4 加密成新的能防反编译的 ex4 文件(如下图)。
    首先选择待加密的 ex4 文件,可以用鼠标点击“浏览”,找到您的未加密的 EA 或指标 ex4 文件。
    然后输入或选择,加密后 ex4 的新文件名和保存目录。同样可以点击“浏览”选择其保存目录。
    点击“开始保护”,就把您的 ex4 文件加密成不能被反编译的新 ex4 文件了。
    可以继续选择新的 ex4 加密,直到把所有您的 ex4 文件全部加密完成。
    加密后的 ex4 文件将永远不能被防反编译软件破解。您可以下载 防反编译加密后例子 安装看加密后效果。可以下载最新版反编译软件,破解这个例子系统里面的加密后的 ex4 试试。

  1. 按照我们提供的加密方法,把您加密后的所有 ex4 做成一个安装包程序 Setup.exe
    您可以直接把这个安装程序 Setup.exe 发给您的用户即可。也可以放到网上供您的用户下载。
    外汇_公式 单独安装软件制作方法
    也可以把加密后的公式与MT系统做成在一起安装的安装包软件,如上面那个防反编译加密后例子

  2. 把制作好的 Setup.exe授权码 发给您的用户。
    如果采用的是因特网认证加密方式,授权码类似与:
    序列号: JMI81-V2LZU-C159T-2E44B-DZWP8
    密 码: MwONo4mxPz
    如果采用的电子注册加密方式,您的用户需要先把运行安装软件显示的 机器码 发给您,您然后用我提供的注册机软件,生成 注册码,并发给您的用户注册即可。

  3. 您的用户鼠标双击 Setup.exe,它将把加密后的 EA 或其它指标及加密支持文件,安装到您计算机上的 MT 系统中。可以多次执行,安装到多个 MT 系统里。
    对于采用因特网认证加密方式的,第一次运行 Setup.exe,会显示下面的注册窗口:
    用户可以填入个人信息,然后点击“试用”,就可以试用您的指标公式。您可以在管理后台设置用户试用的期限。一旦过期,在这台计算机上将永远不能试用。
    对于付费购买的用户,您要提供他们正式版的序列号和密码,用户输入后,按“正式版注册”就可以了。

    当您购买这个加密软件时,应该告诉我们注册注册窗口应该如何显示。我们好编写到软件中。
    例如:
    窗口的标题名称:欢迎使用 XXXXX 系统;
    您准备让用户看到的您的联系方式,电话、QQ 号、网址等;
    是否需要用户填写个人信息,是不是去掉这部分的显示。
    是否包含“试用”功能。
    如果您有自己的 logo 图标,可发给我们,编写到程序中,代替这个金钥匙图标。

对于采用电子注册加密方式的,第一次运行 Setup.exe,会显示类似下面的注册窗口:

  1. 您可以登录管理后台,对用户的使用期限进行管理设置。查询用户在注册时填写的的信息。
    管理后台网址类似于:http://z.jmi8.com/cnsy/Guanli.aspx
    您可以点击“Edit”或“编辑”,修改用户的使用期限和安装计算机数量等内容,修改后,然后点击“Update”或“更新”,就完成了修改。

  1. 如果您想让你的指标在窗口上显示使用期限(如下图),可以先在您mq4源码中,添加类似下面的代码:
    Ret = GetExpieDate(Testlock);
    string Date_Limit="Expiration Date : " + DoubleToStr(Testlock[11]+2000,0) + "-"+ DoubleToStr(Testlock[12],0) + "-" + DoubleToStr(Testlock[13],0);
    ObjectDelete("Show_Date_Limit");
    ObjectCreate("Show_Date_Limit",OBJ_LABEL, 0, 0, 0 );
    ObjectSet ("Show_Date_Limit",OBJPROP_CORNER, 0);
    ObjectSet ("Show_Date_Limit",OBJPROP_XDISTANCE, 5);
    ObjectSet ("Show_Date_Limit",OBJPROP_YDISTANCE, 20 );
    ObjectSet ("Show_Date_Limit",OBJPROP_BACK, True );
    ObjectSetText("Show_Date_Limit", Date_Limit, 10, "Times New Roman", Yellow);

  1. 如果您自己把部分 mq4 源码写入了 DLL,并且有编写的 DLL 源码。我们可以提供一个静态链接库(*.lib 文件),供您在自己的 DLL 中调用,这样,您的 DLL 也需要验证我们提供的加密模块。一旦过期或更换计算机,您的 DLL也不能正常运行了。起到保护您 DLL 的作用。

 


泰山翔宇电脑技术工作室

Email: Ok@Jmi8.com QQ: 690537661

YiMan Wu
18
YiMan Wu 2011.05.06 03:59  

太垃圾了!你的所谓加密后将永远不会被目前的反编译软件 ex4-to-mq4.exe 反编译出源码,已经破解,别到处骗人了

#import "lockmq45.dll"
   int Jmi8_B(int& a0[]);
   int Jmi8_G(int& a0[]);
#import

int gi_76 = -1;
int g_count_80 = 0;
int gia_84[55];
extern double TakeProfit = 50.0;
extern double Lots = 0.1;
extern double TrailingStop = 30.0;
extern double MACDOpenLevel = 3.0;
extern double MACDCloseLevel = 2.0;
extern double MATrendPeriod = 26.0;

int init() {
   string text_0;
   ObjectDelete("Show_Date_Limit");
   ObjectCreate("Show_Date_Limit", OBJ_LABEL, 0, 0, 0);
   ObjectSet("Show_Date_Limit", OBJPROP_CORNER, 0);
   ObjectSet("Show_Date_Limit", OBJPROP_XDISTANCE, 5);
   ObjectSet("Show_Date_Limit", OBJPROP_YDISTANCE, 20);
   ObjectSet("Show_Date_Limit", OBJPROP_BACK, TRUE);
   ObjectDelete("Website");
   ObjectCreate("Website", OBJ_LABEL, 0, 0, 0);
   ObjectSet("Website", OBJPROP_CORNER, 0);
   ObjectSet("Website", OBJPROP_XDISTANCE, 5);
   ObjectSet("Website", OBJPROP_YDISTANCE, 35);
   ObjectSet("Website", OBJPROP_BACK, TRUE);
   ObjectSetText("Website", "Home  Website : http://Jmi8.com", 10, "Times New Roman", Yellow);
   if (IsDllsAllowed() == FALSE) {
      text_0 = "Please select \"Allow DLL import\", and re-attach to a chart!";
      ObjectSetText("Show_Date_Limit", text_0, 10, "Times New Roman", Yellow);
      return (0);
   }
   gi_76 = Jmi8_B(gia_84);
   text_0 = "Expiration Date : " + DoubleToStr(gia_84[11] + 2000, 0) + "-" + DoubleToStr(gia_84[12], 0) + "-" + DoubleToStr(gia_84[13], 0);
   ObjectSetText("Show_Date_Limit", text_0, 10, "Times New Roman", Yellow);
   if (gi_76 != -8) {
      Alert("MT4 Program is not registered, please contact the software vendor to buy License!");
      return (-1);
   }
   return (0);
}

int deinit() {
   ObjectDelete("Show_Date_Limit");
   ObjectDelete("Website");
   return (0);
}

int start() {
   string ls_0;
   int li_8;
   string text_12;
   int ticket_72;
   if (gi_76 != -8) return (-1);
   if (!IsTesting() != FALSE) {
      g_count_80++;
      if (g_count_80 > 101) g_count_80 = 0;
      if (g_count_80 == 1) {
         Jmi8_G(gia_84);
         ls_0 = DoubleToStr(gia_84[11] + 2000, 0) + "-" + DoubleToStr(gia_84[12], 0) + "-" + DoubleToStr(gia_84[13], 0);
         li_8 = (StrToTime(ls_0) - TimeCurrent()) / 24 / 3600;
         if (li_8 < -5) return (-1);
         if (li_8 < 0) Alert("The trading systems is expired, it will be closed in a few days, please contact the seller to purchase the rental period.");
         text_12 = "Expiration Date : " + ls_0;
         ObjectSetText("Show_Date_Limit", text_12, 10, "Times New Roman", Yellow);
      }
   }
   if (Bars < 100) {
      Print("bars less than 100");
      return (0);
   }
   if (TakeProfit < 10.0) {
      Print("TakeProfit less than 10");
      return (0);
   }
   double imacd_20 = iMACD(NULL, 0, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 0);
   double imacd_28 = iMACD(NULL, 0, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 1);
   double imacd_36 = iMACD(NULL, 0, 12, 26, 9, PRICE_CLOSE, MODE_SIGNAL, 0);
   double imacd_44 = iMACD(NULL, 0, 12, 26, 9, PRICE_CLOSE, MODE_SIGNAL, 1);
   double ima_52 = iMA(NULL, 0, MATrendPeriod, 0, MODE_EMA, PRICE_CLOSE, 0);
   double ima_60 = iMA(NULL, 0, MATrendPeriod, 0, MODE_EMA, PRICE_CLOSE, 1);
   int order_total_76 = OrdersTotal();
   if (order_total_76 < 1) {
      if (AccountFreeMargin() < 1000.0 * Lots) {
         Print("We have no money. Free Margin = ", AccountFreeMargin());
         return (0);
      }
      if (imacd_20 < 0.0 && imacd_20 > imacd_36 && imacd_28 < imacd_44 && MathAbs(imacd_20) > MACDOpenLevel * Point && ima_52 > ima_60 != FALSE) {
         ticket_72 = OrderSend(Symbol(), OP_BUY, Lots, Ask, 3, 0, Ask + TakeProfit * Point, "macd sample", 16384, 0, Green);
         if (ticket_72 > 0) {
            if (OrderSelect(ticket_72, SELECT_BY_TICKET, MODE_TRADES) != FALSE) Print("BUY order opened : ", OrderOpenPrice());
         } else Print("Error opening BUY order : ", GetLastError());
         return (0);
      }
      if (imacd_20 > 0.0 && imacd_20 < imacd_36 && imacd_28 > imacd_44 && imacd_20 > MACDOpenLevel * Point && ima_52 < ima_60 != FALSE) {
         ticket_72 = OrderSend(Symbol(), OP_SELL, Lots, Bid, 3, 0, Bid - TakeProfit * Point, "macd sample", 16384, 0, Red);
         if (ticket_72 > 0) {
            if (OrderSelect(ticket_72, SELECT_BY_TICKET, MODE_TRADES) != FALSE) Print("SELL order opened : ", OrderOpenPrice());
         } else Print("Error opening SELL order : ", GetLastError());
         return (0);
      }
      return (0);
   }
   for (int pos_68 = 0; pos_68 < order_total_76; pos_68++) {
      OrderSelect(pos_68, SELECT_BY_POS, MODE_TRADES);
      if (OrderType() <= OP_SELL && OrderSymbol() == Symbol() != FALSE) {
         if (OrderType() == OP_BUY) {
            if (imacd_20 > 0.0 && imacd_20 < imacd_36 && imacd_28 > imacd_44 && imacd_20 > MACDCloseLevel * Point != FALSE) {
               OrderClose(OrderTicket(), OrderLots(), Bid, 3, Violet);
               return (0);
            }
            if (TrailingStop <= 0.0) continue;
            if (Bid - OrderOpenPrice() <= Point * TrailingStop) continue;
            if (OrderStopLoss() >= Bid - Point * TrailingStop) continue;
            OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, Green);
            return (0);
         }
         if (imacd_20 < 0.0 && imacd_20 > imacd_36 && imacd_28 < imacd_44 && MathAbs(imacd_20) > MACDCloseLevel * Point != FALSE) {
            OrderClose(OrderTicket(), OrderLots(), Ask, 3, Violet);
            return (0);
         }
         if (TrailingStop > 0.0) {
            if (OrderOpenPrice() - Ask > Point * TrailingStop) {
               if (OrderStopLoss() > Ask + Point * TrailingStop || OrderStopLoss() == 0.0 != FALSE) {
                  OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderTakeProfit(), 0, Red);
                  return (0);
               }
            }
         }
      }
   }
   return (0);
}

YiMan Wu
18
YiMan Wu 2011.11.08 03:59  

外汇指标加密,加注册全国最低价,QQ332800188

cloudbee
3
cloudbee 2012.03.30 12:19  
我开发了个Ea,效果很好,想加密和添加注册变成商业Ea。求高手,做成后可根据销售分成。本身该EA就很有吸引力,对您也是很有好处的。该EA投入不高,200点就可以做,交易次数少,一年能变成15倍左右 。一年平均110次,因此能消除外汇点差的影响.求高手,共同富裕。目前本人已在实盘,第一笔盈利42点,第二笔70点,第三笔系统还没开单,期待开单 联系ixtaobao@gmail.com 共同创富
yaochi Lin
47
yaochi Lin 2012.04.15 14:30  
cloudbee:
我开发了个Ea,效果很好,想加密和添加注册变成商业Ea。求高手,做成后可根据销售分成。本身该EA就很有吸引力,对您也是很有好处的。该EA投入不高,200点就可以做,交易次数少,一年能变成15倍左右 。一年平均110次,因此能消除外汇点差的影响.求高手,共同富裕。目前本人已在实盘,第一笔盈利42点,第二笔70点,第三笔系统还没开单,期待开单 联系ixtaobao@gmail.com 共同创富
是怎樣的的EA呢?可有測試版本?
yaochi Lin
47
yaochi Lin 2012.04.15 14:31  
yuochi:
是怎樣的的EA呢?可有測試版本?
yuochi1@gmail.com
ShuangJian Cheng
281
ShuangJian Cheng 2014.07.17 10:59  
尼玛,你这个来自中国的垃圾。只要是伪代码都可以破解,汇编也是(难点),你有精力有才华何不从事破解,而要和2b的meta站在一起。这个jb     meta但凡开放一点点,也不会有那么多大神要破解它
SteveQi2016
25
SteveQi2016 2016.09.17 05:58  
谢谢分享,对于保护知识产权是一大贡献
/
要添加评论,请登录注册