Decompiled veya değil nasıl belirlenir? - sayfa 12

 
Andrey F. Zelinsky :

neden 4. forumda? - şimdi burada - hem piyasada hem de serbest meslekte çalışıyor.

İşte kod tabanındaki kodunun bir örneği https://www.mql5.com/en/code/9835

Kim tüm işlevlerinde şunları yazdı:

Ama "yapanlar" koduna bakarsanız, Kim'in telif hakkı orada aşınmış demektir.

Burada savunucular nerede?

Bu, telif hakkının gerçekten ihlal edildiği yerdir.

Bu şablondaki işlevler tamamen Igor'dan alınmıştır. Başlıkta sadece isim değiştirildi ve Igor'un telif hakkı kaldırıldı. Aynı zamanda, Igor'un telif hakkı yerine, küstahça şunları ekledi:

 string Autor= " Автор функции для шаблона : www.expforex.at.ua" ;

Diğer insanların değerlerinin kesin olarak tahsis edilmesi ve Igor'un yazarlığının ihlali ile yazarlığın kendisi için ikame edilmesi.

 
Artyom Trishkin :

Bu şablondaki işlevler tamamen Igor'dan alınmıştır. Başlıkta sadece isim değiştirildi ve Igor'un telif hakkı kaldırıldı. Aynı zamanda, Igor'un telif hakkı yerine, küstahça şunları ekledi:

Diğer insanların değerlerinin kesin olarak tahsis edilmesi ve Igor'un yazarlığının ihlali ile yazarlığın kendisi için ikame edilmesi.

Merak ediyorum, MK neden kodunu kod tabanından kaldırmıyor?

Sonuçta, telif hakkı ihlali açıktır ve kontrol edilmesi kolaydır. Kim'in kodu serbestçe kullanılabilir.

Bu tür telif hakkı ihlali sorunları neden gündeme getirilmiyor?

Kullanım Koşulları https://www.mql5.com/en/about/terms :

3.9. www.mql5.com içeriğini çoğaltmamayı, kopyalamamayı, satmamayı, takas etmemeyi veya yeniden satmamayı kabul etmektesiniz . İstisnalar, aksi takdirde MQL5 Ltd. ile yapılan ayrı bir anlaşma ile izin verildiği durumlardır. Herhangi bir İçerik materyalinin kopyaları yapılırsa, bu kopyalar orijinal materyallerde bulunan tüm telif hakkı ve diğer mülkiyet hakkı bildirimlerini muhafaza etmelidir. İçeriği değiştiremez veya halka açık olarak görüntüleyemez, halka açık olarak çoğaltamaz veya dağıtamazsınız. mql5.com web sitesi MQL5 Ltd.'ye aittir. MQL5 Ltd web siteleri uluslararası telif hakkı yasalarıyla korunmaktadır. MQL5 Ltd Web Sitelerinin herhangi bir yetkisiz kullanımı, telif hakkı, ticari marka ve diğer yasaları ihlal edebilir.

Açık, net, kasıtlı, kaba ve alaycı bir ihlal - ve cezasız.
 

Igor'un SetOrder() işlevi

 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 13.03.2008                                                     |
