뉴비에욤
0x4 Python Tutorials - Python to EXE 본문
"PyInstaller"를 이용한 파이썬 실행 파일 생성
이번 포스팅에서는 파이썬 스크립트를 exe 파일로 컴파일 하는 것을 보여줄 것이다. 이는 당신이 작성한 파이썬 코드가 파이썬이 설치되지 않은 다양한 윈도우 환경에서 실행될 수 있게 도와준다. 우선 파이썬 2.x 버전을 포함하여 몇 가지 의존성 패키지를 설치해야 한다. 이번 포스팅 환경에서는 cygwin 혹은 PyWin 패키지를 이용할 것이다.
리눅스 환경 : sudo apt-get install python2.7 build-essential python-dev zlib1g-dev upx
윈도우 환경 : http://www.activesate.com/activepython (풀패키지 인스톨 파일)
의존성 패키지 설치가 완료되면 Pywin32, Setuptools, PyInstaller 패키지를 추가로 설치해야 한다.
패키지 설치 이후
이제 다음의 명령어를 통해 파이썬 스크립트를 실행파일로 만들 수 있다.
- "python pyinstaller.py -F <scriptName>"
위 명령이 실행되면 우선 파이썬 코드에서 사용되는 모듈(임포트된)과 의존성 패키지를 추출하고 "<scriptName>.txt, <scriptName>spec, <scriptName>.exe" 파일을 포함하는 새로운 폴더를 생성한다. 이제 ".exe" 파일을 사용할 수 있다. 참고로 ".txt, .spec" 파일은 삭제해도 무방하다.
실행 파일 생성 이후
파이썬 스크립트가 이제 exe 파일로 변환되었기 때문에 파이썬 인터프리터가 없는 윈도우에서도 동작할 수 있다. 따라서 다양한 윈도우 환경에서 의존성 걱정 없이 파이썬 코드를 실행할 수 있게 된다.
예제 스크립트
위와 같이 파일을 작성한다. 아래 사진의 명령어를 통해 exe 파일을 생성할 수 있다.
위 사진의 명령에서 사용되는 "-F" 옵션은 exe 파일이 생성될 때 하나의 파일로 생성하라는 뜻이다. 파이썬 코드에 따라서 실행 파일이 여러개로 나뉘어지는 등의 경우가 발생하는데 이를 미리 예방하는 옵션이다.
명령어가 수행되면 위 사진처럼 "dist" 폴더가 생성되고 그 안에 "test.exe" 파일이 존재하게 된다. 실행하면 파이썬 코드 내에 포함되던 "Hello World!!!" 문자열이 출력된다.
위 사진에서 사용되는 "-w" 옵션은 파이썬 코드가 GUI를 생성하는 코드이거나, 커맨드창을 숨기고 싶을 떄 사용하는 옵션이다.
역시 "dist" 폴더에 "test.exe" 파일이 생성되지만 이전 파일과 아이콘이 다르게 생긴것을 볼 수 있다.
생성된 파일을 실행하면 아무것도 출력되지 않는다. 이를 이용해서 악성코드 등을 백그라운드에서 실행되게 할 수 있다.
이제 당신은 이전 포스팅에서 다루었던 모든 코드를 위에서 보았던 프로세스를 이용하여 exe 파일을 생성할 수 있다.
파이썬 스크립트를 exe 파일로 만드는 것은 파이썬이 설치되지 않은 윈도우 환경에서 권한 상승 코드를 실행할 때 매우 유용하게 사용될 수 있다. 튜토리얼 0x2에서 작성했던 리버스 쉘처럼 좀 더 고급스러운 파이썬 코드를 exe 파일로 만드는 것을 연습하길 바란다.
'primalsecurity.net > Python Tutorials' 카테고리의 다른 글
0x6 Python Tutorials - Spidering (0) | 2015.09.08 |
---|---|
0x5 Python Tutorials - Web Requests (0) | 2015.09.08 |
0x3 Python Tutorials - Fuzzer (0) | 2015.09.08 |
0x2 Python Tutorials - Reverse Shell (2) | 2015.09.07 |
0x1 Python Tutorials - Port Scanner (0) | 2015.09.07 |