프로젝트에서 .net 난독 처리기가 사용되기 때문에, Dotfuscator, xeoncode, foxit 등 다양한 모델이 온라인에서 검색됩니다.
하지만 대부분의 수수료는 물론 크랙된 버전이고, 회사는 불법 복제 소프트웨어를 사용할 수 없도록 요구합니다.
오랫동안 검색한 끝에 ConfuserEX를 발견했고, 사용해도 괜찮다고 해서 바로 꺼내서 여러분과 공유했습니다.
인터넷에 중국어 입문이 거의 없기 때문에, 여기서 테스트를 해보려고 합니다:
1. 새로운 C# 클래스 라이브러리를 만드세요. 이름은 바꾸지 않고 ClassLibrary1이라고 부르고, Class1.cs 클래스 아래에 간단한 메서드를 추가하세요:
2. 다른 콘솔 애플리케이션 ConsoleTest를 생성하고, 참조 ClassLibrary1.dll을 추가한 후 Main 메서드의 ClassLibrary1.Class1에서 테스트 메서드를 호출합니다:
컴파일 후 ILSpy로 ConsoleTest.exe을 열면 아래 소스 코드를 확인할 수 있습니다:
3, 이제 ConfuserEx와 혼동해 보자:
ConfuserEx를 다운로드한 후 압축을 풀고 ConfuserEx.exe를 열면 다음 그림과 같이 표시됩니다:
4. "여기에 입력 모듈 드래그"라는 프롬프트를 보시나요?
그리고 방금 ConsoleTest.exe을 넣어보세요, 아래 사진에 보이는 것처럼요:
5. 설정 클릭
- 셀렉트 패커
- 모듈->ConsoleTest.exe
- 규칙을 위한 + 기호를 클릭하세요, 참
아래에 나와 있습니다:
6. 시위!->보호! , 성공적인 내보내기를 촉구합니다 (혼란스러운 디렉터리에서),
7. ILspy로 시작합니다... 혼란스러워서 소스 코드를 ConsoleTest.exe 보세요:
메서드가 비어 있으면 ConsoleTest.exe 의존성 ClassLibrary1.dll을 Confused 디렉터리에 복사한 후 실행 ConsoleTest.exe 클릭하면 올바른 결과를 출력합니다.
주석
8. exe 파일만 혼동하면 괜찮고, dll 파일만 혼동하면 다음과 같은 오류가 나타납니다:
오류: 실행 모듈이 없나요, 실행 가능한 본체가 없나요?
exe 파일이 없는 건가요? ConsoleTest.exe를 넣고 ClassLibrary1.dll와 혼동하자, 봐.
9. 이전 방법에 따라 ConsoleTest.exe와 ClassLibrary1.dll을 ConfuserEx에 드래그 앤 드롭하여 혼동을 주었습니다.
아래에 나와 있습니다:
즉각적인 성공.
10. 하지만 다시 열었어... 혼란스러웠고, 파일들만 ConsoleTest.exe 발견했어요, ClassLibrary1.dll 어디로 간 거죠?
dll 파일을 헷갈리지 않나요?
걱정 마세요, 클릭ConsoleTest.exe 시도해봅시다, 아, 간다, 잘 실행됩니다, 아래 사진에서 보여요:
여기서 유일한 설명은 ConfuserEx가 dll을 exe에 삽입한다는 것입니다.
현재 혼동된 ConsoleTest.exe는 17KB이고, 원래 ConsoleTest.exe은 5KB이며, ClassLibrary1.dll도 5KB입니다.
11. ILSpy를 사용해 ConsoleTest.exe와 ClassLibrary1.dll를 동시에 혼동한 후 생성된 ConsoleTest.exe을 확인해 봅시다.
메서드도 보이지 않고, 참조된 dll 파일도 보이지 않습니다.
오늘은 여기까지입니다.
첨부: 정오에 dll을 따로 혼동하는 방법을 찾지 못했는데, 이 학생이 오후 @四毛的家에 방법을 찾아냈고, 저는 DLL을 따로 혼란시키는 방법을 덧붙이겠습니다.
8단계에 따르면, EXE 방법에 따라 dll을 혼동할 때 오류가 보고되었고, 아래 단계를 따랐어야 했습니다:
dll을 ConfuserEx에 드래그하면 설정에서 Packer를 선택할 수 없고, 아래에 보이는 오른쪽의 연필 버튼을 클릭하면 됩니다.
연필 버튼을 클릭하면 편집 규칙 상자가 뜨고, 프리셋에서 항목을 선택한 후 여기서 최대 항목을 선택한 뒤, 아래의 "+" 버튼을 클릭해 안티 일다스름(아마도 IL을 통한 컴파일 방지)을 선택하면 내보내기가 성공합니다.
아래 그림에서 보듯이 방금 혼란스러워진 ClassLibrary1.dll을 ILSpy로 확인하고 있습니다.
아무것도 보이지 않는다.
난독화된 dll을 테스트하기 위해, 난독되지 않은 ConsoleTest.exe와 난독화된 ClassLibrary1.dll을 한 디렉터리에 넣고 '실행ConsoleTest.exe'을 클릭해 성공했습니다.
|