Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
macsurf — Современный веб-браузер для Classic Mac OS 9 PowerPC. Настоящий CSS3, ES5 JavaScript, нативный HTTPS. Создан с помощью CodeWarrior на Carbon API. | Kitploit
Инструменты/GitHubGitHub/mplsllc/macsurf
Инструменты шифрования/дешифрованияВеб-безопасностьКриптография
GitHubmplsllc/macsurf

macsurf

Современный веб-браузер для Classic Mac OS 9 PowerPC. Настоящий CSS3, ES5 JavaScript, нативный HTTPS. Создан с помощью CodeWarrior на Carbon API.

РепозиторийСайт
266716 дней назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

MacSurf

Современный веб на 25-летнем Mac.

MacSurf — это веб-браузер для Classic Mac OS 9 PowerPC. CSS3, JavaScript ES5 и PNG с альфа-каналом — и всё это работает на G3 iMac.

MacSurf — это проект на полную ставку. Если он вернул ваш старый Mac в веб, каждый доллар помогает продолжать разработку. Следите за прогрессом также на Patreon, где публикуются dev-логи.

Поддержите меня на Ko-Fi!

Сторонники

MacSurf жив благодаря своим сторонникам — спасибо вам:

Patreon
Shlooom

Ko-Fi
kilgeist

Mac OS 9, знакомься с TLS — нативно, без прокси.

Вступительное видео

Смотреть видео

[!NOTE] Ранняя альфа — она запускается, отрисовывает страницы и нативно говорит на TLS 1.3 на 233-МГц G3, но большая часть современного веба в ней пока не работает. Рассчитывайте на страницы, свёрстанные вручную, ретро-сайты и странный восторг от ES5 JavaScript на PowerPC. Не ждите плавного сёрфинга по произвольным современным сайтам, видео или чего-нибудь тяжёлого на React.

Если у вас завалялся Power Mac G3 или G4 — загрузите его и посмотрите, что сломается. Отчёты об ошибках и скриншоты с реального железа — именно то, что нужно этому проекту. Актуальный список нерешённых задач см. в docs/status.md.


Почему это существует

Веб перерос Classic Mac OS двадцать лет назад. Современный HTTPS окончательно добил его примерно в 2016 году. Достань сегодня G3 или G4 из чулана — и он едва ли откроет хотя бы один живой сайт.

MacSurf — попытка исправить это на самой машине: никакого скриншот-прокси, никаких трюков с удалённым терминалом. Нативный браузер, собранный инструментами, которые уже были на платформе: CodeWarrior, Carbon, QuickDraw, Open Transport. Настоящие CSS3-раскладки и настоящий JavaScript, работающие в пределах 64 МБ памяти iMac 1999 года. С конца мая 2026 года он напрямую общается с современным вебом по TLS 1.2 через macTLS — стек на основе BearSSL, который поставляется внутри бинарника браузера со 121 якорем доверия из набора Mozilla CA. Прокси больше не нужен.

Насколько нам известно, это первый серьёзный порт NetSurf на Classic Mac OS и первый браузер, когда-либо выпущенный для Mac OS 9 с нативными CSS Grid, кастомными свойствами CSS и JavaScript ES5.


Ход разработки

Каждый снимок ниже — реальная веха, снятая на Power Macintosh G3 под управлением Mac OS 9. Подписи с номерами фиксов соответствуют истории коммитов этого репозитория.


Компоненты


Что работает сегодня


Скачать

Последняя версия — MacSurf 1.68 — "macQJS" (2026-07-07): движок JavaScript был заменён — Duktape (ES5) → macQJS (QuickJS, ES2023), так что современный JavaScript работает нативно на Mac OS 9. Плюс работающий ввод текста (каретка / выделение / Tab), сохраняемые входы в аккаунты, меню закладок + менеджер загрузок, исправление отрисовки раздельной полосы прокрутки, загружаемые глифы иконок из веб-шрифтов и большой проход по производительности (почти мгновенный запуск, дисковый кэш изображений и шрифтов, ленивая загрузка изображений во viewport). Название дано в честь 68kmla.org, сообщества, которое двигало этот цикл. Полные заметки: release-notes/MacSurf-1.68.md.

Предыдущая версия — MacSurf v1.4 — Open House (2026-06-01): марафон по JavaScript завершён. 23 задачи JS-моста перешли из открытых в закрытые за один релиз — 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 с несколькими кривыми; был первым нативным TLS 1.3 на Classic Mac OS; закрыл дыру с энтропией; стал релизом с редизайном интерфейса; — ускорением холодной загрузки (mactrove.com 30+ с → ~2-3 с); первая нумерованная альфа — .

  • MacSurf.sit — бинарник v1.4, готовый к запуску. Распакуйте его на Mac OS 9.1+ с CarbonLib 1.5+ и запускайте.
  • Сборка из исходников: склонируйте репозиторий, затем на стороне Mac откройте browser/netsurf/frontends/macos9/MacSurf.mcp в CodeWarrior 8 и выберите Build. Тем, кто собирает v1.4 в воркспейсе v1.3.1, нужно добавить в проект один новый исходный файл: browser/netsurf/desktop/search.c (он даёт browser_window_search для нового диалога поиска; content/textsearch.c уже добавлен). macTLS не изменился с v1.3.1. Тем, кто собирает v1.3 в воркспейсе v1.2, нужно добавить четыре файла macTLS для TLS 1.3: bearssl/src/ec/ec_c25519_m15.c, os9/ostls_tls13_keysched.c, os9/ostls_tls13_record.c, os9/ostls_tls13_handshake.c. Тем, кто собирает v1.2 в воркспейсе 1.0, нужен desktop/download.c. Самый ранний релиз содержит снапшот BuildPack.sit с уже настроенным проектом CW8, но текущие сборки работают прямо из свежего клона.