//|  Описание : Установка ордера.                                              |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (NULL или "" - текущий символ)          |
//|    op - операция                                                           |
//|    ll - лот                                                                |
//|    pp - цена                                                               |
//|    sl - уровень стоп                                                       |
//|    tp - уровень тейк                                                       |
//|    mn - Magic Number                                                       |
//|    ex - Срок истечения                                                     |
//+----------------------------------------------------------------------------+
void SetOrder( string sy, int op, double ll, double pp,
               double sl= 0 , double tp= 0 , int mn= 0 , datetime ex= 0 ) {
   color     clOpen;
   datetime ot;
   double    pa, pb, mp;
   int       err, it, ticket, msl;
   string    lsComm=WindowExpertName()+ " " +GetNameTF( Period ());

   if (sy== "" || sy== "0" ) sy= Symbol ();
  msl=MarketInfo(sy, MODE_STOPLEVEL);
   if (op==OP_BUYLIMIT || op==OP_BUYSTOP) clOpen=clOpenBuy; else clOpen=clOpenSell;
   if (ex> 0 && ex< TimeCurrent ()) ex= 0 ;
   for (it= 1 ; it<=NumberOfTry; it++) {
     if (!IsTesting() && (!IsExpertEnabled() || IsStopped ())) {
       Print ( "SetOrder(): Остановка работы функции" );
       break ;
    }
     while (!IsTradeAllowed()) Sleep ( 5000 );
    RefreshRates();
    ot= TimeCurrent ();
    ticket= OrderSend (sy, op, ll, pp, Slippage, sl, tp, lsComm, mn, ex, clOpen);
     if (ticket> 0 ) {
       if (UseSound) PlaySound (NameFileSound); break ;
    } else {
      err= GetLastError ();
       if (err== 128 || err== 142 || err== 143 ) {
         Sleep ( 1000 * 66 );
         if (ExistOrders(sy, op, mn, ot)) {
           if (UseSound) PlaySound (NameFileSound); break ;
        }
         Print ( "Error(" ,err, ") set order: " ,ErrorDescription(err), ", try " ,it);
         continue ;
      }
      mp=MarketInfo(sy, MODE_POINT);
      pa=MarketInfo(sy, MODE_ASK);
      pb=MarketInfo(sy, MODE_BID);
       // Неправильные стопы
       if (err== 130 ) {
         switch (op) {
           case OP_BUYLIMIT:
             if (pp>pa-msl*mp) pp=pa-msl*mp;
             if (sl>pp-(msl+ 1 )*mp) sl=pp-(msl+ 1 )*mp;
             if (tp> 0 && tp<pp+(msl+ 1 )*mp) tp=pp+(msl+ 1 )*mp;
             break ;
           case OP_BUYSTOP:
             if (pp<pa+(msl+ 1 )*mp) pp=pa+(msl+ 1 )*mp;
             if (sl>pp-(msl+ 1 )*mp) sl=pp-(msl+ 1 )*mp;
             if (tp> 0 && tp<pp+(msl+ 1 )*mp) tp=pp+(msl+ 1 )*mp;
             break ;
           case OP_SELLLIMIT:
             if (pp<pb+msl*mp) pp=pb+msl*mp;
             if (sl> 0 && sl<pp+(msl+ 1 )*mp) sl=pp+(msl+ 1 )*mp;
             if (tp>pp-(msl+ 1 )*mp) tp=pp-(msl+ 1 )*mp;
             break ;
           case OP_SELLSTOP:
             if (pp>pb-msl*mp) pp=pb-msl*mp;
             if (sl> 0 && sl<pp+(msl+ 1 )*mp) sl=pp+(msl+ 1 )*mp;
             if (tp>pp-(msl+ 1 )*mp) tp=pp-(msl+ 1 )*mp;
             break ;
        }
         Print ( "SetOrder(): Скорректированы ценовые уровни" );
      }
       Print ( "Error(" ,err, ") set order: " ,ErrorDescription(err), ", try " ,it);
       Print ( "Ask=" ,pa, "  Bid=" ,pb, "  sy=" ,sy, "  ll=" ,ll, "  op=" ,GetNameOP(op),
             "  pp=" ,pp, "  sl=" ,sl, "  tp=" ,tp, "  mn=" ,mn);
       if (pa== 0 && pb== 0 ) Message( "SetOrder(): Проверьте в обзоре рынка наличие символа " +sy);
       // Блокировка работы советника
       if (err== 2 || err== 64 || err== 65 || err== 133 ) {
        gbDisabled=True; break ;
      }
       // Длительная пауза
       if (err== 4 || err== 131 || err== 132 ) {
         Sleep ( 1000 * 300 ); break ;
      }
       // Слишком частые запросы (8) или слишком много запросов (141)
       if (err== 8 || err== 141 ) Sleep ( 1000 * 100 );
       if (err== 139 || err== 140 || err== 148 ) break ;
       // Ожидание освобождения подсистемы торговли
       if (err== 146 ) while (IsTradeContextBusy()) Sleep ( 1000 * 11 );
       // Обнуление даты истечения
       if (err== 147 ) {
        ex= 0 ; continue ;
      }
       if (err!= 135 && err!= 138 ) Sleep ( 1000 * 7.7 );
    }
  }
}
//+----------------------------------------------------------------------------+

