디컴파일, 재구현, 재컴파일은 어떻게 다를까
작성: DecompHub · 수정일 · 한국어
의도한 결과물을 기준으로 선택하세요. 복원 소스, 호환 대체 프로그램, 네이티브 실행 파일은 모두 유용하지만 같은 질문에 답하지는 않습니다. 같은 게임 이름이라도 진행 지표를 서로 바꿔 읽을 수 없습니다.
매칭 디컴파일
특정 원본 빌드와 동일한 기계어를 생성하는 소스가 목표입니다. 컴파일러, 설정, 대상 리비전이 중요합니다. decomp.me FAQ는 함수 비교를 설명합니다. 성공한 scratch는 해당 비교의 근거이지 전체 프로그램의 완료율이 아닙니다.
원래 구조를 연구하거나 일치 코드를 작성하려는 경우에 맞습니다. 보고서가 바이트, 함수, 일부 모듈 중 무엇을 세는지 확인하세요.
재구현과 호환성
동일한 실행 파일을 요구하지 않고 동작이나 인터페이스를 재현합니다. 기능과 테스트로 평가하는 편이 적절합니다. ScummVM은 지원 게임의 실행 파일을 대체하면서 게임 데이터를 사용합니다. 지원 대상과 버전을 각각 확인해야 합니다.
실용적인 대체 프로그램이나 동작 개선이 목적일 때 적합합니다. 호환성 주장을 바이너리 일치율로 변환하지 마세요.
정적 재컴파일
기존 프로그램의 명령을 실행 전에 다른 환경용으로 변환합니다. N64Recomp는 N64 코드와 네이티브 실행 파일의 작업 흐름을 설명합니다. 완전한 이식에는 변환된 코드 주변의 통합 작업도 필요합니다.
수작업 소스 복원이 끝나기 전에 네이티브 실행이 가능할 수 있지만 원본 소스 설계가 자동으로 설명되지는 않습니다. 일반 도구가 모든 게임을 바로 지원한다고 가정하지 말고 대상 프로젝트의 요구 사항을 읽으세요.
디스어셈블리와 이식
디스어셈블리는 기계 명령을 어셈블리로 표현하며 C나 C++를 복원하지 않아도 분석에 유용합니다. 이식은 프로그램을 다른 플랫폼에 맞추는 작업으로 앞선 여러 접근을 기반으로 할 수 있습니다. 서로 다른 단계를 설명하므로 태그가 겹칠 수 있습니다.
목록의 작업 유형에서 출발해 원본 목표를 확인하세요. 진행률 가이드는 차이를 유지하며 수치를 비교하는 방법을 설명합니다.