2010-01-24 4 views
3

.net 어셈블리를 디 컴파일하고 리버스 엔지니어링하는 것이 일반적입니다.컴파일 된 응용 프로그램의 실행 코드 숨기기 연습

기존 응용 프로그램에 추가 할 일부 플러그인 어셈블리를 릴리스하고 싶습니다. 그러나 다른 응용 프로그램에 플러그인을 사용하고 싶지는 않습니다.

이 어셈블리의 소스를 숨길 수있는 방법은 무엇입니까?

답변

15

대상 하드웨어를 제어하지 않으면 이론적으로 100 % 보호를 달성 할 수 없습니다. CPU가 충분한 시간과 지식을 가지고 그것을 실행할 수 있다면, 인간도 그것을 읽을 수 있습니다. 이는 C#으로 제한되지 않습니다 (관리되는 언어로는 이 더 편합니다.). Dotfuscator 나 XenoCode와 같은 obfuscator를 사용하면 디 컴파일 된 코드를 더 쉽게 이해할 수 있습니다. 정말로 걱정된다면 서버 기반 응용 프로그램으로 이동해야합니다.

+0

서버 기반 응용 프로그램은 어느 정도 리버스 엔지니어링 할 수 있습니다 (심지어 단어 인 경우). 충분한 시간을 감안할 때 행동을 연구하고 가능한 모든 입력에 대한 가능한 모든 대답을 볼 수 있으며 결국 똑같은 ** 관찰 가능한 ** 동작으로 다른 서버 측 응용 프로그램을 만들 수 있습니다. –

0

소프트웨어입니다. 무엇이든 가능합니다. 바이너리를 암호화 한 다음 런타임시 응용 프로그램으로 전체 또는 일부를 해독 할 수 있습니다. 그것은 절대 안전한 것은 아니지만, 당신이 얼마나 무자비한 것인지를 결정하는 것은 당신에게 달려 있습니다.

2

obfuscator tool을 사용할 수 있지만 리버스 엔지니어링은 여전히 ​​가능합니다.

사용자의 컴퓨터는 필요한 것을 알 필요가 있으므로 사용자는이를 말해야합니다. 컴퓨터 소유자는 컴퓨터를 완전히 제어 할 수 있으므로 컴퓨터에 지시 한 내용을 컴퓨터에서 알 수 있으며 다른 작업을 수행 할 수 있습니다.

0

데이터를 숨길 수있는 방법이 있습니다 (steganography). CodeProject에 다룬 수많은 기사의 저자가 있습니다. 정확하게이 작업을 수행하기위한 프레임 워크를 작성했습니다. 기사의 제목은 1에서 12까지의 시리즈의 '스테 가노 그래피 (Steganography)'였습니다. 작성자와 제휴 한 website입니다.

'Phoenix Protector'라는 obfuscator도 있습니다. here으로, .NET 코드를 혼란스럽게 할 수 있습니다. 개인적으로 시도하지는 않았지만 좋게 들립니다.

호프가 도움이 되었으면 안녕하세요, 탐.

0

최소한, 해커의 & 경쟁 업체가 귀하의 코드를 보거나 이해할 수 없도록 dll을 혼란시켜야합니다. 난독 화는 100 % 완벽한 것은 아니지만 경로에 큰 장애물이됩니다.

Crypto Obfuscator과 같은 일부 obfuscator는 dll이 명시 적으로 표시되지 않고 리플 렉터와 같은 리버스 엔지니어링 도구에서 열 수있는 디스크에서 사용할 수 있도록 모든 dll을 기본 exe에 포함하는 기능이 있습니다.

관련 문제