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

 

EX4의 경우 Editor가 디컴파일되었을 가능성이 큽니다.

그리고 그는 방어에서 알몸으로 보입니다. 재정적 흐름이 없습니다.

그리고 보호된 구성 요소(클라이언트 및 편집기)가 모두 키로 작동하면 성공에 대한 희망이 더 커집니다.

;)

 

5코펙...


1. 특정 제품의 사용은 대부분(전부는 아닐지라도) 연결이 있는 경우에 필요합니다.

2. 따라서 "열쇠"는 특정 형식으로 자신을 암시합니다.

표시기 또는 Expert Advisor가 실행 중인 터미널이 시작 시 "주소를 지정"하는 서비스...

3. 따라서 디컴파일 문제는 더 이상 문제가 되지 않습니다.


범주를 벗어났습니다. 제품은 정말 재미있어야 합니다.

거기에 "기본"으로 판매되는 초 비밀 알고리즘의 개요

흥미롭고 더 유용한 것이 없다는 것을 보여주었습니다 ... 아아 ...


원칙적으로 계산 알고리즘 자체는 슈퍼 듀퍼이며 작성자가 그렇게 생각하면 사이트에 게시할 수도 있습니다.

공개적으로 공개하더라도 비밀이 아닌 거래 과정에서의 유통과 실행만을 Expert Advisor에서 정리하는 것이 더 정확합니다.

- 전문가가 요청을 보냅니다(구독에 의해)

- 값을 취한다

- 프로세스

- 거래

- 통과 중 렌더링으로 바쁠 수 있음

// //

거래를 제외하고 지표에 대해 동일


계정 번호 별로 구독 자체를 구성하십시오 ...


일반적으로 한 로마 황제가 구운 것처럼: 분할 및 정복!

 
circlesquares :


디컴파일 문제가 여전히 문제인 것은 사실이다. 필요한 모든 코드가 EA 내부에 있는 경우 알려진 작업 키와 함께 디컴파일을 수행하면 모든 후속 결과와 함께 EA의 소스 코드가 제공됩니다.

코드의 일부가 사이트에 있는 경우 이는 매우 신뢰할 수 없는 솔루션입니다. 사이트 운영에 오류가 발생하면 고객의 막대한 금전적 손실이 발생할 수 있습니다.

 
api :

또한 MQL5 코드가 프로세서의 기본 코드로 컴파일된다는 언급을 어디선가 본 적이 있습니다. 이것이 사실인지 아닌지는 모르겠지만, 그렇다면 이것은 디컴파일 방지에 심각한 구멍입니다.

그리고 이것이 어떻게 보안을 감소시킬 수 있습니까?

코드 추가는 비대칭 암호화를 사용하여 방지됩니다. 키 길이가 충분하면 서명을 위조하는 것이 불가능합니다.

역 컴파일에 대해 이야기하는 경우 기계 코드에 대한 자동화는 매우 어렵습니다. 나는 분해를 의미하지 않습니다 - 가능하기 때문에 프로세서 자체는 어떻게든 코드를 실행해야 합니다. 자동 디컴파일 시도가 이루어지고 있지만( http://www.hex-rays.com/ ) 기본적으로 컴파일러가 생성한 코드의 가능한 모든 변형을 분석하는 것으로 귀결됩니다. 내가 이해하는 한 기계어로 변환하는 작업은 메타따옴표 쪽에서 수행됩니다. 코드 생성기의 작업을 달의 위상에 바인딩하면(즉, 구성이 다른 방식으로 컴파일되도록) 디컴파일 자동화가 완전히 비현실적이 됩니다!

 
lea :

그리고 이것이 어떻게 보안을 감소시킬 수 있습니까?

코드 추가는 비대칭 암호화를 사용하여 방지됩니다. 키 길이가 충분하면 서명을 위조하는 것이 불가능합니다.

역 컴파일에 대해 이야기하는 경우 기계 코드에 대한 자동화는 매우 어렵습니다. 나는 분해를 의미하지 않습니다 - 가능하기 때문에 프로세서 자체는 어떻게든 코드를 실행해야 합니다. 자동 디컴파일 시도가 이루어지고 있지만( http://www.hex-rays.com/ ) 기본적으로 컴파일러가 생성한 코드의 가능한 모든 변형을 분석하는 것으로 귀결됩니다. 내가 이해하는 한 기계어로 변환하는 작업은 메타따옴표 쪽에서 수행됩니다. 코드 생성기의 작업을 달의 위상에 바인딩하면(즉, 구성이 다른 방식으로 컴파일되도록) 디컴파일 자동화가 완전히 비현실적이 됩니다!


사실 분해를 의미했습니다. 나는 모든 사람이 흔히 그렇듯이 내 능력으로 판단됩니다. 대부분의 경우 어셈블러 텍스트에서 알고리즘을 복원하는 것이 나에게 케이크 조각이기 때문에 이것은 디컴파일과 같습니다. 물론 이 과정은 다형성 바이러스의 알고리즘을 사용하여 매우 복잡할 수 있지만 결국에는 안티바이러스가 있기 때문에 이 기술이 완전한 보장을 하지는 못합니다.

 
api :


사실 분해를 의미했습니다. 나는 모든 사람이 흔히 그렇듯이 내 능력으로 판단됩니다. 대부분의 경우 어셈블러 텍스트에서 알고리즘을 복원하는 것이 나에게 케이크 조각이기 때문에 이것은 디컴파일과 같습니다. 물론 이 과정은 다형성 바이러스의 알고리즘을 사용하여 매우 복잡할 수 있지만 결국에는 안티바이러스가 있기 때문에 이 기술이 완전한 보장을 하지는 못합니다.

대용량 파일을 분해하고(ida의 도움이 있더라도) 알고리즘을 수동으로 재구성하려면 많은 시간과 노력이 필요합니다. 사람들이 이 접근 방식을 자주 실행하는지 의심스럽습니다. 그러나 분명히 이것은 개발자가 생성 된 기계 코드를 어떻게 든 복잡하게 관리하는 경우 기계 코드가 있는 파일에 대해 미래에 가능할 유일한 방법입니다.
바이러스 백신은 특별한 알고리즘을 거의 사용하지 않습니다. 그들은 주로 파일과 명령 시퀀스의 특성에 집착합니다. 저는 안티바이러스가 행의 합(fpu를 사용하도록 훈련)을 통해 숫자 pi의 계산을 저주한다는 사실에 직면했습니다. 디컴파일은 근본적으로 다른 작업입니다. 코드 생성 중에 되돌리기 어려운 코드 변이를 수행하는 경우 특성 코드 변형에 의한 디컴파일은 원칙적으로 불가능합니다(코드를 에뮬레이트/추적하고 "높은 수준"에서 어떤 일이 발생하는지 확인해야 합니다. 무엇을 어디에, 무엇을, 어떤 매개변수로 호출했는지 .. .안티바이러스는 유사한 접근 방식을 사용하는 것으로 보이지만 다양한 시스템 기능에 대한 호출 시퀀스만 모니터링합니다.

되돌릴 수 없는 돌연변이와 관련하여 나는 아마도 기사에 대한 몇 가지 링크를 던질 것입니다(나는 행정부와 독자들이 이에 대한 링크를 신경 쓰지 않기를 바랍니다):

 

MQL5에서 코드를 혼란/난독화하기 위해 각 함수에 대해 특수 수정자를 지정할 수 있습니다.

 void MyFunc( int val) trash 
  {
   Print ( "Val: " ,val);
  }

지금까지는 쓰레기 라고 불렸지만 아마도 보호하기 위해 변경할 것입니다.


결과적으로 코드가 심하게 오염되고 지정된 기능이 느려집니다.


또한 MQL5 언어 컴파일러는 많은 최적화를 사용하여 역 컴파일 가능성을 크게 줄입니다.

 
Renat :

MQL5에서 코드를 혼란/난독화하기 위해 각 함수에 대해 특수 수정자를 지정할 수 있습니다.

좋네요 :) 가비지 코드의 비율을 조정할 수 있습니까? 함수가 호출 사이트에서 인라인됩니까?

 
lea :

좋네요 :) 가비지 코드의 비율을 조정할 수 있습니까? 함수가 호출 사이트에서 인라인됩니까?

매번 쓰레기를 버리는 새로운 방법이 있을 것입니다. 백분율을 조정할 수 없습니다. 컴파일러가 모든 것을 결정합니다.


함수의 자동 인라인은 오랫동안 작동해 왔습니다. 컴파일러 자체는 함수의 양과 복잡성에 따라 결정을 내립니다. 즉, 큰 함수는 인라인되지 않습니다.

 

아... 얼마나 쉬운데...

나는 욕망을 해킹하지 않을 것입니다. 글쎄, 나는 가까운 장래에 아무것도 팔지 않을 것입니다.

그게 사람의 문제야...

:)))