MT5에서 MQL 코드의 저작권 보호. 보안 인증서 - 페이지 7

 
YuraZ :

예를 들어


구매자: 인터넷에서 정보를 찾고 내가 사고 싶은 글을 씁니다.

판매자: 지불 메커니즘 설명 - 세부 정보 게시를 원하지 않는 경우 - 개인화를 위한 데이터 요청

구매자: 개인화를 위한 데이터, 계좌 번호 또는 이름을 지불하고 전송합니다.

판매자: 개인 데이터에 묶인 상품을 보냅니다.


이상적으로는 그뿐입니다!

나는 그런 경우가 있고 그렇게 많지는 않다.


불행히도 이것은 일부 공짜 애호가(아는 사람들)의 삶을 더 어렵게 만들지 않습니다. 계정에 연결하는 것이 모든 문제에 대한 해결책은 아닙니다. 잘 설계된 "무역 복사기"는 모든 데이터를 다른 계정으로 전송합니다(특히 데이터가 MT5에서 MT5로 복사되는 경우).

내 생각에는 Expert Advisors뿐만 아니라 스크립트, 표시기, 라이브러리 및 기타 코드도 보호해야 합니다. 그리고 이제 이것은 제 생각에 더 흥미롭고 중요한 주제입니다.


더 중요한 이유

아시다시피 MQL을 사용하여 구현할 수 있는 모든 도구는 자동 시스템, 반자동 및 수동 거래 도구로 나뉩니다.

"블랙 박스", "회색 박스" 및 "백색" 시스템(오픈 소스 및 명시적으로 설명된 논리가 있는 시스템)과 같은 시스템으로도 구분됩니다.

따라서 상업 부문에서 제공되는 거의 모든 MTS는 검은색 또는 회색 상자입니다. 동시에 그들의 점유율은 그렇게 크지 않을 것입니다 (30-40 %를 초과하지 않을 것 같습니다). 동시에 그러한 솔루션은 다소 유연하지 않을 것입니다(사실상 하나의 전략만 구현하기 때문에).

별도의 스크립트, 라이브러리 및 표시기는 또 다른 문제입니다. 이러한 소프트웨어 솔루션은 수동 및 기계 거래의 모든 영역에서 제공됩니다. 이 경우 생성자의 기본 요소로 사용할 수 있습니다.

추신

여기에서는 개발자와 사용자의 권리를 침해하지 않도록 최대한 완벽하게 보호하는 것이 좋습니다. 이것을 보호하는 유일한 최적의 방법은 무엇입니까? 내가 이해하는 한, 단 하나가 있습니다 - 철에 바인딩.

 
그러나 현재(상당히 좋은 조직에서) 이것은 매우 효과적이고 신뢰할 수 있는 보호 방법입니다.

스스로 생각하는 바가 무엇이든 간에, 철에 묶는 것은 오랫동안 효과적인 보호 방법이 아니었습니다. 그건 그렇고, asm에 다소 익숙한 사람의 경우(그리고 그들 중 소수는 절대 아닙니다) 그러한 보호를 제거하는 것은 몇 분의 문제입니다. 그리고 당신이 무엇에 붙어 있는지는 별로 중요하지 않습니다. 프로그래밍(해커 읽기) 포럼을 읽으면 모든 것이 명확해질 것입니다. :) 그리고 "좋은 조직"에 관해서는, 대량 공예품의 일부를 하드웨어에 연결하는 실험을 위해 시도하십시오. 그러면 잠시(약 1~2개월) 후에 내가 원하는 것을 이해하게 될 것이라고 확신합니다. 말해.

보호를 위한 다른 옵션이 있는 것처럼?

당신이 이것을 묻는 것에 놀랐습니다. 물론 있습니다. 그리고 많이. 간단한 트랜스코더, 라이선스 생성기에서 시작하여 HASP 등과 같은 소프트웨어 및 하드웨어 보호 방법으로 끝납니다. 그러나 비용과 선언된 신뢰성에 관계없이 거의 모든 것이 오랫동안 해킹되었으며 크랙, 키젠 및 기타 소프트웨어를 인터넷에서 무료로 사용할 수 있습니다. 그리고 감히 이러한 보호 방법이 하드웨어에 대한 단순한 바인딩보다 몇 배나 더 안정적이라는 것을 알 수 있습니다.

 
YuraZ :


MT4/MT5 MQL4/MQL5 + DLL의 컨텍스트에서 바인딩은 하드웨어가 아니라 계정 번호 (숫자), 실명 및/또는 성 이름, 선택적 중간 이름에 대해 이루어질 수 있습니다.

이 방법은 보호 측면에서 가장 간단합니다(이 특이성을 위해). 모바일은 하드웨어에 바인딩할 필요가 없습니다.





그리고 판매 시점에 계정에 대한 바인딩은 누가 만들까요?
 

이 주제를 시작하면서 Metaquote에서 발행한 인증서가 ("각각"!) 있었습니다. 이것은 아직 공인된 인증 기관이 아님이 분명합니다. 그러나 이 주제(인증서 발급 및 지원)는 사라졌지만 4-ke에는 그러한 인증 가능성이 있다고 가정합니다.

따라서 필자는 "깊은" 회귀를 보호하기 위해 하드웨어에 바인딩하는 것을 고려합니다.

(첫 페이지에서 이에 대한) 아이디어는 ex5 파일을 컴파일하기 위한 "일반" 알고리즘의 구현으로 축소되었습니다.

다음과 같은 꿈을 꾸었습니다.

프로그래머는 하위 키 캐스트(개발자 및 사용자 키의 복잡한 연결)가 있는 경우에만 터미널에서 올바르게 인식할 수 있도록 프로그램을 컴파일할 수 있습니다.

개발자 키의 필수 서명은 프로그램과 사용자 서명 - 프로그램 및 특정 터미널의 키에 있습니다.

그런 다음 이 "라이센스 하위 키"가 있으면 이를 사용할 수 있습니다.

생성은 Meta-editor, 즉 개발자 자신 - 고객으로부터 키의 일부를 받았습니다.

그래서 상상...

그러나 안개에서 다른 것이 나타납니다.

"MT5" 인증 기관에서 개발자 키를 생성하는 기능과 이 키와 사용자 키의 일부를 사용하는 ex5 암호 해독 절차의 터미널에 존재하는 것이 "네이티브 서비스"보다 더 많은 문제를 해결할 것으로 보입니다. 그리고 그 적절성은 여기서 전혀 논의될 수 없습니다.

;)

 

키 보호에 대해 이야기하면 전체 인터넷이 이러한 동일한 키로 흩어져 있습니다. 즉, 보호 대신 가상이 있으며 구매자가 키를 관리해야 하는 복잡한 구현이 있는 경우에도 마찬가지입니다.

Apple의 AppStore/iTunes를 통해 작동 중인 판매 계획을 살펴보는 것이 가장 좋습니다. 고객은 아무 것도 옮기거나 키를 사용하는 번거로움 없이 소프트웨어를 클릭하고 구매하기만 하면 됩니다. 구매자는 MQL5.com에 계정이 있으면 충분합니다. 여기에는 구매 내역이 저장되고 이전에 구매한 프로그램을 다시 활성화할 수 있습니다.

프로그램을 구입할 때 사용자는 그를 위해 특별히 재컴파일/재보호된 사본을 받아 키보다 판매자를 훨씬 더 잘 보호합니다. 전체 개인 보호 프로세스는 구매 시 자동으로 수행됩니다.

우리의 임무는 구매/판매 프로세스를 가능한 한 쉽게 만드는 것입니다.

 

제 생각에 스레드는 평가판 기간 또는 데모 제한과 같은 또 다른 중요한 기능에 대한 논의를 놓쳤습니다. 잠재적 구매자는 자신이 무엇을 사고 있는지 먼저 보고 싶어합니다. 이렇게 하려면 구매한 제품이 제한 없이 작동하는 날짜 및/또는 시간에 대한 정보를 어딘가에 숨겨야(암호화)해야 합니다. 한 쌍의 키(ala pgp)가 있는 암호화 메커니즘을 언어 자체에 포함하면 이 문제뿐만 아니라 다른 많은 문제도 해결할 수 있습니다.

실제 계정 으로 작업하는 구매자에게만 판매하는 것이 합리적입니다. 만약 그렇다면, 그의 계정 번호로 바인딩이 수행되어야 합니다. 또한 이 번호는 플랫폼 자체에서 직접 수신/제공해야 하므로 기록된 계좌 번호를 찾아 다른 것으로 대체할 수 있는 곳이 없습니다. 이 번호(아마도 + 서버 이름, 암호 또는 기타 정보와 같은 기타 정보)가 암호 해독 키로 사용됩니다. 판매자는 한 쌍의 키를 생성하고 이를 사용하여 파일을 암호화하는 메커니즘을 플랫폼에 구축해야 합니다.

우리는 무엇을 얻을 것인가? 개발자는 초기 데이터가 포함된 파일을 생성합니다. 예를 들어 데모가 제공된 계정 번호와 이 계정에서 작동하는 시작 및 종료 날짜 두 개를 포함합니다. 이 파일은 암호화되어 있습니다. 전문가/스크립트/지표와 함께 구매자에게 제공됩니다. 그에게서 (그리고 계정의 그에게서만) 플랫폼 자체는 계정 번호로 두 번째 전체 키를 수신하고 인코딩 된 파일을 읽고 해독합니다 (키가 다른 사람의 것으로 판명되면 체크섬을 확인하고 아무 것도 반환하지 않을 수 있음) 그것을 전문가/스크립트/지시자에게 문자열로 보냅니다. 거기에서 이 데이터를 받은 코드 자체가 데모 또는 일반 모드에서 작동하는 방법을 결정합니다.

Expert Advisor의 작업 매개변수를 저장하는 것이 가능할 때까지: 예를 들어 MA의 교차 - 알고리즘은 디컴파일 후에도 분명하지만 이러한 MA가 이익을 위해 작동하는 매개변수는 그대로 유지될 수 있습니다. "비밀"이며 이러한 매개변수를 알지 못하면 디컴파일된 EA가 없다는 의미입니다. 물론 여기에도 구멍이 있고 무언가를 깨뜨릴 수는 있지만 암호화된 파일의 데이터(asm을 사용할 수 없음)를 알지 못하면 모든 것이 작성자에게 두 제품 모두 구매하는 것보다 훨씬 더 어려워집니다. 그리고 그 지원.

총계: 암호화된 컨테이너로 작업해야 하며, 필요한 데이터를 채워넣은 모든 사람이 가장 정교한 보호를 구성할 수 있습니다.

Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете - Документация по MQL5
 

여러분, 이것이 대중 시장이라는 것을 잊지 마십시오.

1:1 작업 범주로 구매자와 판매자가 공동으로 협상하고 신청서를 교환하고 서로 키를 보내게 될 것이라고 생각합니다. 물론, 이 길은 당신에게 많이 팔 기회를 주지 않을 것입니다. 우리는 판매자가 판매를 위해 손가락 하나 까딱하지 않아도 되는 빠른 판매 상점을 제공합니다. 그리고 구매자는 "구매" 버튼을 누르기만 하면 계정 번호 나 키 생성을 겪지 않아도 됩니다.

모든 것이 이미 생각되었습니다. 작동 방식을 알고 싶다면 iPhone/iPad를 사용하고 AppStore에서 프로그램을 구입하십시오.

Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете - Документация по MQL5
 

저의 겸손한 생각으로는 하드웨어 기반 보안 옵션이 구현 및 사용성 면에서 모두 이상적입니다. 이 옵션에 대한 또 다른 소원이 있지만 아래에서 그것에 대해 이야기하겠습니다.

계좌 번호/소유자 이름 및 기타 항목에 대한 링크가 있는 옵션은 언뜻 보기에는 명확하지 않지만 편리하지 않습니다. 여기 아마추어 구매자가 매주 브로커를 변경하고 새 계정을 개설한 다음 그와 함께 무엇을 해야 할까요? 그를 위해 제품을 컴파일할 때마다, 그리고 제품 사용자가 수십, 수백 명이라면? 키는 네트워크에 융합될 수 있으며 옵션도 아닙니다.

철과의 결속을 희생하면서. 사용자는 여러 컴퓨터에서 제품으로 작업하기를 원할 수 있으며 여러 하드웨어 옵션에 바인딩할 수 있는 가능성을 제공해야 합니다. 사용자가 사용 가능한 하드웨어를 업그레이드하려는 경우 새 하드웨어로의 전환이 수행되는 동안 예를 들어 1시간을 제공해야 할 수도 있습니다. 이 같은. 이러한 점을 고려해야 합니다. 그리고 제품을 1/2/3 차에 영원히 묶는 것은 구매자에게 어떻게 든 잘못되고 불공평합니다.

Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете - Документация по MQL5
 
joo :

철과의 결속을 희생하면서. 사용자는 여러 컴퓨터에서 제품으로 작업하기를 원할 수 있으며 여러 하드웨어 옵션에 바인딩할 수 있는 가능성을 제공해야 합니다. 사용자가 사용 가능한 하드웨어를 업그레이드하려는 경우 새 하드웨어로의 전환이 수행되는 동안 예를 들어 1시간을 제공해야 할 수도 있습니다. 이 같은. 이러한 점을 고려해야 합니다. 그리고 제품을 1/2/3 차에 영원히 묶는 것은 구매자에게 어떻게 든 잘못되고 불공평합니다.
철을 교체할 때 최대 3번의 재활성화가 자동으로 주어집니다. 이는 합리적으로 충분하고 공정합니다.
 
Renat :
그러나 동시에 우리는 테스터(테스터 에이전트)에서 보호된 Expert Advisors를 실행할 수 있도록 허용하여 사용자가 테스터에서 Expert Advisor의 성능을 독립적으로 확인하고 찌르지 않고 돼지를 살 수 있습니다.

역사를 꿰매어 놓은 전문가가 있습니다. 또는 역사적 기반에서 역사를 읽을 수 있는 사람. 이러한 더미 Expert Advisors는 테스터에서 우수한 결과를 보여줍니다. 이러한 종류의 사기로부터 보호할 수 있습니까? 특히 전문가가 DLL과 함께 제공되는 경우...

MQL5 코드 + 악성 DLL(스파이웨어에서 바이러스까지)의 경우 서비스가 평판을 위해 어떻게 싸울 것인가?