- 전체
- Python 일반
- Python 수학
- Python 그래픽
- Python 자료구조
- Python 인공지능
- Python 인터넷
- Python SAGE
- wxPython
- TkInter
- iPython
- wxPython
- pyQT
- Jython
- django
- flask
- blender python scripting
- python for minecraft
- Python 데이터 분석
- Python RPA
- cython
- PyCharm
- pySide
- kivy (python)
Python 일반 [python 일반] [Python] pyinstaller : 파이썬 컴파일 시 코드 암호화 & 복호화
2024.06.10 17:27
[python 일반] [Python] pyinstaller : 파이썬 컴파일 시 코드 암호화 & 복호화
pyinstaller 실행파일 암호화
흔히들 파이썬 코드 숨기는 방법으로 컴파일을 하곤 한다.
파이썬 코드를 컴파일하여 실행파일로 만들면 내부 코드를 볼 수 없기 때문이다.
하지만 파이썬 컴파일의 단점은 복호화가 쉽기 때문에 마음만 먹으면 코드를 까볼 수 있다는 사실...
따라서 파이썬 코드를 배포할 때는 암호화가 가장 중요한 이슈로 떠오르곤 한다.
오늘은 그 중 파이썬 코드 암호화 중 비교적 간단한 방법을 소개해보고자 한다.
pyinstaller 로 코드를 컴파일 했기 때문에 해당 패키지에서는 암호화 방법이 없나 찾아보던중 key 옵션이 있다는걸 발견했다.
사용법은 아주 간단하다.
요렇게 --key로 암호를 지정해주면 복호화 할때 키가 필요하다는 것.
실제로 해보니 에러가 떴지만
안내 사항대로 pip install tinyaes 를 해주니 잘 실행되었다.
pyinstaller 실행파일 복호화
실행파일 복호화도 간단하다.
https://github.com/WithSecureLabs/python-exe-unpacker
요 깃허브를 clone 한 다음에 스크립트를 사용하여 복호화하면 된다.
자세한 복호화 과정은 아래의 블로그 참고.
https://item4.blog/2018-11-04/Extract-Python-Code-from-PyInstaller-EXE-File/
요렇게 스크립트를 사용하여 exe파일을 복호화해주면-
복호화 실패가 뜨는걸 확인할 수 있다.
암호화가 잘 된 거겠쥬?
key 없이 컴파일한 실행파일을 복호화하면??
복호화가 바로 된다!
+) 덧
아래 블로그를 보니 key값을 알아내서 복호화 시킬 수 있다고 한다 ㄱ-
나는 따라해봤는데 에러가 나며 복호화가 안되었긴한데... 그래도 key를 알아낼 수 있다는 점에서 치명적인듯.
+) 덧 2
pyinstaller 도큐먼드에서도 소스코드를 숨길려면 cython 을 쓰라고 권고하긴 한다.
https://pyinstaller.org/en/stable/operating-mode.html#hiding-the-source-code
pyInstaller 는 컴파일된 Python 스크립트(.pyc 파일)을 제공하는데, 원칙적으로는 코드 분해를 할 수 있다고...
cython 은 파이썬 모듈을 C로 변환하고 C를 어셈블리어로 컴파일하기 때문에 훨씬 더 보안성이 높다고 한다.
근데 cython은 Linux 환경에서만 잘 동작하고 Window에서는 먹통인 경우가 많다고 한다 ㅠㅠ
64bit에선 어찌저찌 되긴하는듯...
Linux 환경에서 실행파일 생성할 일이 있다면 cython 을 써봐야겠음!
[출처] https://m.blog.naver.com/skfnsid123/223002958441
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.

