WinGyu_coder

Python 난독화 하기, Cython 사용방법 본문

Python파이썬

Python 난독화 하기, Cython 사용방법

WinGyu 2023. 9. 21. 11:56

Cython으로 난독화한 코드를 실행하려면 기본적으로 다음과 같은 단계를 따르게 됩니다.

  1. Cython과 필요한 패키지 설치:

    pip install cython setuptools
  2. .pyx 파일 생성:
    원본 example.py 파일의 확장자를 .pyx로 변경합니다. 그러면 example.pyx 파일이 생성됩니다.

  3. setup.py 파일 생성:
    example.pyx 파일을 컴파일하기 위한 setup.py 파일을 작성합니다.

    from setuptools import setup
    from Cython.Build import cythonize
    
    setup(
        ext_modules=cythonize("example.pyx")
    )
  4. 컴파일:
    setup.py 파일이 있는 디렉토리에서 다음 명령을 실행하여 .pyx 파일을 컴파일합니다.

    python setup.py build_ext --inplace

    실행 후, example.cpython-{version}-{platform}.so (또는 Windows에서 .pyd)라는 공유 라이브러리가 생성됩니다.

  5. 실행:

    생성된 .so 또는 .pyd 파일은 파이썬 스크립트에서 모듈처럼 임포트하여 사용할 수 있습니다.

    예를 들어, example.pyxdef hello():라는 함수가 있다면, 다음과 같이 파이썬 스크립트나 셸에서 해당 함수를 호출할 수 있습니다:

    import example
    example.hello()
  6. 배포:

    example.so 또는 example.pyd 파일과 필요한 다른 종속성들을 함께 배포하면 됩니다. 원본 .py 또는 .pyx 파일은 배포할 필요가 없습니다.

참고로, 이 방식은 코드를 완전히 숨기는 것은 아니라 코드를 바이너리 형태로 컴파일하여 난독화하는 방식입니다. 고급 리버스 엔지니어링 기술을 가진 사람이라면 여전히 리버스 엔지니어링이 가능하므로, 완벽한 보안 방법이라고는 할 수 없습니다.