Ustanın işlevi, bir başkasınınkileri kendine mal etmek:

 //+------------------------------------------------------------------+
//|              Установка отложенного ордера                        |
//+------------------------------------------------------------------+
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (NULL или "" - текущий символ)          |
//|    op - операция                                                           |
//|    ll - лот                                                                |
//|    pp - цена                                                               |
//|    sl - уровень стоп                                                       |
//|    tp - уровень тейк                                                       |
//|    mn - Magic Number                                                       |
//|    ex - Срок истечения                                                     |
//+----------------------------------------------------------------------------+
int SetOrder( string sy, int op, double ll, double pp,
             double sl= 0 , double tp= 0 , int mn= 0 , datetime ex= 0 , string lsComm= "" )
  {
   color     clOpen;
   datetime ot;
   double    pa,pb,mp;
   int       err,it,ticket,msl;
   string Autor= " Автор функции для шаблона : www.expforex.at.ua" ;

   if (sy== "" || sy== "0" ) sy= Symbol ();
   msl=MarketInfo(sy,MODE_STOPLEVEL);
   if (ex> 0 && ex< TimeCurrent ()) ex= 0 ;
   for (it= 1 ; it<= 5 ; it++)
     {
       if (!IsTesting() && (!IsExpertEnabled() || IsStopped ()))
        {
         Print ( "SetOrder(): Остановка работы функции" );
         break ;
        }
       while (!IsTradeAllowed()) Sleep ( 5000 );
      RefreshRates();
      ot= TimeCurrent ();
       if (!MarketWatch)ticket= OrderSend (sy,op,ll, NormalizeDouble (pp,MarketInfo(sy,MODE_DIGITS)),Slippage, NormalizeDouble (sl,MarketInfo(sy,MODE_DIGITS)), NormalizeDouble (tp,MarketInfo(sy,MODE_DIGITS)),lsComm,mn,ex,clOpen);
       if (MarketWatch)

        {
         ticket= OrderSend (sy,op,ll, NormalizeDouble (pp,MarketInfo(sy,MODE_DIGITS)),Slippage, 0 , 0 ,lsComm,mn,ex,clOpen);
         if (SBT(ticket)) ModifyOrder(- 1 ,sl,tp);
        }

       if (ticket> 0 )
        {

         return (ticket);
         break ;
           } else {
         err= GetLastError ();
         if (err== 128 || err== 142 || err== 143 )
           {
             Sleep ( 1000 * 66 );

             continue ;
           }
         mp=MarketInfo(sy, MODE_POINT);
         pa=MarketInfo(sy, MODE_ASK);
         pb=MarketInfo(sy, MODE_BID);
         if (pa== 0 && pb== 0 ) Comment ( "SetOrder(): Проверьте в обзоре рынка наличие символа " +sy);
         // Неправильные стопы
         if (err== 130 )
           {
             switch (op)
              {
               case OP_BUYLIMIT:
                   if (pp>pa-msl*mp) pp=pa-msl*mp;
                   if (sl>pp-(msl+ 1 )*mp) sl=pp-(msl+ 1 )*mp;
                   if (tp> 0 && tp<pp+(msl+ 1 )*mp) tp=pp+(msl+ 1 )*mp;
                   break ;
               case OP_BUYSTOP:
                   if (pp<pa+(msl+ 1 )*mp) pp=pa+(msl+ 1 )*mp;
                   if (sl>pp-(msl+ 1 )*mp) sl=pp-(msl+ 1 )*mp;
                   if (tp> 0 && tp<pp+(msl+ 1 )*mp) tp=pp+(msl+ 1 )*mp;
                   break ;
               case OP_SELLLIMIT:
                   if (pp<pb+msl*mp) pp=pb+msl*mp;
                   if (sl> 0 && sl<pp+(msl+ 1 )*mp) sl=pp+(msl+ 1 )*mp;
                   if (tp>pp-(msl+ 1 )*mp) tp=pp-(msl+ 1 )*mp;
                   break ;
               case OP_SELLSTOP:
                   if (pp>pb-msl*mp) pp=pb-msl*mp;
                   if (sl> 0 && sl<pp+(msl+ 1 )*mp) sl=pp+(msl+ 1 )*mp;
                   if (tp>pp-(msl+ 1 )*mp) tp=pp-(msl+ 1 )*mp;
                   break ;
              }
             Print ( "SetOrder(): Скорректированы ценовые уровни" +sy+ "--op-" +op+ "--ll-" +ll+ "--pp-" +pp+ "---" +Slippage+ "--sl-" +sl+ "--tp-" +tp+ "---" +lsComm+ "---" +mn+ "---" +ex+ "---" +clOpen);
           }
         // Блокировка работы советника
         if (err== 2 || err== 64 || err== 65 || err== 133 )
           {
             break ;
           }
         // Длительная пауза
         if (err== 4 || err== 131 || err== 132 )
           {
             Sleep ( 1000 * 300 ); break ;
           }
         // Слишком частые запросы (8) или слишком много запросов (141)
         if (err== 8 || err== 141 ) Sleep ( 1000 * 100 );
         if (err== 139 || err== 140 || err== 148 ) break ;
         // Ожидание освобождения подсистемы торговли
         if (err== 146 ) while (IsTradeContextBusy()) Sleep ( 1000 * 11 );
         // Обнуление даты истечения
         if (err== 147 )
           {
            ex= 0 ; continue ;
           }
         if (err!= 135 && err!= 138 ) Sleep ( 1000 * 7.7 );
        }
     }
  }
