기고글 토론 "MQL5 코드 보호하기: 보안 암호, 키 생성기, 시간 제한, 원격 라이선스 및 고급 EA 라이선스 키 암호 테크닉"

 

새로운 기고글 MQL5 코드 보호하기: 보안 암호, 키 생성기, 시간 제한, 원격 라이선스 및 고급 EA 라이선스 키 암호 테크닉 가 게재되었습니다:

개발자라면 자신이 개발한 프로그램이 안전하게 보호되길 바라죠. 이번 글에서는 MQL5 소프트웨어를 보호할 수 있는 몇 가지 방법을 알아보겠습니다. 어떻게 하면 MQL5 스크립트, 엑스퍼트 어드바이저 및 인디케이터에 대한 라이선스를 획득할 수 있는지 설명해 드릴게요. 보안 암호, 키 생성기, 계정 라이선스, 시간 제한 및 MQL5-RPC 원격 호출에 대해 다룰 겁니다.

개발자라면 자신이 개발한 프로그램이 안전하게 보호되길 바라죠. MQL5 소프트웨어를 보호할 수 있는 몇 가지 방법을 소개하겠습니다. 본문은 엑스퍼트 어드바이저를 기준으로 작성되었습니다만 스크립트와 인디케이터에도 동일하게 적용됩니다. 간단한 암호 설정부터 시작해 키 생성기 이용 방법, 브로커 계정 라이선스 부여 방법 및 시간 제한 설정법 순서로 다루어 보도록 하겠습니다. 마지막으로는 원격 라이선스 서버에 대해 알아볼게요. MQL5-RPC 프레임워크를 주제로 한 이전 글에서 MetaTrader 5 에서 XML-RPC 서버로 원격 프로시저 호출을 하는 방법을 설명했습니다.

동일한 방법을 이용해서 원격 라이선스의 예를 들도록 할게요. 베이스64 인코딩을 이용한 RPC 호출 향상 방법 및 MQL5 엑스퍼트 어드바이저와 인디케이터의 초강력 보안을 위한 PGP 사용법에 대해서도 설명하겠습니다. MetaQuotes는 MQL5.com의 마켓을 통해 코드에 라이선스를 부여할 수 있는 옵션을 제공하고 있기도 합니다. 이 또한 아주 좋은 방법이죠. 제가 소개할 방법들과 비교해 어느 것이 더 좋다고 말할 수는 없습니다. 오히려 두 가지를 함께 이용하면 무단 복제에 보다 강력한 대응책을 만들 수 있겠죠.

작성자: investeo

 
감사합니다! 이 기사는 매우 유용합니다. 혼자서 알아내는 데 시간이 오래 걸렸을 것 같아요.
 

훌륭한 구현입니다! 데이터 시간 만료 스크립트가 EA 코드에 올바르게 배치되고 그렇다면 차트에 처음 배치 된 후 2 주와 같은 시간 제한에 따라 미리 정의 된 만료를 어떻게 만들 수 있습니까?

datetime allowed_until = D'2012.02.11 00:00'; 
                             
int password_status = -1;

//+------------------------------------------------------------------+
//| 전문가 초기화 기능|
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   printf("This EA is valid until %s", TimeToString(allowed_until, TIME_DATE|TIME_MINUTES));
   datetime now = TimeCurrent();
   
   if (now < allowed_until) 
         Print("EA time limit verified, EA init time : " + TimeToString(now, TIME_DATE|TIME_MINUTES));
   
    
//---
   return(0);

double allowed_tf = 7; // 일 단위
                             
int password_status = -1;

//+------------------------------------------------------------------+
//| 전문가 초기화 기능|
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   printf("This EA is valid until %s", TimeToString(allowed_until, TIME_DATE|TIME_MINUTES));
   datetime now = TimeCurrent();
   datetime allowed_until = TimeCurrent() + allowed_tf;
   if (now < allowed_until) 
         Print("EA time limit verified, EA init time : " + TimeToString(now, TIME_DATE|TIME_MINUTES));
   
    
//---
   return(0);

??

 

좋은 기사...

 

제목 "...o"의 구문 오류org 애니 화 홍보 시간...". 수정해 주세요.

흥미로운 기사입니다. 살펴 보겠습니다...

 

BASE64 암호화 호출...

그런데 이 인코딩은 쉽게 알아볼 수 있으며 누구도 겁먹지 않습니다. 또한 웹 애플리케이션을 다른 사람과 통신 할 때 널리 사용됩니다 (문자열뿐만 아니라 문자열을 교환해야하는 경우).

코드를 디컴파일할 때는 PGP도 도움이 되지 않으며 인덱스 암호화도 도움이 되지 않습니다. PGP에는 별도의 dll이 필요하므로 예를 들어 원격 최적화가 더 이상 불가능하다는 것은 말할 것도 없습니다. 모든 종류의 스크립트/지표/어드바이저가 인터넷에 들어가서 누가 무엇을 알고 있는지 전송할 때 많은 트레이더가 두려워한다는 사실은 말할 것도 없습니다.

일반적으로 항상 그렇듯이 방어해야 할 것이 있습니다.

 

이 문서는 유용하며 소프트웨어에 보호 기능을 적용하는 방법을 보여줍니다.

우리는 암호화 작업을 더 쉽게 할 수 있도록 암호화 시스템 (MD5, SHA, RSA, DES 등) 작업을위한 표준 및 빠른 MQL5 인터페이스를 제공하는 것에 대해 생각하고 있습니다.


대중 시장에 대해 이야기하면, 우리는 특별히 MQL5 마켓에서 선하고 인간적인 보호 모드를 구현했습니다. 애플리케이션은 각 장치에 대해 고유하게 암호화되어 최대 3번까지 활성화할 수 있습니다.

작성자가 애플리케이션을 더 적극적으로 게시하도록 초대합니다.

 
Renat:

저자들이 더 적극적으로 애플리케이션을 게시할 것을 권장합니다.

무료 소프트웨어를 게시하려는 작성자가 여권 데이터 기입을 의무화하지 않을 수 있나요?
 
sergeev:
무료 소프트웨어를 게시하려는 작성자가 여권 데이터 기입을 의무화하지 않을 수 있나요?

안타깝게도 문제는 정반대 방향입니다. 우리는 다양한 서비스에서 다양한 사기꾼(카더, 도난당한 페이팔 계정 등)으로 인해 직접적인 손실을 겪고 있지만, 효과적으로 대처하는 방법을 배웠습니다.

서비스의 무결성을 위해 모든 판매자를 우선적으로 통제하는 방향으로 나아갈 수밖에 없습니다. 공공 서비스를 부주의하게 다룰 수는 없습니다. 유사한 많은 서비스의 보안을 강화하는 것이 일반적인 추세입니다.

저희의 접근 방식은 최종 사용자를 보호하고 인프라에 위험한 요소를 허용하지 않는 것입니다.


소스가 포함된 완전 무료 소프트웨어의 경우 코드 베이스가 있으며, 이는 등급을 올리는 좋은 방법입니다.

그런데 곧 모든 사용자를 위한 대규모 등급 시스템을 출시할 예정입니다. "레벨 80의 트레이더를 주세요!"라는 매우 흥미로운 혁신이 될 것입니다.

 

Renat:

소스 코드가 포함된 완전 무료 소프트웨어의 경우, 순위를 높일 수 있는 좋은 방법인 코드 베이스가 있습니다.

이는 약간 잘못된 이름입니다.

마켓플레이스와 코드 베이스는 완전히 다른 개념입니다.

시장에 나와 있는 제품은 품질 면에서 더 신뢰할 수 있기 때문에 훌륭합니다. 여기에는 '존중'이라는 단어가 적절할 것 같습니다. 시중의 무료 소프트웨어는 자동으로 "레벨 80"이 됩니다. 그리고 코드베이스는 어떻게 든 중요하지 않게 창백 해집니다 ...

그건 그렇고, 우리는 곧 모든 사용자를위한 대규모 등급 시스템을 출시 할 예정입니다. 그것은 매우 흥미로운 혁신이 될 것입니다- "레벨 80의 상인을주세요!".

이 포럼에서는 "레벨 80 프로그래머"에 대한 등급이 바람직합니다. 상인이 감지되지 않았습니다.

포럼에 프로그래머의 품질을 나타내는 지표가 있다면 - 그의 기사, 게시물, 게시 된 개발 또는 서비스 작업- 트레이더에게는 객관적인 것이 전혀 없습니다.
트레이더는 평가할 수 없습니다. 그가 자신을 평가하면 스팸 광고가 어떤 결과로 이어질지 알 수 있습니다 :).

Как заказать торгового робота на MQL5 и MQL4
Как заказать торгового робота на MQL5 и MQL4
  • 2010.06.18
  • MetaQuotes Software Corp.
  • www.mql5.com
С запуском сервиса "Работа" MQL5.community становится идеальным местом для размещения заказов и оказания услуг программирования. Тысячи трейдеров и разработчиков ежедневно посещают этот ресурс и с легкостью могут помочь друг другу. Для трейдера сервис "Работа" - это легкая возможность получить свой собственный эксперт. Для MQL5-разработчика это возможность легко найти новых клиентов. В данной статье мы рассмотрим возможности этого сервиса.
 
sergeev:

... 트레이더에게 객관적인 것은 전혀 없습니다. 트레이더는 평가할 수 없습니다.

글쎄, 가까운 장래에 열릴 수있는 신호 서비스를 제외하고. 그것은 또한 흥미로울 것입니다. :)"80 레벨의 트레이더를 줘!"라는 분명한 메시지가있을 것입니다. :)