
C++ python 바이트코드 디스어셈블러 및 디컴파일러
Python 바이트코드 디스어셈블러/디컴파일러
Decompyle++는 컴파일된 Python 바이트코드를 유효하고 가독성 있는 Python 소스 코드로 다시 변환하는 것을 목표로 합니다. 다른 프로젝트들이 다양한 성공을 거둔 반면, Decompyle++는 모든 Python 버전의 바이트코드를 지원하려는 점에서 독특합니다.
Decompyle++에는 바이트코드 디스어셈블러(pycdas)와 디컴파일러(pycdc)가 모두 포함되어 있습니다.
이름에서 알 수 있듯이, Decompyle++는 C++로 작성되었습니다. 기여하고 싶다면 GitHub에서 포크해 주세요: https://github.com/zrax/pycdc
CMake로 프로젝트 또는 메이크파일을 생성합니다 (자세한 내용은 CMake 문서 참조)
디버그 기능을 제어하기 위해 CMake에 다음 옵션을 전달할 수 있습니다:
| 옵션 | 설명 |
|---|---|
-DCMAKE_BUILD_TYPE=Debug | 디버깅 심볼 생성 |
-DENABLE_BLOCK_DEBUG=ON | 블록 디버깅 출력 활성화 |
-DENABLE_STACK_DEBUG=ON | 스택 디버깅 출력 활성화 |
생성된 프로젝트 또는 메이크파일을 빌드합니다
make를 실행합니다make check JOBS=4를 실행합니다 (선택적으로
FILTER=xxxx를 사용하여 특정 테스트만 실행 가능)pycdas 실행 (PYC 디스어셈블러):
./pycdas [PYC 파일 경로]
바이트코드 디스어셈블리가 stdout에 출력됩니다.
pycdc 실행 (PYC 디컴파일러):
./pycdc [PYC 파일 경로]
디컴파일된 Python 소스가 stdout에 출력됩니다.
오류는 stderr에 출력됩니다.
마샬된 코드 객체:
두 도구 모두 marshal.dumps(compile(...))의 출력인 Python 마샬된 코드 객체를 지원합니다.
이 기능을 사용하려면 명령줄에 -c -v <버전>을 지정하세요. 객체 자체에 버전 메타데이터가 포함되어 있지 않으므로 버전을 반드시 지정해야 합니다.
Decompyle++는 Michael Hansen과 Darryl Pogue의 작업입니다.
추가 기여자:
GNU General Public License, 버전 3의 조건에 따라 배포됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.