본문 바로가기
Q&A2022년 6월 27일1분 읽기

프로그램 크래킹 방지 방법

전
전민규
조회 612댓글 3

제가 만든 소프트웨어가 크래킹되는 걸 방지하려면 어떤 방법이 있나요?

댓글 3

김김영삼4년 전

완벽한 방지는 불가능하지만, 난이도를 높이는 방법들:

1. 코드 보호:

  • 난독화(Obfuscation) — 코드를 읽기 어렵게 변환
  • 패킹 — UPX, Themida, VMProtect로 바이너리 보호
  • 안티 디버깅 — IsDebuggerPresent, ptrace 탐지
  • 무결성 체크 — 바이너리 해시 검증

2. 라이선스 시스템:

  • 서버 인증 — 온라인 라이선스 키 검증 (가장 효과적)
  • 하드웨어 바인딩 — MAC/CPU ID 기반 활성화
  • 타임 체크 — 시스템 시간 조작 방지

3. SaaS 전환:

  • 클라이언트에 코드를 배포하지 않는 것이 최선
  • 핵심 로직은 서버에서 실행

현실: 충분한 시간과 실력이 있으면 모든 보호는 뚫립니다. 비용 대비 효과를 고려하세요. 소규모 소프트웨어라면 서버 인증 + 기본 난독화면 충분합니다.

문문성민(guest)4년 전
Python으로 만든 프로그램도 보호할 수 있나요?
김김영삼4년 전

Python은 바이트코드(.pyc)를 쉽게 디컴파일할 수 있어서 보호가 어렵습니다.

방법:

  • PyInstaller + UPX — exe로 패키징 + 압축
  • Cython — Python 코드를 C로 컴파일
  • Nuitka — Python을 네이티브 바이너리로 컴파일
  • PyArmor — Python 전용 난독화 도구

핵심 알고리즘만 C/Cython으로 작성하고 나머지는 Python으로 두는 하이브리드 방식이 현실적입니다.

Ctrl+Enter로 등록