0

저는 MATLAB에서 프로그램을 작성했으며 최종 사용자에게 프로그램을 배포하는 세 가지 방법을 고려하고 있습니다. 첫 번째 방법은 .m 파일을 p 코드로 변환 한 다음 MATLAB에서 p 코드를 사용할 수 있지만 코드 자체는 볼 수없는 최종 사용자에게 배포하는 것입니다. 두 번째 방법은 MATLAB Compiler 및 MATLAB Builder NE를 사용하여 .m 파일을 C#으로 컴파일 한 다음 Visual Studio를 사용하여 코드를 난독 화하고 최종 제품을 생성하는 것입니다. 세 번째 방법은 MATLAB Compiler와 MATLAB Builder EX를 사용하여 Excel 추가 기능을 만들고 Excel 추가 기능을 최종 사용자에게 배포하는 것입니다.어떤 배포 방법으로 더 어려운 프로그램을 만들 수 있습니까?

내가 생각하고있는 세 가지 배포 방법 각각에서 코드를 리버스 엔지니어링하거나 크랙에 액세스하는 것이 얼마나 어려운지 궁금합니다. 나는 크랙하거나 리버스 엔지니어링 할 수없는 프로그램을 만드는 것이 본질적으로 불가능하다는 것을 알고 있지만, 다른 방법보다 크랙하기가 더 어려운 배포 방법이 무엇입니까? 나는 p 코드가 최종 사용자에게 잠재적으로 프로그램을 리버스 엔지니어링하는 데 도움이 될 수 있다고 생각되는 파일 이름에 대한 액세스를 제공한다는 것을 알고 있습니다.

미리 도움을 주셔서 감사합니다.

+3

pcode를 사용하는 것이 좋습니다. pcode를 사용하는 것이 좋으며, 크랙을위한 도구가 적을 것이므로 문제없이 실행할 가능성이 훨씬 더 높습니다. – Jonas

답변

1

MathWorks에게이 질문에 대한 답변을 제공했습니다. MathWorks 엔지니어는 독점 정보이므로 암호화 유형을 알려주지 못한다고 말했습니다.

또한 MathWorks 엔지니어에게 컴파일러와 빌더 EX 또는 빌더 NE에 대해 어떤 종류의 암호화가 사용되는지 질문했습니다. 그는 이것이 m- 파일을 암호화하기 위해 128 비트 AES 암호화를 사용했지만 프로그램에 사용 된 다른 종류의 파일은 .dll이나 그림 파일처럼 암호화되지 않는다고 말했다.

그런 다음 강력한 암호화, p 코드 또는 배포 된 프로그램 중 Compiler and Builder를 사용했는지 물어 보았습니다. 다른 종류의 암호화이기 때문에 말하기는 어렵지만 컴파일러와 빌더를 사용하기 전에 실제로 .m 파일을 p-code로 변환하여 컴파일러와 빌더를 사용하여 배포 된 보호 제품을 적어도 p- 암호.

1

배포 된 버전에서 코드를 리버스 엔지니어링 할 수있는 측면에서 이러한 방법 사이에는 약간의 차이가 있습니다.

.NET 용 빌더는 MATLAB을 C#으로 변환하지 않습니다. MATLAB Compiler와 Builder 제품은 코드를 보관 및 암호화하고이를 소거하고 MATLAB Compiler Runtime에 대해 실행하는 작은 래퍼 (.NET 어셈블리 또는 Excel 추가 기능)를 만듭니다. 실행 중에는 아직 암호가 해독되었지만 임시 보관 된 파일은 임시 디렉토리에 표시되므로 파일 이름은 p 코딩과 동일한 방식으로 사용할 수 있습니다.

P- 코딩은 가장 간단하고 저렴하지만 최종 사용자가 MATLAB 및 사용하는 모든 도구 상자의 사본을 가져야합니다. 컴파일러 및/또는 빌더 제품으로 배포 된 제품에는 아무 것도 필요하지 않지만 그러한 제품을 구입해야하며 배포 프로세스가 좀 더 복잡합니다.

관련 문제