IT하는 참새
파이썬 리버싱 본문
우리가 알고있는 Python언어는 C로 만들어진 것을 의미한다
정확히 말하면 CPython
즉 일반적으로 쓰이는 파이썬언어는
바이트코드로 컴파일 -> 인터프리터에 의해 프로그램 실행
파이썬을 리버싱하는데에 있어 자주보이는 형식은
바이트코드를 해석하는 것이라고 생각함
뭐 예를들어 .pyc확장자의 바이트코드 파일을 해석하여
무슨 코드인지만 알아내면 리버싱을 성공한 것이 아닐까 한다
(역공학이니까 바이트코드를 원시코드로 바꾸기만 하면 리버싱임)
그럼 .pyc파일을 어떻게 역으로 원시코드로 바꿀까?
(정확히말해 어떻게 디컴파일을 할까?)
그전에 .pyc파일은 무엇일까
간단히말하면 .pyc파일은 파이썬 모듈로 인해 생겨나는 파일이다
일반적으로 파이썬코딩시 import 파일명 이 짓때문에 생겨나는 파일이다
예를들어 gugu.py를 import gugu 하면
~~gugu~~.pyc파일이 생겨난다
다음에 import할 때 더 효율적으로 빠르게 하려고 파이썬에서 만드는 파일이라고 한다
그럼 이 pyc파일을 그냥 열어보면 어떻게 보일까
이따구로 생겼다
이거보고 바로해석가능하면 사람이 아니다
그럼 이 바이트코드를 원시코드로 바꾸려면 어떻게할까
다행히 파이썬에서 추가프로그램을 제공해준다
이름: uncompyle6(버전은 다름)
설치법: pip이용
pip install uncompyle6
사용법:
uncompyle -o. *.pyc
이렇게하면
원시코드를 담고있는 .py파일이 생겨난다