안녕하세요오 호박감자입니다!
지금 문제를 풀고있는데, 이 과정을 글로 써두면 유용할 거 같아 그동안 미뤄뒀던 두번째 글을 써보려 합니다 ㅎㅎ
지금 풀고 있는 문제는 Same or different라는 문제인데, 어디 대회였나 CTF였나 기억이 안나네요..
동아리 선배를 통해 과제로 받은 문제라 문제 출처는 까먹었어요 ㅎㅎ
쨋든 이 문제는 pyc 파일을 디컴파일 하는게 주요해서, 이번 블로그의 내용은 pyc 파일을 디컴파일 하기까지의 과정을 담을 것 같습니다. 그럼 시작하겠습니다.
pyc 파일을 디컴파일 하기 위해서 제가 선택한 방법은 uncompyle6를 사용하는 것이었습니다.
uncompyle6를 설치하기 위한 명령어는 다음과 같습니다.
pip install uncompyle6
이렇게 설치하고 ( uncompyle6 파일이름.pyc )를 하면 되지만, 저는 에러가 났습니다.
checker.pyc는 제가 디컴파일 하고자 하는 pyc파일 이름입니다.
제 컴퓨터에는 현재 3.9였나? 하는 파이썬이 설치되어 있어서 uncompyle6를 사용할 수 없었습니다.
그래서 선택한 방법은 wsl을 통한 리눅스를 이용하는 방법이었습니다.
wsl은 구체적으로는 잘 모르지만은.. 윈도우를 사용하고 있을때 wsl을 사용하면, 리눅스의 CLI를 가상머신 없이 윈도우에서 사용할 수 있게 해준답니다.
wsl을 설치하기 위한 방법은 아래의 두 사이트를 참고했습니다.
blog.naver.com/goldrushing/222175975517
blog.naver.com/skyshin0304/222079393598
위 두 사이트에서 자세하고 친절하게 알려주고 있으니 참고하세요.
아! 사실 뭐 2.6~3.8 버전의 파이썬을 설치하면 되겠지만, 굳이 wsl을 사용하는 이유는 이미 3.9 버전의 파이썬이 있는데 윈도우에 또 설치하고 싶진 않아서 입니다. ㅎㅎ
자 wsl을 설치 했으니 이제 디컴파일을 해야겠죠?
디컴파일을 하려면 uncompyle6 를 설치해야 합니다.
uncompyle6 설치 명령은 ( pip install uncompyle6 )인데, 이걸 하기 전에 먼저 pip를 설치해야 합니다.
그런데, pip도 파이썬의 버전에 따라 나뉜대요.
파이썬이 2.x 이면 pip이고
파이썬이 3.x 이면 pip3 입니다.
우분투에 이미 파이썬이 설치되어 있을거예요. 확인하고 싶으면 이렇게 쳐보면 됩니다.
우분투에서 python3라구 쳐보면 요렇게 버전이 나옵니다.
저는 3.8.5버전이 설치되어 있네요. uncompyle6를 사용할 수 있는 버전입니다.
pip를 설치하기 위해서도 여러 명령어를 해 봤는데 자꾸 안되더라구요. 하지만 이걸 알려줬어요.
이걸 쳐보니까 pip3가 설치되더군요.
혹시 파이썬 버전이 2.x여서 pip3가 아닌 pip를 설치하셔야 하는 분들은
sudo apt install python-pip로 하시면 되지 않을까.. 싶습니다.
그리고 이제 pip3 명령어를 이용해 uncompyle6를 설치해주시면 됩니다.
pip3 install uncompyle6
설치가 됐지만 노란 글씨로 경고가 떴고, ( uncompyle6 파일이름.pyc ) 를 해봤지만 uncompyle6 명령을 찾을 수 없대요.
저기 노란글씨로 써있는 주소 있죠? /home/.../.local/bin 이렇게 써있는거. 저 주소에 uncompyle6 명령이 있으니 PATH(환경변수)를 설정해주라는 것 같아요.
PATH 설정하는 법은 제 블로그 첫 글에 상세히 적어놓았으니 참고하세요.
( 참고로 /home/.../.local/bin 이 주소의 home 폴더위치는 \\wsl$\Ubuntu\home 입니다. )
PATH 설정한 뒤 재부팅 하고 나서, uncompyle6 파일이름.pyc를 하니 성공했습니다.
그럼 다들 화이팅하시구, 혹시 궁금한 점, 잘못된 점 있다면 댓글달아주세요. (피드백 환영합니다 ;-)
그리고 도움이 되셨다면 댓글이나 공감 눌러주세요. 제 글이 누군가에게 도움이 되는지 궁금합니다.
부족한 글 읽어주셔서 감사합니다. 오늘도 좋은 하루 되세요!
이만 호박감자였습니다.
'포렌식' 카테고리의 다른 글
path 설정하는 법(환경변수 설정) (0) | 2021.01.05 |
---|