//+------------------------------------------------------------------+

Ve bana daha fazlasını söyle, çünkü birkaç satırı değiştirdim ...

Ve Igor'un eserlerinin sahiplenilmesine ilişkin bu tür örnekleri istediğim kadar sıralayabilirim.

 
Artyom Trishkin :

Igor'un SetOrder() işlevi

Ustanın işlevi, bir başkasınınkileri kendine mal etmek:

Ve bana daha fazlasını söyle, çünkü birkaç satırı değiştirdim ...

Hayır, yanılıyorsunuz - Kim "sipariş vermek" diyor - ve " bekleyen bir sipariş vermek " diyor - farkı hissediyor musunuz? Kim'in kodunun geliştirilmesine paha biçilmez katkının farkında değil misiniz?

 
Andrey F. Zelinsky :
Hayır, yanılıyorsunuz - Kim "sipariş vermek" diyor - ve " bekleyen bir sipariş vermek " diyor - farkı hissediyor musunuz? Kim'in kodunun geliştirilmesine paha biçilmez katkının farkında değil misiniz?
Lanet olsun... Pusuya...
 

Bu arada, sadece Kim'in kodundaki telif hakkını kaldırmakla kalmadı, aynı zamanda yazarlığı hakkında bir ekleme yaptı:

 string Autor= " Автор функции для шаблона : www.expforex.at.ua" ;

Kod tabanındaki koduna bakarsanız, Kim'in yazarlığı, her Kim işlevinde kendi yazarlığıyla karıştırılır.

Örneğin https://www.mql5.com/en/code/9835 .

 

Kısa soru: telif hakkı nedir?

1

 //|                  Copyright 2015, Urain |

