피드백 & 복습

pyarmor + pyinstaller

anyway03 2025. 10. 24. 14:24

난독화 한 코드를 설치하기 편하도록 컴파일할 필요가 생겼다.

 

- pyinstaller는 크로스 컴파일러가 아니므로 윈도우에서 번들링하면 윈도우에서만 실행 가능.

- rocky 리눅스 환경에서 진행.

 

미니콘다 가상환경 실행 후 진행

CONDA ACTIVATE MYENV

 

파이아머, 파이인스톨러를 설치한다.

pip install pyarmor
pip install pyinstaller

 

 

난독화 과정을 확인해 보기 위해 간단한 코드를 생성한다.

cat > test_input.py
print('Hello World!')

 

 

난독화

pyarmor gen test_input.py

 

dist/test_input에 생성된 파일 내용 확인

(무서워)

난독화 완료.

 

다음은 pyinstaller로 난독화 완료된 파일을 묶어 단일 실행파일을 만든다.

pyinstaller -F dist/test_input.py

 

++ 만약 실행시 런타임 모듈이 필요하다는 경고가 뜨면, 난독화 할 때 생성된 런타임 폴더를 pyinstaller 대상과 같은 경로에 넣어주면 된다.

 

https://stackoverflow.com/questions/77635741/pyarmor-modulenotfounderror-no-module-named-pyarmor-runtime-000000

 

Pyarmor ModuleNotFoundError: No module named 'pyarmor_runtime_000000'

I'm trying to obfuscate my project but got error ModuleNotFoundError: No module named 'pyarmor_runtime_000000', So I tried to obfuscate a very simple folder containing only 2 files as follows test ...

stackoverflow.com

 

 

 

+++ 의존성 문제가 발생할 수 있다. (no_module....)

명령어에 해당 문제가 발생한 의존성을 강제로 추가한다.

예시 : uvicorn

pyinstaller --onefile --name my_app_release --collect-all uvicorn dist/난독화대상/main.py

또는 --hidden-import 명령어를 사용한다.

ModuleNotFoundError: No module named 'transformers.models.metaclip_2'

 

--hidden-import "transformers.models.metaclip_2"

'피드백 & 복습' 카테고리의 다른 글

몽고DB 데이터 덤프  (0) 2025.12.17
크롤링 코드 수리하기  (1) 2025.11.05
miniconda로 가상환경 구축하기  (0) 2025.09.25