문제

저에게 난독 화는 "모호함에 의한 보안"또는 "허위 보호 감각"캠프에 속하는 아이디어 인 것 같습니다. 지적 재산을 보호하기 위해 저작권이 있습니다. 보안 문제가 발견되지 않도록 문제를 해결 하는 방법이 있습니다. 요컨대 사회 문제에 대한 기술적 해결책이라고 생각합니다. 거의 작동하지 않습니다.

하지만 우리 개발팀에서 그렇게 느끼는 유일한 사람인 것 같아서 제가 틀렸거나 설득력있는 주장이 필요합니다. 우리 제품은 .NET을 사용하며 한 개발자는 .NET Reactor를 제안했습니다 (부수적으로 이 그래서 스레드도 ). <인용구>

.NET Reactor는 순수한 .NET 어셈블리 (C #, VB.NET, Delphi.NET, J #, MSIL ...로 작성된)를 네이티브 머신 코드와 혼합하여 디 컴파일을 완전히 중지합니다.

기본적으로 바이트 코드의 모든 장점을 한 번에 버릴까요?

난독 화에 대한 좋은 엔지니어링 이점이 있습니까?

도움이 되었습니까?

해결책

몇 가지 문제를 논의 할 때 도움이 될 질문을 게시했습니다. should-i-be-worried-about-obfuscating-my-넷 코드

다른 팁

엔지니어링 이유를 요청 하셨으므로이 질문에 대한 답을 엄격하게 말하는 것은 아닙니다. 하지만 유효한 설명이라고 생각합니다.

말했듯이 난독 화는 사회 문제를 해결하기위한 것입니다. 그리고 기술적 문제와는 달리 사회적 (또는 비즈니스) 문제에는 완전한 해결책이 거의 없습니다. 문제를 해결하거나 최소화하는 데는 어느 정도의 성공이 있습니다.

이 경우 난독 화는 누군가가 코드를 디 컴파일하고 훔치는 데 장벽을 높입니다. 이는 우연한 공격을 막고 타성을 통해 지적 재산을 도난 당할 가능성을 줄입니다. 귀찮은 비유를하자면, 이모빌라이저는 자동차 도난을 막지는 못하지만 가능성을 줄여줍니다.

물론 유지 보수성, 성능 및 가장 중요한 것은 사용자가 버그 보고서를 정확하게 제출하기 어렵게 만드는 비용이 있습니다.

GateKiller가 말했듯이 난독 화는 단호한 팀이 디 컴파일하는 것을 막지는 못하지만 (그리고 제품이 무엇인지에 따라) 팀이 여러분을 공격 할 가능성이 얼마나 결정적입니까?

따라서 이것은 사회 문제에 대한 기술적 해결책이 아니라 복잡한 사회 구조에 하나의 영향력을 추가하는 기술적 결정입니다.

대규모 프로그래머 팀이 시간, 돈, 노력이있는 소스 코드를 얻고 자한다면 성공할 것입니다.

따라서 Obfuscation은 소스를 얻을 시간, 돈 또는 노력이없는 사람들을 막아야합니다. 지나가는 사람들이 전화를 걸 수도 있습니다.

순수한 관리 코드 난독 화를 고수하면 어셈블리 크기를 상당히 줄일 수 있으며 난독 화 된 클래스 / 함수 이름 (단일 문자로 축소됨)은 메모리 사용량이 더 적다는 것을 의미합니다.이는 거의 항상 무시할 수있는 수준이지만 일부 모바일 / 내장형 장치 (대부분 Java에서 사용됨)에 영향을 미치고 사용됩니다.

잠재적 인 엔지니어링 이점 중 하나는 경우에 따라 난독 화로 인해 더 작은 실행 파일이나 기타 아티팩트가 생성 될 수 있다는 것입니다.javascript를 난독 화하면 파일 크기가 작아집니다 (모든 변수의 이름이 "descriptiveNameOne"이 아니라 "a"및 "b"이고 모든 공백이 제거되기 때문입니다).따라서 난독 화 된 자바 스크립트를 사용하는 웹 페이지의로드 시간이 빨라집니다.분명히 이것은 .NET 세계에서 (그만큼) 적용되지는 않지만 직접적인 엔지니어링 이점이있는 상황의 예입니다.

.net과 관련이 없지만 Javascript 및 기타 인터 페팅 된 언어의 난독 화를 고려할 것입니다.자바 스크립트는 필요한 대역폭과 파서가 읽어야하는 토큰을 줄여주기 때문에 난독 화의 이점이 있습니다.

하지만 컴파일 된 바이트 코드를 난독 화하는 것은 나에게 그다지 유용하지 않은 것 같습니다.당신은 무엇을 시도하고 성취 할 것인가?난독 화가 너무 쉽게 우회되는 것을 피하기 위해 라이센스 확인 코드에서 약간 유용하다는 것을 알 수 있습니다.

난독 화를 사용하는 주된 이유는 지적 재산을 보호하기 위해서입니다.일반적으로 .NET Reactor와 같은 난독 화 제품을 구입하는 것이 귀하의 저작권을 합법적으로 시행하는 것보다 훨씬 비용 효율적입니다.

Obfuscation은 성능 향상 및 어셈블리 크기 감소와 같은 다른 부수적 인 이점도 제공 할 수 있습니다.이것이 귀하가 찾고있는 엔지니어링 이점이 될 것입니다.

암호화를 사용하여 도중에 정보를 보호하세요.

프로그램에 정보가있는 동안 난독 화를 사용하여 정보를 보호합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top