Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
macsurf — 클래식 Mac OS 9 PowerPC용 현대적 웹 브라우저. 실제 CSS3, ES5 JavaScript, 네이티브 HTTPS. Carbon API에서 CodeWarrior로 제작됨. | Kitploit
도구/GitHubGitHub/mplsllc/macsurf
Encryption/Decryption ToolsWeb SecurityCryptography
GitHubmplsllc/macsurf

macsurf

클래식 Mac OS 9 PowerPC용 현대적 웹 브라우저. 실제 CSS3, ES5 JavaScript, 네이티브 HTTPS. Carbon API에서 CodeWarrior로 제작됨.

저장소 보기웹사이트
266715일 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

MacSurf

25년 된 Mac에서 만나는 현대 웹.

MacSurf는 Classic Mac OS 9 PowerPC용 웹 브라우저입니다. CSS3, ES5 JavaScript, 알파 채널 PNG — G3 iMac에서 실행됩니다.

MacSurf는 전업(풀타임) 프로젝트입니다. 이 프로젝트가 당신의 올드 Mac을 다시 웹에 연결해 주었다면, 모든 도움이 개발을 계속하는 데 큰 힘이 됩니다. Patreon에서 개발 로그와 함께 진행 상황을 팔로우해 주세요.

Ko-Fi에서 후원해 주세요!

후원자

MacSurf는 후원자들 덕분에 살아 있습니다 — 감사합니다:

Patreon
Shlooom

Ko-Fi
kilgeist

Mac OS 9, TLS를 만나다 — 네이티브, 프록시 불필요.

소개 영상

영상 보기

[!NOTE] 초기 알파 버전 — 233MHz G3에서 네이티브로 실행·렌더링·TLS 1.3 통신이 가능하지만, 아직 대부분의 현대 웹사이트는 작동하지 않습니다. 직접 제작한 페이지, 레트로 스타일 사이트, PowerPC에서 ES5 JavaScript가 돌아가는 묘한 짜릿함을 기대하세요. 임의의 현대 사이트에서의 부드러운 브라우징, 동영상, React 계열을 기대하지 마세요.

Power Mac G3 또는 G4가 주변에 있다면 올려서 무엇이 깨지는지 확인해 보세요 — 버그 리포트와 실제 하드웨어 스크린샷이 바로 이 프로젝트가 필요로 하는 것입니다. 현재 작업 목록은 docs/status.md를 참조하세요.


왜 만들었나

웹은 20년 전에 이미 Classic Mac OS를 앞질렀습니다. 현대 HTTPS는 2016년경에 그걸 완전히 끝장냈습니다. 오늘 옷장에서 G3나 G4를 꺼내면 살아있는 웹사이트 하나에 겨우 접속할 수 있을까 말까입니다.

MacSurf는 그 문제를 기기 자체에서 해결하려는 시도입니다 — 스크린샷 프록시도, 원격 터미널 트릭도 없습니다. 플랫폼에 이미 있던 도구들로 만든 네이티브 브라우저: CodeWarrior, Carbon, QuickDraw, Open Transport. 실제 CSS3 레이아웃과 실제 JavaScript가 1999년 iMac의 64MB 메모리 한계 안에서 실행됩니다. 2026년 5월 말부터 macTLS를 통해 현대 웹과 직접 TLS 1.2로 통신합니다. macTLS는 BearSSL 기반 스택으로, 브라우저 바이너리 안에 Mozilla CA 번들의 121개 신뢰 앵커와 함께 내장되어 있습니다. 더 이상 프록시가 필요 없습니다.

우리가 아는 한, 이것은 Classic Mac OS로의 최초의 진지한 NetSurf 포트이며, 네이티브 CSS Grid, CSS 사용자 정의 속성(custom properties), ES5 JavaScript를 탑재한 Mac OS 9용 최초의 브라우저입니다.


발전 과정

각 스크린샷은 Mac OS 9를 실행하는 Power Macintosh G3에서 캡처한 실제 이정표입니다. 수정 번호 주석은 이 저장소의 커밋 기록과 일치합니다.


구성 요소


지금 작동하는 것


다운로드

최신 버전은 MacSurf 1.68 — "macQJS" (2026-07-07)입니다: JavaScript 엔진이 교체되었습니다 — Duktape(ES5) → macQJS(QuickJS, ES2023), 이제 현대 JavaScript가 Mac OS 9에서 네이티브로 실행됩니다. 그 외에도 작동하는 텍스트 입력(캐럿 / 선택 / Tab), 유지되는 로그인, 북마크 메뉴 + 다운로드 관리자, 분할 스크롤바 렌더링 수정, 다운로드 가능한 웹 폰트 아이콘 글리프, 그리고 대대적인 성능 개선(거의 즉각적인 시작, 이미지/폰트 디스크 캐시, 뷰포트 지연(lazy) 이미지 로딩)이 포함됩니다. 이 주기를 이끈 커뮤니티 **68kmla.org**를 기리기 위해 이름을 붙였습니다. 전체 노트: release-notes/MacSurf-1.68.md.

이전 버전 MacSurf v1.4 — Open House (2026-06-01): JavaScript 마라톤 종료. 23개의 JS 브리지 이슈가 한 번의 릴리스에서 열림(open)에서 닫힘(closed)으로 전환되었습니다 — setTimeout / setInterval / requestAnimationFrame, window.location, window.history, URL, URLSearchParams, classList, style, Event 생성자, MutationObserver, DOMParser, FormData, localStorage, , / 이벤트, 그리고 / 토글까지. 새로운 프로브 스위트는 G3 iMac에서 를 기록했습니다. 진단 페이지도 살아 있습니다: , , , 모두 실제 카운터를 렌더링합니다. View Source는 인라인으로 렌더링되고, 페이지 내 찾기(Find-in-page)는 실제 Carbon 대화상자를 엽니다. 이전 버전 는 멀티커브 TLS 1.3을 탑재했고, 는 Classic Mac OS 최초의 네이티브 TLS 1.3이었으며, 는 엔트로피 구멍을 막았고, 는 크롬 재설계 릴리스였으며, 는 콜드 로드 속도 개선(mactrove.com 30+s → ~2-3s)이었습니다. 첫 번째 번호가 붙은 알파는 입니다.

  • MacSurf.sit — 실행 준비가 된 v1.4 바이너리입니다. CarbonLib 1.5+가 있는 Mac OS 9.1+에서 압축을 풀고 실행하세요.
  • 소스에서 빌드: 저장소를 클론한 다음, Mac 쪽에서 CodeWarrior 8로 browser/netsurf/frontends/macos9/MacSurf.mcp를 열고 Build를 선택하세요. v1.3.1 워크스페이스에서 v1.4를 빌드하는 경우 프로젝트에 하나의 새 소스 파일을 추가해야 합니다: browser/netsurf/desktop/search.c (새 Find 대화상자용 browser_window_search를 제공하며 content/textsearch.c는 이미 포함되어 있습니다). macTLS는 v1.3.1과 동일합니다. v1.2 워크스페이스에서 v1.3을 빌드하는 경우 TLS 1.3용 macTLS 파일 4개를 추가해야 합니다: bearssl/src/ec/ec_c25519_m15.c, os9/ostls_tls13_keysched.c, os9/ostls_tls13_record.c, os9/ostls_tls13_handshake.c. 1.0 워크스페이스에서 v1.2를 빌드하는 경우 desktop/download.c가 필요합니다. 가장 초기 릴리스에는 CW8 프로젝트가 미리 연결된 BuildPack.sit 스냅샷이 포함되어 있지만, 현재 빌드는 새 클론에서 바로 작동합니다.

컨텍스트가 필요하다면 이전 알파 노트: docs/release-notes/MacSurf-0.1a1.md.


시작하기

브라우저 빌드

MacSurf는 CodeWarrior 8 Pro(8.3 업데이트)로 Mac OS 9에서 빌드됩니다. 소스는 Retro68 PowerPC GCC에 대해 크로스 컴파일이 깨끗하게 되며, 이를 통해 Linux 쪽에서 빠른 구문 검사를 수행합니다.

  • Mac 쪽 빌드 가이드
  • Linux 크로스 개발 워크플로우
도구 다운로드
Mac OS 9에서의 JavaScript Hello World
v0.2: Mac OS 9에서의 JavaScript
최초의 실제 JS 사용 페이지. Duktape 2.7.0 ES5가 실시간으로 평가: Math.sqrt, JSON, ES5 배열 메서드.
CSS transform rotate, scale, translate
fixes73: CSS 변형(transforms)
네이티브 transform: rotate() / scale() / translate() 지원. 정수 Q15 sin/cos 테이블, FPU 의존성 없음, QuickDraw에서 임의 각도 렌더링.
CSS 방사형 그라데이션
fixes74d: 방사형 그라데이션
동심원 PaintOval 스택을 통한 2-스톱 방사형 그라데이션. 디코딩 시 16레벨 스미어. 형태 + 위치 키워드 파싱.
CSS 애니메이션: 흔들기, 스윙, 느린 회전
fixes77: CSS 애니메이션
fixes73 회전 위에 구축된 선형 핑퐁 애니메이션 플레이어. 흔들기, 스윙, 0°→359° 전체 회전.
Mac OS 9에서 투명도를 가진 PNG 이미지
fixes79b: PNG 투명도
QuickTime Graphics Importer가 NetSurf 이미지 콘텐츠 핸들러에 공급. PNG + GIF + BMP, 모두 실제 투명도 지원.
CSS word-break 및 overflow-wrap
fixes136: word-break / overflow-wrap
word-break: break-all, keep-all, white-space: nowrap, 레거시 word-wrap: break-word. URL 스타일의 공격적 줄바꿈.
CSS z-index 쌓임 맥락
fixes147: 쌓임 맥락(stacking contexts)
CSS 2.1 페인팅 순서. opacity, 변형, 명시적 z-index 모두 새로운 쌓임 맥락을 생성하며 실제 하드웨어에서 올바르게 페인팅됩니다.
CSS Grid 컬럼 배치
fixes151: CSS Grid 컬럼 배치
grid-column: span N, 1 / -1 전체 행 히어로, 위치 기반 start / end, span + 자동 줄바꿈. OS 9에서의 실제 Grid 레이아웃.
MacSurf 1.0이 home.macsurf.org를 렌더링
v1.0: 쇼케이스
새로운 툴벨트 도구 모음, 선명한 URL 필드, 매트 처리된 아이콘으로 OS 9.2.2를 실행하는 G3 iMac에서 home.macsurf.org를 렌더링합니다. macTLS를 통한 네이티브 HTTPS는 오리진에 직접 연결되며, 서버 렌더링 포털, 엔드투엔드 트루컬러 이미지를 제공합니다.
구성 요소언어용도
browser/C (C89, CW8)NetSurf 포크에 macos9 프런트엔드. UI는 Carbon, 그리기는 QuickDraw, 네트워킹은 Open Transport, JS는 Duktape.
proxy/Go (stdlib only)기존 TLS 제거 HTTP 프록시. macTLS가 네이티브로 동작하면서 대부분 은퇴했지만, 폴백 또는 CarbonLib가 없는 머신에서 여전히 유용합니다. Mac은 일반 HTTP를 보내고 프록시는 HTTPS로 가져온 뒤 일반 HTTP로 반환합니다.
macTLS
sibling repo
C (CW8)OS 9용 네이티브 TLS 1.2 라이브러리 — Mac에서 직접 현대 HTTPS에 연결, 프록시 불필요. 내부는 BearSSL, 121개 신뢰 앵커 내장.

렌더링 파이프라인

  • Full NetSurf fetch → parse → cascade → layout → plot
  • var() 해석을 지원하는 네이티브 libcss
  • 오프스크린 GWorld 백버퍼를 사용하는 QuickDraw 플로터

CSS — 레이아웃에 사용되는 약 150개 속성

  • 사용자 정의 속성과 var()
  • Flex: justify-content, align-content, order
  • Grid V1 plus grid-template-columns/rows, gap
  • border-radius, box-shadow, opacity
  • 선형 및 방사형 그라데이션
  • text-shadow, text-overflow: ellipsis
  • transform (rotate, translate, scale)
  • z-index 쌓임 맥락(CSS 2.1 페인팅 순서)
  • CSS 카운터, 뷰포트 단위, aspect-ratio
  • sans, serif, monospace용 font-family 별칭

전체 CSS 상태 →

JavaScript — Duktape 2.7.0, 전체 ES5

  • 클로저, 프로토타입, 정규식, JSON
  • 프로미스(폴리필), 재귀, 망델브로
  • 233MHz G3에서 ackermann(3,7)에 약 6초

이미지 — 다섯 가지 형식 모두

  • 실제 픽셀별 알파를 지원하는 PNG(lodepng + CopyMask)
  • 팔레트 투명도를 지원하는 GIF
  • JPEG, BMP, TIFF

네트워킹

  • Open Transport TCP, 일반 비-InContext 호출
  • HTTP/1.1 + chunked + keep-alive + 3xx follow
  • 연결 풀링, 15초 무진행 타임아웃
  • macTLS(기본) 또는 Go 프록시(폴백)를 통한 HTTPS

브라우저 UI(chrome)

  • 주소 표시줄, 뒤로 / 앞으로 / 새로고침 / 홈
  • 상태 표시줄, 페이지 정보, 다중 창
  • 부드러운 스크롤바, 키보드 스크롤
fetch
load
DOMContentLoaded
<details>
<summary>
JS 19/19 통과, 0 실패
about:cache
about:memory
about:config
about:perf
v1.3.1 "Forward, refined"
v1.3 "Forward"
v1.2 "Sealed"
v1.0 "Showcase"
v0.6.2 "Speed-Run"
v0.1a1