Заметки ранних альф, если нужен контекст: docs/release-notes/MacSurf-0.1a1.md.


Начало работы

Сборка браузера

MacSurf собирается на Mac OS 9 в CodeWarrior 8 Pro (с обновлением 8.3). Исходники чисто кросс-компилируются с Retro68 PowerPC GCC — именно его мы используем для быстрых проверок синтаксиса на стороне Linux.

  • Руководство по сборке на стороне Mac
  • Кросс-разработка с Linux
Скачать инструмент
JavaScript Hello World на Mac OS 9
v0.2: JavaScript на Mac OS 9
Первая страница с реальным JS. Duktape 2.7.0 (ES5) вживую вычисляет: Math.sqrt, JSON, методы массивов ES5.
CSS-трансформации: rotate, scale, translate
fixes73: CSS-трансформации
Нативные transform: rotate() / scale() / translate(). Целочисленная таблица sin/cos Q15, никакой зависимости от FPU, произвольные углы на QuickDraw.
CSS-радиальные градиенты
fixes74d: радиальные градиенты
Двухточечные радиальные градиенты через концентрический стек PaintOval. 16 уровней, размываемых при декодировании. Разбираются ключевые слова shape + position.
CSS-анимации: wiggle, swing, медленное вращение
fixes77: CSS-анимации
Линейный проигрыватель анимации «пинг-понг» поверх вращения из fixes73. Покачивание (wiggle), качание (swing) и полное вращение 0°→359°.
PNG-изображение с прозрачностью на Mac OS 9
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: контексты наложения
Порядок отрисовки CSS 2.1. Opacity, трансформации и явный z-index создают новые контексты наложения, корректно отрисовываемые на реальном железе.
CSS Grid: размещение колонок
fixes151: размещение колонок в CSS Grid
grid-column: span N, 1 / -1 — hero-блок на всю строку, позиционные start / end, span + авто-перенос. Настоящая Grid-раскладка на OS 9.
MacSurf 1.0 отрисовывает home.macsurf.org
v1.0: Showcase
Новая панель инструментов, идеально чёткое поле URL и матовые иконки, отрисовывающие home.macsurf.org на G3 iMac под управлением OS 9.2.2. Нативный HTTPS через macTLS напрямую к источнику, портал с серверным рендерингом, полноцветные изображения по всей цепочке.
КомпонентЯзыкНазначение
browser/C (C89, CW8)Форк NetSurf с фронтендом macos9. Carbon для интерфейса, QuickDraw для отрисовки, Open Transport для сети, Duktape для JS.
proxy/Go (stdlib only)Старый HTTP-прокси, снимающий TLS. В значительной степени списан теперь, когда macTLS работает нативно, но всё ещё полезен как запасной вариант или на машинах без CarbonLib. Mac отправляет обычный HTTP, прокси забирает данные по HTTPS и возвращает обычный HTTP.
macTLS
соседний репозиторий
C (CW8)Нативная библиотека TLS 1.2 для OS 9: современный HTTPS прямо с Mac, прокси не требуется. Под капотом — BearSSL, встроен 121 якорь доверия.

Конвейер отрисовки

  • Полный цикл NetSurf: fetch → parse → cascade → layout → plot
  • Нативный libcss с разрешением var()
  • Плоттеры QuickDraw с заэкранным back-буфером GWorld

CSS — около 150 свойств, применяемых в раскладке

  • Кастомные свойства и var()
  • Flex: justify-content, align-content, order
  • Grid V1 плюс 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, единицы viewport, aspect-ratio
  • Псевдонимы font-family для sans, serif, monospace

Полный статус CSS →

JavaScript — Duktape 2.7.0, полный ES5

  • Замыкания, прототипы, regex, JSON
  • Промисы (полифилл), рекурсия, Мандельброт
  • Около 6 секунд на ackermann(3,7) на 233-МГц G3

Изображения — все пять форматов

  • PNG с настоящей попиксельной альфой (lodepng + CopyMask)
  • GIF с прозрачностью по палитре
  • JPEG, BMP, TIFF

Сеть

  • Open Transport TCP, обычные вызовы без InContext
  • HTTP/1.1 + chunked + keep-alive + следование за 3xx
  • Пул соединений, 15-секундный таймаут без прогресса
  • HTTPS через macTLS (по умолчанию) или Go-прокси (запасной вариант)

Оболочка браузера

  • Адресная строка, назад / вперёд / обновить / домой
  • Строка состояния, информация о странице, многооконность
  • Плавная полоса прокрутки, прокрутка с клавиатуры
fetch
load
DOMContentLoaded
<details>
<summary>
JS 19/19 pass, 0 fail
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