피드로 돌아가기
GeekNewsInfrastructure
원문 읽기
DOS 게임 F-15 Strike Eagle II 리버싱 프로젝트, DOS 테스트 파일럿 모집
DOS 바이너리 전체를 C 소스로 재구성한 Bug-for-Bug 리버싱
AI 요약
Context
1989년 출시된 F-15 Strike Eagle II의 바이너리 형태 유지를 통한 기능 수정 및 현대적 포팅의 불가능성 해결 필요. 하드코딩된 데이터 오프셋과 어셈블리 기반 드라이버 구조로 인한 분석 병목 지점 발생.
Technical Solution
- 바이너리를 어셈블리로 역공학한 후 이를 다시 컴파일된 C 코드와 동일하게 일치시키는 단계적 재구성 수행
- 모든 실행 파일(egame, end 포함)의 코드와 데이터를 C 언어로 이전하여 구조적 가독성 확보
- 어셈블리 전용 특수 코드를 기능적으로 동일한 C 대체 구현물로 설계하여 플랫폼 의존성 제거
- Opcode 일치 확인 도구를 활용해 원본의 논리 구조를 보존하는 Bug-for-Bug 재구성 전략 채택
- 심볼이 없는 상태에서 AI를 활용해 어셈블리 제어 흐름 및 루틴의 의미론적 이름 부여
- 데이터 레이아웃 분석 및 계측 코드를 통한 런타임 동작 검증 체계 구축
실천 포인트
1. 레거시 바이너리 분석 시 AI를 활용한 제어 흐름 파악 및 심볼 복원 검토
2. 단순 에뮬레이션을 넘어 유지보수성을 위한 소스 코드 수준의 재구성과 포팅 전략 수립
3. 하위 호환성 검증을 위해 원본의 버그까지 재현하는 Bug-for-Bug 정밀도 설정