TL;DR
- Windows 3.0 바이너리를 분석해 운영체제 간 이식이 가능한 Rust 프로그램으로 재작성하고, 과거 이미지 편집기의 동작을 복원함.
- Claude Code가 원본 프로그램을 DOSBox에서 실행하며 결과를 비교해 메뉴, 대화상자, 이미지 처리 필터를 점진적으로 구현함.
- 약 1시간과 API 호출 비용 60달러가 들었으며, 원본 프로그램과 비교해 결과를 수렴시킴.
- 프로그램을 WebAssembly(WASM)로 변환해 웹페이지에서 실행하고, 코드와 실행본을 GitHub와 웹에 공개함.
- 소프트웨어 기술의 복제가 쉬워지는 상황에서 기업의 판매 대상은 기술 자체보다 편의성, 접근성, 관계의 역사일 것이라는 전망임.
죽은 프로그램 되살리기
- 현대 코딩 보조 도구의 바이너리 역분석 성능을 알아보기 위해 1990년대 초 개발한 이미지 편집 프로그램을 찾아 복원 작업을 시작함.
- 과학 분야에서 1980년대 초부터 코드를 작성했고, 1990년대 초에는 3D 모델러와 이미지 편집기를 상용 소프트웨어로 개발함.
- 이민 당시 이력서 역할을 했던 마지막 이미지 편집기의 압축 파일을 구글 검색으로 찾아냄.
- Claude Code를 파일이 있는 디렉터리에서 실행하고, 바이너리를 분석해 운영체제 간 이식이 가능한 Rust 코드로 다시 작성하도록 요청함.
- Rust는 여러 종류의 프로그래밍 오류와 논리 오류를 줄이며, 인공지능(AI) 시대의 어셈블러처럼 빠르게 자리 잡고 있다는 관점에서 선택한 언어임.
원본과 비교하며 복원
- 약 1시간과 API 호출 비용 60달러가 든 뒤 프로그램이 실행되기 시작했으며, 메뉴와 대화상자가 원본과 비슷하게 나타남.
- Claude는 DOSBox에서 원본 프로그램을 실행하고 재작성한 결과와 계속 비교하며 구현을 다듬음.
- 이미지 처리 필터가 추가되면서 프로그램의 동작이 점차 원본에 가까워짐.
- 이미지 속 인물은 당시 결혼을 앞둔 아내이며, 소프트웨어 배포본에 사진을 넣고 나중에는 책 표지에도 싣는 방식으로 애정을 표현함.
- 원본 프로그램의 독특한 조작 방식도 다시 수정하고자 함. 선택과 작업을 완전히 직교하는 개념으로 다뤄 펜을 하나의 선택 도구로 보고 모든 작업에 사용할 수 있게 했지만, 현대 이미지 편집 도구에 익숙한 사람에게는 직관적이지 않은 설계임.
웹에서 실행하고 코드 공개
- 프로그램을 WebAssembly(WASM)로 변환해 웹페이지에서 실행할 수 있는지 확인했고, 실제 실행본을 공개함: Pictureman 실행하기.
- 소스 코드는 GitHub 저장소에서 확인할 수 있음.
소프트웨어의 가치 변화
- Facebook에 복원 이야기를 올린 뒤 30분 안에 친구에게서 연락을 받음. 친구는 자신의 작업물이 이제 쉽게 도용될 수 있는지 우려함.
- 바이너리에 접근할 수 없는 경우에도 제품의 표면적 동작을 명세로 만들고 AI 보조 도구로 작동하는 프로그램을 구현하는 방식으로 제품을 복제할 수 있다는 견해임.
- 제품에 깊은 과학적 기반이 있다면 복제가 어렵고, 현재 최첨단 모델의 역량으로도 아직 불가능할 수 있음.
- 전반적으로 소프트웨어 기술은 여러 측면에서 점점 더 평범해지고 있으며, 기업은 기술 자체가 아니라 편의성, 접근성, 관계의 역사를 판매하게 될 것이라는 전망임.
덧붙임
- 이번 작업은 저녁 시간에 진행한 사이드 프로젝트임.
- 주요 업무는 Yovico에서 에이전트형 가상 관리팀을 만드는 일임.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요