2010-03-30 6 views
6

필자는 자바 스크립트 작업을 많이하곤했는데, 내 고용주를 괴롭혔던 이유 중 하나는 소스 코드가 너무 쉽게 훔칠 수 있다는 것입니다. 난독 화를하더라도, 유능한 개발자가 원하는 경우 코드를 읽을 수 있다는 것을 모두 알고 있기 때문에 실제로 도움이되는 것은 없습니다..net 코드 (지적 재산)를 확보하는 것이 불가능합니까?

JS 스크립트는 하나이지만 IP (Intellectual Property)에 수백만 달러를 투자 한 SOA 프로젝트는 어떻게 될까요? 나는 .net과 C#을 좋아하지만, 최근에 "이 컴파일 된 프로그램을 고객에게 제공하면 개발자가 리버스 엔지니어링을 할 수 있습니까?"라는 질문에 다시 대답해야합니다. 코드를 난처하게하는 길을 벗어났습니다.하지만 다른 결정적인 C# 개발자가 코드를 이해하는 데별로 도움이되지 않는다는 것을 알고있었습니다.

나는 진지하게 질문을 제기합니다 .net 코드를 보호 할 수 없습니까?

  1. 에도 정기적으로 기본 실행 파일이 반전 될 수 있지만 모든 개발자는이 작업을 수행 할 수 있도록 기술을 가지고 다음과 같이

    고려 사항은 내가 가지고있다. .NET 어셈블리보다 네이티브 실행 파일을 분해하는 것이 훨씬 어렵습니다.

  2. 난독 화는 지금까지만 가능하지만 조금 도움이됩니다.
  3. .net으로 작성된 모든 것이 비교적 쉬운 IP 도용의 대상이라는 사실을 Microsoft가 공개적으로 인정한 것을 본 적이없는 이유는 무엇입니까? Microsoft 사이트에서 카운터 척도 교육의 스크랩을 본 적이없는 이유는 무엇입니까? VS는 왜 커뮤니티 obfuscater를 옵션 구성 요소로 제공합니까? 좋아, 어쩌면 나는 모래 위에서 머리를 가졌을 지 모르지만 대부분의 개발자 우선 순위 목록에서는 그렇지 않다.
  4. .net의 이후 버전에서 우려 사항을 해결할 계획이 있습니까?

나는 실망스럽지 않지만, 현실적인 답변을 원합니다. 감사합니다. 주관적이고 커뮤니티로 표시되는 질문에 감사드립니다.

+2

.NET에 대해서는 아무 것도 모르지만 새로운 개발자가 복잡한 프로젝트를 빠르게 수행하는 것은 어렵다는 것을 알고 있습니다. 너무 많은 개발자가 한 번에 나갔기 때문에 대규모 프로젝트가 * 사망했습니다. 문화가 없어지면 코드는 백만 페이지의 상형 문자와 같습니다. 경쟁자는 트릭이나 두 가지를 훔칠 수 있지만, 코드의 동작 *을보고 처음부터 구현할 수 있습니다. – Beta

답변

10

모든 코드는 리버스 엔지니어링 할 수 있습니다.

.NET은 이것을 위해 막대를 낮 춥니 다 (반사경을 시도하십시오!). 그러나 난독 화는 다시 위로 올립니다. 좋은 obfuscator는 코드를 리버스 엔지니어링하는 것을 매우 헌신적이고 의욕적 인 사람이 아닌 모든 사람을 막을만큼 충분히 높게 올릴 것입니다.

나는 개인적으로 품질에 중점을 두는 것을 선호합니다. 작은 ISV를 실행하고 .NET을 사용합니다. 난독 화가 중요하지만, 우수한 제품을 제공 할 수 있다면 누군가가 코드를 리버스 엔지니어링하려고하는지는 중요하지 않습니다.

그들이 복잡한 프로젝트, 모든 리버스 엔지니어링 수있는 경우에도, 가설, 그들은

+1

리플렉터에 동의, 올바른 이유로 훌륭한 도구! 좋은 obfuscater를 사용한다고 언급했는데 링크를 포함시켜 주시겠습니까? –

+1

dotfuscator는 제가 가장 많이 들었던 곳입니다 ... http://www.preemptive.com/products/dotfuscator/overview – tbischel

+0

Dotfuscator는 가장 일반적이며 매우 좋은 것입니다. 거기 밖으로 톤이 있습니다 -. NET Obfuscator에 대한 모든 검색은 무리를 설정합니다 ... –

1

모든 코드를 리버스 수 있습니다 ... 실제로 시장에서 경쟁 우위로 뭔가를 제공 뒤에 년 것 공학. 그렇습니다. .NET이나 Java에서는 최적화 된 C++보다 쉽지만 Javascript 나 PHP보다 덜합니다. 난독 화는 취약점을 줄이기 위해 먼 길을가는 것이지만, 실제로 리버스 엔지니어링 엔지니어는 숨겨진 코드가 무엇이든 관계없이 코드가 손에 들어가면 비밀을 찾으려고합니다. 당신이하는 일은 기껏해야 그에게 불쾌감을 줄뿐입니다.

좋은 난독 화 도구는 Reflector에서 전문 지식을 시작하고 끝내는 캐주얼 프로그래머가 실제로 코드 작동 방식을 이해하지 못하게 막습니다. 그 이상으로, 당신이하는 일은 크게 희망이 없습니다.

역 엔지니어링이 매우 쉬운 .NET의 기능은 프레임 워크에서 강력한 반영과 역 동성을 허용하는 기능과 동일하므로 가까운 장래에 언제든지 변경되지 않을 것으로 보입니다.

관련 문제