Metadata-Version: 2.4
Name: cppy-obf
Version: 0.1.2
Summary: Source code encryption, obfuscation, and hardware USB dongle key tool
Home-page: https://github.com/lunarcompany/cp_py
Author: Lunar Company
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: cryptography>=41.0.0
Dynamic: author
Dynamic: home-page
Dynamic: requires-python

<p align="center">
  <img src="https://raw.githubusercontent.com/lunarcompany/cp_py/main/assets/banner.png" alt="cppy-obf banner" width="100%" onerror="this.style.display='none'"/>
</p>

<div align="center">

# 🛡️ CPPY-OBF

**Next-Gen Enterprise Code Protection, Self-Executing Obfuscation & Hardware USB Dongle Security**

[![PyPI version](https://img.shields.io/pypi/v/cppy-obf.svg?color=38bdf8&style=for-the-badge&logo=pypi&logoColor=white)](https://pypi.org/project/cppy-obf/)
[![Python versions](https://img.shields.io/pypi/pyversions/cppy-obf.svg?color=818cf8&style=for-the-badge&logo=python&logoColor=white)](https://pypi.org/project/cppy-obf/)
[![License: MIT](https://img.shields.io/badge/License-MIT-10b981.svg?style=for-the-badge)](https://opensource.org/licenses/MIT)
[![Downloads](https://img.shields.io/pypi/dm/cppy-obf.svg?color=f59e0b&style=for-the-badge)](https://pypi.org/project/cppy-obf/)

<p align="center">
  <a href="#-quick-start">🚀 빠른 시작</a> •
  <a href="#-key-features">✨ 핵심 기능</a> •
  <a href="#-cli-usage-guide">📖 사용 가이드</a> •
  <a href="#-hardware-security-dongle">🔑 USB 보안키</a> •
  <a href="#-architecture">🏗️ 작동 원리</a> •
  <a href="https://cppy-obf.lunarcompany.xyz" target="_blank">🌐 공식 웹사이트</a>
</p>

</div>

---

> **"소스코드는 완벽히 은닉하고, 실행은 자유롭게 유지하세요."**  
> `cppy-obf`는 파이썬 및 소스코드를 **군사급 AES-256 대칭키 암호화 + Gzip 압축 + C언어 바이너리 컴파일**로 보호하며, 배포된 코드가 암호화된 상태에서도 키 입력 없이 즉시 실행되는 **독립 실행 난독화(Self-Executing Obfuscation)**와 **물리적 USB 하드웨어 보안키 연동**을 제공합니다.

---

## ⚡ 빠른 시작 (Quick Start)

### 1. 설치
```bash
pip install -U cppy-obf
```

### 2. 바로 사용하기
```bash
# 원본 코드를 난독화 & 암호화 (파일 자체는 바로 실행 가능!)
cppy --obf main.py

# 실행 테스트 (암호화되어 있어도 정상 작동)
python main.py

# 원본 코드로 다시 복원할 때
cppy --de-obf main.py
```

---

## ✨ 핵심 기술 (Key Features)

| 기능 | 명령어 | 설명 |
| :--- | :--- | :--- |
| **🚀 자체 실행 난독화** | `cppy --obf <파일>` | 코드는 암호화/압축되어 원본을 볼 수 없지만 **프로그램은 정상 작동** |
| **🔑 USB 하드웨어 보안키** | `cppy --obf --usb <파일>` | 실물 USB 장치의 **고유 하드웨어 시리얼**과 복호화 키를 결합하여 USB 없이는 복호화 원천 차단 |
| **🔒 엔터프라이즈 AES-256** | `cppy en <파일>` | 코드를 완전히 잠금 처리하고 `.cpde` 비밀키 생성 |
| **🔓 간편한 원본 복호화** | `cppy de <파일>` | 분리된 키 또는 USB 인증을 통해 1초 만에 원본 소스 복원 |
| **📂 프로젝트 일괄 처리** | `cppy en-all <폴더>` | 수백 개의 소스코드 파일을 하위 디렉터리까지 재귀적으로 일괄 암호화/난독화 |
| **🛡️ 안티 템퍼링 서명** | *자동 적용* | SHA-256 디지털 서명으로 1바이트라도 변조 시 프로세스 즉각 종료 |
| **🌍 글로벌 8개국 다국어** | `cppy 한국`, `cppy usa` | 한국어, 영어, 일본어, 중국어, 프랑스어 등 다국어 CLI 실시간 전환 |

---

## 🔍 Before & After 비교

### ❌ Before (원본 소스코드 - 유출 및 분석 위험)
```python
# 결제 핵심 비즈니스 로직이 그대로 노출됨
def process_payment(user_id, amount):
    secret_key = "MY_COMPANY_SECRET_KEY_2026"
    discount_rate = 0.35 if is_vip(user_id) else 0.05
    return api_call(secret_key, user_id, amount * (1 - discount_rate))
```

### 🛡️ After (`cppy --obf` 적용 후 - 자체 실행 가능 래퍼)
```python
# [CP.PY-OBFUSCATED-EXECUTABLE] - 원본 은닉 및 메모리 단독 실행
import base64 as _a, gzip as _g
from cryptography.fernet import Fernet as _F
_k = b"""WjRkM...[AES-256 보호 키 바이너리]...=="""
_payload = b"""gAAAAAB...[Gzip 압축 암호화된 실행 페이로드]...=="""

try:
    exec(_g.decompress(_F(_a.b64decode(_k)).decrypt(_a.b64decode(_payload))))
except Exception:
    pass
```

---

## 🔑 실물 USB 하드웨어 보안 동글 (Hardware USB Key)

`cppy`는 소프트웨어 키의 한계를 넘어, **실제 꽂혀 있는 USB 메모리를 물리적 보안 동글**로 전환합니다:

```bash
cppy --obf --usb server.py
```

1. 시스템에 연결된 USB 드라이브를 자동 감지합니다.
2. 선택한 USB 볼륨을 `CPDE_KEY`로 설정하고 복호화 키를 주입합니다.
3. **USB 컨트롤러의 물리적 고유 시리얼 번호(Hardware Serial)**를 암호화 검증 루틴에 강제 바인딩합니다.
4. **키 파일을 다른 곳으로 복사하더라도, 정품 실물 USB가 꽂혀있지 않으면 복호화가 절대 불가능합니다.**

---

## 📖 CLI 상세 사용법

<details open>
<summary><b>1. 실행 가능한 자체 난독화 (Recommended)</b></summary>

```bash
# 파일 자체는 정상 실행되지만 코드는 암호화/압축으로 봉인
cppy --obf app.py

# 실물 USB 하드웨어 보안키와 결합
cppy --obf --usb app.py

# 난독화된 파일 원본 복원 (.obfde 키 사용)
cppy --de-obf app.py
```
</details>

<details>
<summary><b>2. 표준 AES-256 암호화 & 복호화</b></summary>

```bash
# 단일 파일 암호화 (.cpde 키 분리 생성)
cppy en secret.py

# 단일 파일 복호화
cppy de secret.py

# 폴더 전체 재귀 일괄 암호화
cppy en-all ./my_project

# 폴더 전체 재귀 일괄 복호화
cppy de-all ./my_project
```
</details>

<details>
<summary><b>3. 보안 상태 점검 & 도구 설정</b></summary>

```bash
# 프로젝트 디렉터리 내 파일별 암호화/보안 상태 검사
cppy status ./src

# .cpde 복호화 키 파일 내용(Hex/Base64) 조회
cppy key app.py.cpde

# 백업본(.bak)을 이용한 원본 롤백
cppy rollback app.py

# 언어 변경 (한국어, 영어, 일본어, 중국어 등)
cppy 한국
cppy usa
cppy japan
```
</details>

---

## 🌐 Ecosystem & Live Showcase

- 🌐 **공식 웹사이트 & 라이브 검증 데모**: [https://cppy-obf.lunarcompany.xyz](https://cppy-obf.lunarcompany.xyz)
- 🐍 **PyPI 패키지**: [https://pypi.org/project/cppy-obf/](https://pypi.org/project/cppy-obf/)
- 📦 **NPM 패키지**: [https://www.npmjs.com/package/cppy-obf-js](https://www.npmjs.com/package/cppy-obf-js)

---

## 📄 License

Distributed under the **MIT License**. Free for commercial and private projects.
See `LICENSE` for more information.

<div align="center">
  <sub>Built with 💙 by Lunar Company & Enterprise Security Engineers.</sub>
</div>