2

 #property copyright "Copyright 2015, Urain"

Birinci mi, ikinci mi? ya da her ikisi de?

 
Andrey F. Zelinsky :

Bu arada, sadece Kim'in kodundaki telif hakkını kaldırmakla kalmadı, aynı zamanda yazarlığı hakkında bir ekleme yaptı:

Kod tabanındaki koduna bakarsanız, Kim'in yazarlığı, her Kim işlevinde kendi yazarlığıyla karıştırılır.

Örneğin https://www.mql5.com/ru/code/9835 .

Neyse rapor ettim. İgor, tüm kütüphanelerinde bile her işlevde yazarlığı kayıtlıdır. Ücretsiz olarak temin edilemeyen, ancak ticari kullanım için olan kütüphanelerde bile.
 
Bu temel noktalardan biri - mutfağı bilmiyorsunuz ama hemen şef olmaya çalışıyorsunuz.

Bilmediğimi nereden çıkardın? Freelance hizmette yer almıyorum ama bazen sipariş üzerine yazıyorum. Bu, makul olmayan bir suçlama örneğidir.

Yapmadım ama emin değilim. İyi arkadaşlarımın kodlarının kendilerine aitmiş gibi aktarıldığı, kaynak koddaki başlığın değiştirildiği ve kodun geri kalanını "olduğu gibi" bırakıldığı gerçeğiyle karşı karşıya kaldım. Hatta bunu tartıştık ve tartıştık. Dördüncü forumda, bir lider Igor Kim'in kodlarını kendisininmiş gibi aktardı. Yüzsüzce ve belirsizce. Kaynaklar. Aşağılık, aşağılık ve alçak.

Bu temel noktalardan biri - mutfağı bilmiyorsunuz ama hemen şef olmaya çalışıyorsunuz.

Derleyicilerden yana olduğumu düşünmeyin - hayır, kesinlikle buna karşıyım. Ama şartlara bakmak lazım. Size şifre teklif edeni ya hırsız olarak kabul edersiniz ya da suçlamadan önce düşünürsünüz.

Hayır ben yapamam. Ancak müşterinin başkalarının kodlarını kırarak kazandığını da kanıtlayamazsınız. Yoksa masumiyet karinesini çoktan iptal ettik mi? Bu yüzden önce suçluluğu kanıtlama zahmetine girin.

Aksi takdirde, şimdi size geri derlemeye benzer bir kod göstereceğim - bu kodu gördüğünüz için hırsız olacaksınız.

Herhangi bir biçimde herhangi bir kod çözücüye karşıyım, bir kuruş için kirlenmekten çekinmeyen programcıların sayısına şaşırdığımı bir kez daha tekrar ediyorum.

Kanıtlanacak ne var? Yüzün stüdyoda çözülmüş olması ve kuralları bilmemesi sorumluluktan muaf değildir.

 
Nikolay Demko :

Kısa soru: telif hakkı nedir?

1

2

Birinci mi ikinci mi? ya da her ikisi de?

Ne düşünüyorsun?

Örneğin yazarlık?

 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 12.03.2008                                                     |
//|  Описание : Возвращает флаг существования ордеров.                         |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любой ордер)                    |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//|    ot - время открытия             ( 0   - любое время установки)          |
//+----------------------------------------------------------------------------+
bool ExistOrders( string sy= "" , int op=- 1 , int mn=- 1 , datetime ot= 0 ) {
   int i, k= OrdersTotal (), ty;
 
   if (sy== "0" ) sy= Symbol ();
   for (i= 0 ; i<k; i++) {
     if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES)) {
      ty=OrderType();
       if (ty> 1 && ty< 6 ) {
         if ((OrderSymbol()==sy || sy== "" ) && (op< 0 || ty==op)) {
           if (mn< 0 || OrderMagicNumber()==mn) {
             if (ot<=OrderOpenTime()) return (True);
          }
        }
      }
    }
  }
   return (False);
}
Neden: