EXE 실행 파일의 원본 소스코드를 복원하는 방법에 대해 알려드리고자 합니다. EXE 실행 파일은 일반적으로 실행 가능한 프로그램이며, 보통 개발자가 작성한 소스코드를 컴파일하여 만들어집니다. 이러한 실행 파일에서 원본 소스코드를 복원하는 것은 종종 필요한 작업 중 하나입니다. 복원된 소스코드를 통해 프로그램을 수정, 분석하거나 보안 취약점을 탐지할 수 있습니다.
이유야 뭐건간에
EXE -> 소스코드가 필요하시죠?
소스코드를 얻기 위한 여정의 시작은 정적분석부터입니다.
우선은 어떤 프로그래밍 언어로 개발되어 있는지 분석부터 해야합니다.
첫번째 난관은 아.. 이게 어떤 프로그래밍 언어로 개발된건지 찾는것부터 문제일겁니다 ㅠㅠ...
DIE (Detect It Easy) 프로그램으로 정적분석합시다
why? 어떤 프로그래밍 언어로 개발되었는지 확인해야함 ㅇㅇ
아래는 제가 DIE를 사용해서 제가 판매중인 프로그램을 분석해본 결과입니다. (눈 크게 떠야함)
PE64 바로 아래에 보시면 패커 : Pyinstaller 소스 코드를 패키징한 프로그램 정보가 나옵니다
바탕화면에 있는 카카오톡(PC)도 넣어보고, 곰캠도 넣어보고, PPT도 넣어봤습니다
VisualC/C++ 어떤 버전을 사용하고 있는지, 링커 버전은 뭔지에 대한 정보가 싹 나오는군요
Detect It Easy 사랑해
아무도 궁금해하지 않을 DIE 작동 방법은 PE 헤더 내용(IAT), 어셈블리 패턴을 분석해서 패커, 컴파일러, 링커, 프로텍터의 내용을 추론한다고합니다
사실 어떤 실행파일(Exe)건 간에 소스코드로 복원 시킬 수 있습니다
Java, C++, C, Ruby 언어 관계없이 복원되긴 함. 근데 어떤 언어로 개발되었는지에 따라 복원기술이 다름
EXE파일은 리버스 엔지니어링, 디코딩, 디컴파일이라는 기법들을 통해서 내부 로직들을 들여다볼 수 있습니다. 대신 난독화 기술, 코드 보안 기술이 어떻게 적용되어 있는지에 따라서 그 난이도가 상이해집니다
사실상 일반적인 개발자라면(보안 전공 아닌) 이런 기계어 수준으로 분석해도 로직 알아내는건 어려움
Pyinstaller로 패키징 된 프로그램이면??
제가 도움을 드릴 수 있을것 같네요
님들 소스코드가 필요한 그 프로그램이 python + pyinstaller로 exe 파일 패키징된 프로그램이라면 소스코드를 복원할 수 있는 확률이 높습니다. python version 3.9, 3.10 버전은 특히 디컴파일이 어렵기로 유명한데 (디컴파일 라이브러리 개발자가 후원한 사람 많으면 개발 착수하겠다고 했지만 후원금이 충분히 모이지 않았다고 한다 ..), 3.10 이하 버전의 소스코드를 복원하는 방법도 함께 알려드리겠습니다.
강의에서 함께 분해해볼 exe 파일은 제가 99,000원에 판매중인 마케팅 자동화 프로그램의 소스코드를 열어보도록 하겠습니다.
얘 열어볼거임
자세한 내용은 안내 영상에서 한번 더 확인하시면 좋겠습니다
감사합니다 : )
'C' 카테고리의 다른 글
PySide6 GUI 개발 강의(판매 가능한 PyQt5 EXE 파일 만들기) (0) | 2023.06.05 |
---|---|
PyQt 판매 가능한 프로그램 개발하는 방법 (0) | 2023.06.04 |
PySide UI 파일을 .py 파일로 변환하여 로드하는 방법 (0) | 2023.06.03 |
파이썬 실행파일 만들기: 코드 1줄로 exe 파일 만들기(feat. PyInstaller) (0) | 2023.06.03 |