[python 일반] [Python] pyinstaller : 파이썬 컴파일 시 코드 암호화 & 복호화

pyinstaller 실행파일 암호화

흔히들 파이썬 코드 숨기는 방법으로 컴파일을 하곤 한다.

파이썬 코드를 컴파일하여 실행파일로 만들면 내부 코드를 볼 수 없기 때문이다.

하지만 파이썬 컴파일의 단점은 복호화가 쉽기 때문에 마음만 먹으면 코드를 까볼 수 있다는 사실...

따라서 파이썬 코드를 배포할 때는 암호화가 가장 중요한 이슈로 떠오르곤 한다.

오늘은 그 중 파이썬 코드 암호화 중 비교적 간단한 방법을 소개해보고자 한다.

pyinstaller 로 코드를 컴파일 했기 때문에 해당 패키지에서는 암호화 방법이 없나 찾아보던중 key 옵션이 있다는걸 발견했다.

사용법은 아주 간단하다.

pyinstaller --key="12345" main.py

요렇게 --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파일을 복호화해주면-

python python_exe_unpack.py -i main.exe

복호화 실패가 뜨는걸 확인할 수 있다.

암호화가 잘 된 거겠쥬?

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

key 없이 컴파일한 실행파일을 복호화하면??

 

복호화가 바로 된다!

+) 덧

아래 블로그를 보니 key값을 알아내서 복호화 시킬 수 있다고 한다 ㄱ-

나는 따라해봤는데 에러가 나며 복호화가 안되었긴한데... 그래도 key를 알아낼 수 있다는 점에서 치명적인듯.

https://blog.system32.kr/286

 

+) 덧 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

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
15 [python 데이터분석] [jupyter] 주피터 노트북에 이미지 삽입 file 졸리운_곰 2025.09.06 526
14 [python 데이터분석] [Python] Streamlit 사용법 (python 데이터분석 웹 만들기) file 졸리운_곰 2024.12.22 462
13 [python 데이터분석] Anaconda : Error while loading conda entry point: conda-libmamba-solver (libarchive.so.19: cannot open shared object file: No such file or directory) 졸리운_곰 2024.12.14 520
12 [python 데이터분석] Anaconda | Conda update 반영 안됨(update 후에도 버전 변경 없음) file 졸리운_곰 2024.11.18 431
11 [python 데이터분석] Keeping Anaconda Up To Date 졸리운_곰 2024.05.30 552
10 [python 데이터 분석] 국내 경제 100대 통계지표 졸리운_곰 2024.02.18 672
9 [python 데이터 분석] Python 에서 R언어 패키지 호출 : Calling R From Python With rpy2 file 졸리운_곰 2024.01.28 676
8 [python 데이터 분석] 파이썬을 활용한 코스피, 달러 환율정보 수집부터 차트 시각화까지 file 졸리운_곰 2023.12.11 735
7 [Python 데이터분석][pandas] [Python pandas] DataFrame의 문자열 칼럼을 숫자형으로 바꾸기 : pd.to_numeric(), DataFrame.astype() file 졸리운_곰 2023.12.09 357
6 [Python 데이터분석] [Python 환경설정] VS code 설치 및 Anaconda와 연동하기 file 졸리운_곰 2023.03.17 527
5 [Python 데이터분석][python 데이터분석 프로덕션] [Python] Docker를 사용한 Dash 웹앱 생성 file 졸리운_곰 2021.12.10 403
4 [Python 데이터분석] [pandas] 공공데이터(csv) 활용시 한글 깨짐 현상 해결 file 졸리운_곰 2021.09.30 592
3 [Python 데이터분석] 공공데이터포털::공휴일 데이터 조회 (REST API) file 졸리운_곰 2021.09.30 358
2 [Python 데이터 분석] pandas의 to_csv()를 사용해서 csv 파일로 저장하기(save 하기) 졸리운_곰 2021.09.29 603
1 [Python 데이터 분석] 데이터 과학을 단순하게 만드는 3가지 Python 패키지 file 졸리운_곰 2021.09.24 513
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED