2022. 3. 18. 11:56ㆍIT
예전에는 역 어셈블링이라는 것이 있었다는 것이 갑자기 기억이 난건 python으로 개발 중이던 소스코드에서 github에 올리려고 준비하던 중에 실수로 .py 파일이 삭제되었고 휴지통에서도 찾을 수 없는 상태가 되었을 때다.
언젠가 python으로 만든 소프트웨어는 배포를 하게되면 소스코드가 누출이 될 수 있다는 글을 읽은 기억이 났다. 그래서 소스코드가 삭제되긴 했지만 복구할 수 있을 것이라는 기대감을 가지고 검색을 했다. 역시나 uncompyle6라는 것을 찾을 수 있었다. 이놈을 이용하면 pyc 파일을 py 파일로 복구를 할 수 있다고 한다. 다음과 같은 아주 간단한 명령으로 말이다.
uncompyle6 .\DailyTest.cpython-37.pyc > DailyTest.py
그럼 pyc 파일이란게 무엇일까?
pyc 파일은 파이썬의 소스코드 py를 실행할 때 만들어지는 중간파일이라고 한다. 파이썬은 인터프리터 형식으로 내부적으로 두 단계를 거쳐서 실행이 된다고 한다. 1차로는 PVM - Python Virtual Machine이 이해할 수 있는 Byte code 형태로 py를 내부적으로 pyc로 변환한다. 다음 단계는 이 pyc를 PVM을 통해 실행하게 된다. uncompyle6는 pyc 파일을 py로 변경을 해 준다. 한번이라도 소스코드를 실행했었다면 pyc 파일을 찾을 수 있다.
그리고 위와 같은 방식으로 소스 코드를 복구 할 수 있다.
설치는
pip install uncompyle6
와 같이 할 수 있다.
'IT' 카테고리의 다른 글
#2 전자액자 프로젝트 - 사진보이기 (0) | 2022.03.19 |
---|---|
#1 전자액자 프로젝트 - 시작 / 슬라이드 쇼 (0) | 2022.03.18 |
UART 사용하기 (0) | 2022.03.13 |
전자액자, 파이썬, 라즈베리파이 (0) | 2022.02.12 |
[Python / 프로그램 자동화] 외부 실행파일 실행시키고 화면 최대화하기 (0) | 2022.01.10 |