Hacker News 의견들
  • 리눅스 실행 파일을 추출했는데, readelfobjdump가 제대로 읽지 못해서 놀랐음
    조사해보니 PT_DYNAMIC 헤더의 비사용 필드에 동적 링커 이름을 억지로 넣어 공간을 절약한 구조였음

    1. 이건 수동으로 한 건지, 아니면 이런 식으로 처리하는 툴이 있는지 궁금함
    2. 이런 비정상적인 바이너리를 분석할 수 있는 툴이 있는지도 알고 싶음
    • ndisasm이나 헥스 에디터로 읽을 수 있음
      하지만 이런 포맷을 일부러 망가뜨리는 건 무의미한 절약이라 생각함
      안티바이러스나 DEP 같은 보안 기능과 충돌할 수도 있어서 이런 실행 파일은 건드리고 싶지 않음
    • “choke”가 무슨 의미인지 모르겠음, 내 환경에서는 두 툴 모두 정상 작동했음
  • 원본 젤다(Zelda) 게임의 파일 크기가 너무 작아서 놀라움
    그렇게 적은 코드와 데이터로 얼마나 큰 감동과 몰입감을 만들어냈는지 경이로움
    The Legend of Zelda (Wikipedia)

    • 진짜 마법 같음. Commodore 64Eindeloos라는 게임도 64KB 안에 거대한 맵을 담았음
      40년 만에 맵을 추출했는데 PNG로만 800KB가 넘음
      게임 맵 보기
    • Zelda 1은 128KB였고, 압축도 없었음. 속편은 그 두 배 정도였음
    • 던전과 동굴이 사실 하나의 직사각형 맵 안에 모두 들어 있었음
      디자이너들이 공간 제약 안에서 퍼즐처럼 구성했음
      Zelda 맵 구조 참고
  • 내 테스트 결과

    • 브라우저: 확장자를 .html로 바꾸면 실행됨
    • 리눅스: lzma 명령이 없다는 오류가 나서 xz 패키지를 설치하니 작동함
    • 윈도우: .com이나 .exe로 실행 시 오류(0xc0000005)가 났는데, DEP 설정을 해제하니 실행됨
    • Windows 11에서도 정상 작동함
    • 단순히 chmod +x snake.com 후 실행하면 Mono가 시도되며 실패함
      대신 bash snake.com으로 실행하면 잘 됨. Debian 13 기준임
  • 흥미로운 점은 이 파일이 세 개의 실행 파일이 하나로 합쳐진 형태라는 것임
    그래서 각 플랫폼에서 완전히 다른 프로그램을 담을 수도 있음

  • kkrieger라는 96KB짜리 FPS 게임이 떠오름
    당시 그래픽 수준이 놀라웠음
    kkrieger (archive)

    • 관련 토론: 2017, 2023, 2024
    • 지금도 최신 PC에서 실행 가능함. 직접 다운로드해서 돌려봄
    • 최근 Metroid Prime 4를 하면서 이런 아이디어로 현대 게임을 만든다면 어떨까 생각했음
  • 맥에서 브라우저 외에 실행할 방법이 있는지 궁금함
    cannot execute binary file 오류가 발생함

  • 이런 메커니즘을 발전시켜 진짜 범용 실행 파일(universal binary) 을 만들 수 있을지 궁금함
    예를 들어 Haxe로 코드를 작성해 C++로 컴파일하면 Win32와 Linux용을 만들고,
    JavaScript로 변환해 HTML에서도 실행 가능하게 한 뒤,
    세 결과물을 하나의 파일로 합치는 식으로 구현할 수 있을 것 같음

  • 하나의 파일로 어디서든 실행 가능한 단일 실행 앱 개념이 마음에 듦
    나도 서버리스 플랫폼을 만들며 이런 방향을 연구 중임
    단 하나의 .html 파일로 데이터 기반 앱을 만들고, web-components를 원격에서 불러오는 구조임
    file:// 프로토콜로 HTML을 직접 여는 기능이 강력한데, 종종 간과됨

    • 원문 작성자는 실제로 세 번 구현했음 — WinAPI 기반 C, X11 기반 C, 그리고 HTML5 Canvas 기반 JS 버전
      즉, 단순히 브라우저 인스턴스를 띄운 게 아니라 완전한 네이티브 앱 두 개를 만든 셈임
    • 아쉽게도 HTTPS가 아닌 환경에서는 브라우저 기능 제약이 많음
    • 단일 HTML 앱 개발 방식을 더 알고 싶음. 혹시 공개된 예제가 있는지 궁금함
  • Polyglot 파일이 이렇게 늦게 등장한 게 신기함
    기술적으로는 10~20년 전에도 가능했을 것 같음

    • 최초의 polyglot 파일이 언제 등장했는지 궁금함
      EICAR.COM이 텍스트와 실행 파일을 겸한 초창기 예시로 떠오름
  • js13kGames 같은 초소형 웹게임 대회가 생각남