티스토리 뷰
uncompyle6 main.pyc > main.py
파이썬 pyinstaller로 생성된 exe 파일을 디컴파일하는 방법
pyinstaller는 파이썬 스크립트를 독립 실행 파일로 변환하는 도구입니다. 이렇게 생성된 exe 파일은 소스 코드가 암호화되어 있어 일반적으로 쉽게 디컴파일할 수 없습니다. 그러나 일부 도구와 기술을 이용하면 exe 파일을 디컴파일할 수 있습니다.
디컴파일 방법은 크게 두 가지로 나눌 수 있습니다.
1. PyInstxtractor 사용하기
PyInstxtractor는 pyinstaller로 생성된 exe 파일을 추출하는 도구입니다. 이 도구를 사용하면 exe 파일에서 압축된 파이썬 스크립트와 기타 리소스를 추출할 수 있습니다. 추출된 파일을 통해 소스 코드를 확인할 수 있습니다.
PyInstxtractor 사용 방법은 다음과 같습니다:
import PyInstaller.rebuild
PyInstaller.rebuild.main(["--onefile", "your_script.py"])
위의 방법을 통해 pyinstaller로 생성된 exe 파일의 소스 코드를 확인할 수 있습니다. 단, 이 방법은 소스 코드를 완전히 복원하기는 어려우며, 코드 구조와 로직을 파악하는 데에는 어려움이 있을 수 있습니다.
추출된 소스 코드는 일반 파이썬 파일 형태로 제공되므로, 필요에 따라 수정하거나 재사용할 수 있습니다.
PyInstxtractor와 unpy2exe를 설치하는 방법
1. PyInstxtractor 설치하기
PyInstxtractor는 pip를 통해 쉽게 설치할 수 있습니다. 다음과 같은 단계로 설치할 수 있습니다:
pip install PyInstxtractor
이걸로 안된다면
https://github.com/extremecoders-re/pyinstxtractor
직접 다운받아서 pyinstxtractor.py 파일과 디컴파일 할 exe와 같은 폴더에 위치합니다
python ./pyinstxtractor.py ./main.exe
그러면 main.exe_extracted 라는 폴더 아래로 파일들이 생깁니다 .
이 경우에는 main.pyc라는 파일을
pip install uncompyle6
python setup.py install
이때 컴파일한 파이선 버전이랑 디컴파일하는 파이선 버전이 다르면 컴파일한 파이선 버전으로 맞춰서 다시 설치해서 시도해야 합니다.
이렇게 PyInstxtractor 설치하면 pyinstaller로 생성된 exe 파일을 디컴파일할 수 있습니다. 단, 디컴파일된 코드는 완벽하지 않을 수 있으므로 주의해야 합니다.
'프로그래밍 > python' 카테고리의 다른 글
pip로 설치된 라이브러리 한번에 지우는 방법으로 pyinstaller로 exe 만드는 용량 줄이기 (0) | 2024.05.27 |
---|---|
파이썬 프로그램에서 텔레그램으로 알림 (종료,에러 등등의 상황 보내기 ) (1) | 2024.04.28 |
이미지 세로로 합쳐서 1장으로 만들기 파이썬 예제 (0) | 2024.04.24 |
구글 리캡챠 recaptcha 통과 파이썬 커스텀 된 경우 twocaptcha (1) | 2024.01.10 |
TypeError: __init__() should return None, not 'bool' 설명 (1) | 2023.11.20 |
- Total
- Today
- Yesterday
- Magisk
- 파이선
- 텔레그램봇
- php
- 클라우드플레어
- 윈도우
- 파이썬
- 루팅
- 에러
- 워드프레스
- lsposed
- 아미나
- 제로보드
- 텔레그램
- php8
- 그누보드5
- Fullcalendar
- 멀티계정
- 셀레니움
- 유튜브
- python
- 회원가입
- Cloudflare
- 아파치
- xe
- Apache
- 그누보드
- 오토셋
- .htaccess
- SSL
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |