2016-08-08 3 views
-1

필자는 우리 고객에게 판매하고자하는 엑셀 추가 기능을 사용하여 동료들과 함께 작업했습니다. 그것은 클라우드 데이터베이스에 링크되어있다. 라이센스 시스템은 현재 VBA로 코딩되어 있지만 VBA 보호를 둘러싼 잠재적 인 해커는 라이센스 확인을 사용 중지 할 수 있습니다 (코드 보호는 그다지 문제가되지 않습니다).엑셀 추가 기능 라이센스

우리는 라이선스를 확인하기 위해 .dll 파일을 개발하려고했지만이 분야의 전문 지식이 부족합니다.

의견이 있으십니까?

+0

VSTO는 좋은 옵션입니다. 그러나 본 [이] (http://stackoverflow.com/questions/13984229/how-can-i-create-product-keys-for-vba-applications-so-that-illegal-distribution/13985132#13985132) –

+0

감사합니다 Siddharth, 좋아 보인다. 유사한 접근법이 현재 사용 중이지만 자신보다 덜 공상적입니다. 유일한 단점은 모든 코드가 VBA에 머물러 있다는 것입니다. 나는 우리가 좀 더 안전한 것을 얻기 위해 VSTO에 가야한다고 동의한다. 우리가 살펴볼 것입니다. – Phil

답변

1

기타 라이센스 시스템을 가지고 않습니다 다시 년에서 .... .NET 라이선스 솔루션에 대해 Microsoft 구성 요소 개체 모델 (COM)을

을 게시 할 수 있습니다. 하나는 C++로 코드를 작성하고 클라이언트는 COM을 사용하여 컴포넌트를 인스턴스화합니다. COM 라이센스 메커니즘은 IClassFactory 대신 IClassFactory2을 구현하는 것입니다. 여기에 링크가 있습니다 https://msdn.microsoft.com/en-us/library/windows/desktop/ms680095(v=vs.85).aspx

이제 "내 코드는 VBA에 있습니까?"라고 말할 수 있습니다. 글쎄, VBA가 안전하지 않아서 통합 문서가 무너질 수 있습니다. 문제는 소스가 내부로 배송된다는 것입니다.

.NET 솔루션을 컴파일하는 것이 더 좋지만 실행 파일은 소스로 리버스 엔지니어링 할 수있는 중간 언어 (IL)입니다. Java와 동일한 문제는 '바이트 코드'도 리버스 엔지니어링 할 수 있다는 것입니다.

가장 강력한 코드 보안을 위해 C++로 컴파일해야합니다. 심지어 C++ 에서조차 어떤 사람들은 여전히 ​​리버스 엔지니어링이 가능하다고 말합니다.

궁극적 인 편집증은 가치있는 코드를 웹 서비스 뒤에 배치하여 결코 사용자의 컴퓨터에 저장하지 않는 것입니다.

+0

감사합니다. Meaden. 나는 당신의 말을 듣지 만,이 단계에서는 C++로 전체 프로젝트를 다시 작성할 수는 없습니다. 당신은 맞습니다. 프로젝트를 리버스 엔지니어링하는 것이 그렇게 어렵지는 않지만 현재 라이센스 비용보다 많은 비용이들 것입니다. 코드는 난독 화되어 거의 읽을 수 없습니다. 게다가 고객은 일반적으로 VBA에 대한 지식이 거의없는 중소기업이며 해킹을위한 충분한 시간과 리소스가 부족합니다. 우리는 VBA 보안 문제를 고객에게 제공되는 서비스에 비해 비교적 저렴한 가격으로 우회하려고했습니다. – Phil

+0

가장 중요한 점은 VBA 코드에서 라이센스 (마더 보드 ID와 관련 있음)를 확인했기 때문입니다. 보안이 항상 문제가 될 수있는 경우에도 추가 기능에 대한 라이선스를 더 강력하고 개선 된 방법으로 찾기를 바랍니다. – Phil

+0

하드웨어에 묶는 것만으로도 좋습니다. 마더 보드를 가짜로 만든다. 다른 사람들은 네트워크 인터페이스 코드의 맥 주소 (Mac-Address)를 사용합니다. –