Skip to content

oxqnd/DotObfuscator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DotObfuscator

.NET 어셈블리를 위한 강력한 난독화 도구입니다. 이 도구는 .NET 애플리케이션의 코드를 보호하고 역공학을 어렵게 만들어 지적 재산을 보호하는데 도움을 줍니다. Mono.Cecil을 기반으로 구현되어 있으며, 다양한 난독화 기법을 통해 코드의 가독성과 분석 가능성을 크게 저하시킵니다.

주요 기능

이름 난독화 (Rename Obfuscation)

  • 클래스, 메서드, 필드 이름을 무작위 문자열로 변경하여 코드 가독성 저하
  • 특수 이름(예: Main, InitializeComponent 등)은 보존하여 기능 유지
  • 네임스페이스 구조 유지로 호환성 보장
  • 난독화된 이름은 실행 시 자동으로 매핑되어 정상 동작
  • 유니코드 문자를 활용한 이름 변경으로 추가적인 난독화 효과
  • 인터페이스와 상속 관계는 유지하여 런타임 오류 방지

문자열 암호화 (String Encryption)

  • 모든 문자열 리터럴을 Base64로 암호화
  • 런타임에 자동으로 복호화되어 원본 기능 유지
  • 암호화된 문자열은 디컴파일 시에도 원본 내용 노출 방지
  • 성능 최적화를 위한 선택적 암호화 지원
  • 암호화 키는 프로그램마다 고유하게 생성
  • 문자열 풀(String Pool) 최적화로 메모리 사용량 감소

제어 흐름 난독화 (Control Flow Obfuscation)

  • 메서드 내 코드 흐름을 복잡하게 변경하여 분석 난이도 증가
  • 무작위 분기문과 더미 코드 삽입
  • 디컴파일러의 코드 분석 방해
  • 원본 로직은 유지하면서 실행 흐름만 변경
  • 조건부 분기문을 switch-case로 변환
  • 가상 분기문을 통한 코드 흐름 혼란
  • 더미 메서드 호출로 코드 분석 방해

보안 기능

  • Anti-Debug

    • 디버거 감지 시 경고 메시지 출력
    • 디버깅 시도 모니터링
    • 안전한 방식으로 구현되어 프로그램 실행에 영향 최소화
    • IsDebuggerPresent API 활용
    • 디버그 포트 감지
    • 디버그 레지스트리 키 검사
  • Anti-Dump

    • 메모리 덤프 시도 방지
    • 프로세스 메모리 보호
    • 덤프 파일 생성 방지
    • 메모리 페이지 보호 속성 설정
    • 핸들 테이블 보호
    • 덤프 파일 생성 API 후킹
  • Anti-Tamper

    • 파일 무결성 검사를 통한 변조 감지
    • SHA256 해시 기반 검증
    • 변조 감지 시 프로그램 종료
    • 실행 중 지속적인 무결성 검사
    • 코드 섹션 해시 검증
    • 리소스 섹션 보호
  • Anti-Decompiler

    • 디컴파일러 분석 방지
    • 코드 구조 난독화
    • 디컴파일 시도 감지
    • IL 코드 최적화
    • 메타데이터 보호
    • 리플렉션 방지

리소스 보호

  • 임베디드 리소스 암호화
  • 문자열 리소스 Base64 인코딩
  • 리소스 접근 제어
  • 런타임에 자동 복호화
  • 리소스 이름 난독화
  • 리소스 압축 및 암호화
  • 리소스 로딩 시점 보호

사용 방법

  1. 난독화하고 싶은 .NET 실행 파일을 DotObfuscator.exe에 드래그 앤 드롭합니다.

  2. 난독화가 완료되면:

    • obfuscated_output.exe 파일이 생성됩니다.
    • 원본 파일은 그대로 유지됩니다.
    • 콘솔 창에 진행 상황이 표시됩니다.
  3. 생성된 obfuscated_output.exe를 실행하여 정상 작동하는지 확인합니다.

요구 사항

시스템 요구사항

  • Windows 운영체제 (Windows 7 이상)
  • .NET Framework 4.8 이상
  • 최소 100MB 이상의 디스크 공간
  • 최소 2GB RAM 권장
  • x86/x64 아키텍처 지원

의존성

  • Mono.Cecil 0.11.4 이상
  • System.Security.Cryptography
  • System.Reflection.Metadata
  • System.Runtime.CompilerServices.Unsafe

주의사항

성능 고려사항

  • 난독화는 프로그램 실행 속도에 약간의 영향을 줄 수 있습니다.
  • 특히 문자열 암호화와 제어 흐름 난독화가 성능에 영향을 줄 수 있습니다.
  • 대용량 어셈블리의 경우 처리 시간이 길어질 수 있습니다.
  • 메모리 사용량이 증가할 수 있습니다.

디버깅 관련

  • 난독화된 파일은 디버깅이 매우 어려워집니다.
  • 개발 중인 코드는 난독화하지 않는 것을 권장합니다.
  • PDB 파일과의 호환성이 제한될 수 있습니다.
  • 예외 스택 트레이스가 난독화될 수 있습니다.

보안 기능

  • 일부 보안 기능은 프로그램 실행에 영향을 줄 수 있습니다.
  • 프로덕션 환경에서 사용하기 전에 충분한 테스트가 필요합니다.
  • 안티바이러스 프로그램과 충돌할 수 있습니다.
  • 시스템 보안 정책에 따라 실행이 제한될 수 있습니다.

호환성

  • 일부 .NET 기능과 호환되지 않을 수 있습니다.
  • 리플렉션을 사용하는 코드는 주의가 필요합니다.
  • 동적 코드 생성과 호환성 문제가 있을 수 있습니다.
  • 특정 프레임워크나 라이브러리와 충돌할 수 있습니다.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages