.net 의 dll 파일 보호 방법(해독 방지,역 컴 파일 dll 방지)

.net 은 가상 컴퓨터 에서 실 행 된 언어 로 MSIL 의 중간 언어 를 직접 생 성 한 다음 에.net 컴 파일 러 JIT 가 이미 지 를 이 컴퓨터 코드 로 해석 하고 CPU 에 전달 합 니 다.중간 언어 는 역 컴 파일 되 기 쉬 우 므 로 dll 파일 을 어떻게 효과적으로 보호 하 는 지 연구 합 니 다.
나의 대체적인 방법 은 강력 한 서명+혼동+암호 화 이다.강력 한 서명 강 한 이름 의 프로그램 집합 은 변경 되 지 않 고 유일 하 게 프로그램 집합 을 확보 할 수 있 습 니 다.같은 이름 의 프로그램 집합 도 서명 하면 다 릅 니 다.강 한 사인 은 간단 합 니 다.
항목 에 강 한 이름 을 추가 하 는 방법:1.항목 을 오른쪽 클릭 하여 속성 창 을 엽 니 다.2.속성 창 에서'서명'탭 을 선택 하고 프로그램 집합 서명 옵션 으로 선택 하고 드 롭 다운 목록 에서 새 것 을 선택 하 십시오.아래 그림 과 같 습 니 다如何保护.net中的dll文件(防止破解、反编译dll)
如何保护.net中的dll文件(防止破解、反编译dll)
如何保护.net中的dll文件(防止破解、反编译dll)
3.새 서명 창 을 열 고 서명 한 이름 비밀번호 등 을 입력 하 십시오.다음 그림 과 같 습 니 다. 
 
확인 을 누 르 면 서명 추가 가 완 료 됩 니 다.
 
원본 이 없 는 DLL 파일 에 강 한 이름 추가
 
프로젝트 에 원본 코드 가 없 는 다른 dll 파일 을 인용 하고 이 dll 파일 이 강 한 이름 이 없 는 프로그램 집합 이 라면 컴 파일 할 때'Assembly generation failed-인 용 된 프로그램 집합'xxxxxxxxxxxxxx'와 같은 오류 가 발생 합 니 다.제 가 인용 한 것 은 Interop.Scripting.dll 프로그램 집합 입 니 다.강 한 이름 이 아 닌 다음 작업 이 필요 합 니 다.1.SDK 명령 알림 창 을 엽 니 다.
 
2.새로운 무 작위 키 쌍 을 만 듭 니 다:sn-k Interop.Scripting.snk 3.역 컴 파일 대상 프로그램 집합 ildasm Interop.Scripting.dll/out=Interop.Scripting.il3.재 컴 파일,강 한 이름 의 매개 변수 ilasm Interop.Scripting.il/resource=Interop.Scripting.res/key=Interop.Scripting.snk/optimize 4.서명 정보 sn-v Interop.Scripting.dlOK 를 검증 합 니 다.생 성 된 dll 파일 을 항목 에 다시 도입 하고 컴 파일 합 니 다.주:서명 되 지 않 은 메 인 프로그램 은 서명 되 지 않 았 거나 서명 되 지 않 은 프로그램 집합 을 참조 할 수 있 습 니 다.다만 서명 한 주 프로그램 은 서명 되 지 않 은 프로그램 집합 을 참조 할 수 없습니다.(위 문장 에 상응하는 해결 방법 이 있다)
헷 갈 리 는 것 은 컴 파일 로 생 성 된 MSIL 중간 코드 를 모호 하 게 처리 하 는 것 이다.가장 간단 한 헷 갈 리 는 것 은 이름 이 헷 갈 리 는 것 이다.곧 네 임 스페이스 이름,유형 명,방법 명,필드 이름 등 을 모두 특수 기호 나 다른 기호 로 바 꾸 는 것 이다.목적 은 어 지 러 울 때 까지 보이 지만 프로그램 실행 논 리 를 바 꾸 지 않 는 것 이다.제 가 사용 하 는 Dotfuscator 를 헷 갈 리 게 합 니 다.Dotfuscator 혼동 방법:1.다음 그림 과 같이 새 프로젝트 를 만 듭 니 다.
如何保护.net中的dll文件(防止破解、反编译dll)
2.헷 갈 릴 dll,exe 파일 을 선택 하 십시오.아래 그림 과 같 습 니 다.
   如何保护.net中的dll文件(防止破解、反编译dll)
3.속성 에서 Library 속성 을 선택 합 니 다(매우 중요 합 니 다.제 가 헷 갈 리 는 것 은 dll 파일 이기 때 문 입 니 다.선택 하지 않 으 면 헷 갈 리 면 정확하게 호출 되 지 않 습 니 다!).아래 그림 에서 보 듯 이如何保护.net中的dll文件(防止破解、反编译dll)
4.bulid 탭 을 선택 하고 bulid 단 추 를 누 르 면 헷 갈 립 니 다.우 리 는 다른 탭 을 선택 하여 암호 화 문자열 을 만 들 고 워 터 마크 를 추가 하 는 등 작업 을 할 수 있 습 니 다.암호 화 작업 은 다른 방법 을 사용 하기 때문에 선택 하지 않 았 습 니 다.OK,혼동 이 완 료 된 후에 우 리 는 Reflector.exe 로 혼 란 스 러 운 dll 파일 을 역 컴 파일 할 수 있 고 소스 코드 와 비교 하여 효 과 를 볼 수 있 습 니 다.
암호 화
그 다음 에 우 리 는 혼 란 스 러 웠 던 dll 파일 을 암호 화하 여 dll 파일 을 보호 합 니 다.내 가 사용 하 는 암호 화 도 구 는 MaxtoCode 이다.소프트웨어 를 열 고 중국어 로 전환 하면 매우 간단 합 니 다.dll 파일 을 추가 한 후 직접 클릭 하여 암호 화 를 실행 하면 됩 니 다.다른 옵션,예 를 들 어 암호 화 문자열,강 한 이름 등 은 모두 간단 합 니 다.모두 가 한번 해 보면 알 수 있 고 MaxtoCode 의 도움 은 매우 우호 적 이어서 한눈 에 사용 할 수 있 습 니 다.
암호 화 된 dll 파일 은 이전 보다 배가 컸 습 니 다.Reflector.exe 로 역 컴 파일 한 후에 dll 파일 이 더욱 철저하게 암호 화 된 것 을 발 견 했 습 니 다.주체 함수 내용 이 모두 숨 어 있 기 때 문 입 니 다.
상기 세 단 계 를 통 해 dll 파일 은 일반인 의 해 제 를 면 할 수 있 습 니 다.물론 해 제 를 절대 방지 할 수 없습니다.

좋은 웹페이지 즐겨찾기