Трудно быть Коротаевым – Telegram
Трудно быть Коротаевым
657 subscribers
129 photos
129 videos
247 links
🎨 Генеративное искусство, сложные алгоритмы визуализации
🔍 Разбор графики в играх и как это работает,
🎮 Свежие проекты из мира креативного кодинга
😎 Сообщества и конференции о которых стоит знать.

Автор: @lekzd
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
❄️ Снежинка

Продолжаю развивать код отсюда, почти вышло реализовать гексагональные тайлы Труше. Которые можно соединять как угодно и получится узор

https://codepen.io/lekzd/pen/xbVKKKe
🔥118👍1💘1
Operation ForumTroll: Как фишинговая ссылка превращала WebGPU в оружие для взлома ОС

Кажется, что песочница браузера — это надёжная крепость. Но недавно обнародованная атака от марта этого года показала, что достаточно одной уязвимости в коде, чтобы эта крепость пала. Как фронтенд-разработчикам нам особенно интересно, что ключевую роль здесь сыграли WebGPU и безобидный на первый взгляд .woff2 файл.

Нас постоянно учат: нигде ничего не вводи ценного если не уверен в сохранности данных, но здесь бы это не помогло...

Разбираем цепочку взлома по косточкам:

1. Валидация (наш фронтенд-стек):

Жертва переходит по ссылке. Запускается JavaScript-валидатор.
WebGPU используется не по назначению — для вычисления SHA-256. Это не просто "быстрее", это сигнал для злоумышленников, что они в настоящем браузере с нужной конфигурацией.

Что в .woff2? В этом файле, который браузер по доверию загружает как шрифт, лежал не CSS-глиф, а зашифрованный бинарный код следующей стадии атаки — бутстраппер и сам эксплойт.

2. Взлом песочницы (CVE-2025-2783 — магия и ужас):

Здесь в игру вступает уязвимость, связанная с механизмом памяти Mojo/ipcz (межпроцессное взаимодействие в Chrome).
Корень проблемы: Эксплойт абузил pseudo-handle (-2) в системном вызове DuplicateHandle. Если очень упростить, это как получить права на запись в память ядра ОС, имея доступ только к памяти пользовательского процесса.

Use-After-Free и Race Condition. Эксплойт, манипулируя хендлами, создавал ситуацию, когда система пыталась использовать уже освобождённый участок памяти как валидный дескриптор, но с правами выше песочницы.

Результат: Через хук в v8_inspector::V8Console::Debug и SetThreadContext злоумышленник получал возможность выполнить свой shellcode уже в процессе браузера (а не в песочнице рендерера), получая тем самым доступ к ОС.

3. Что происходит после взлома (это уже не наш фронтенд, но важно понимать масштаб):

Loader через COM Hijacking (подмена легальной DLL twinapi.dll в реестре HKCU) обеспечивает загрузку библиотеки при старте ОС.

Вывод для нас, как разработчиков:

WebGPU — это мощный, но низкоуровневый API. Его использование для криптографии (не по прямому назначению) может быть маркером для атак.

Динамический импорт любых ресурсов (шрифты, WASM, Web Workers) — это потенциальный вектор. Браузер доверяет этим ресурсам, и если в них вшит вредоносный код, последствия могут быть катастрофическими.

Песочница — не панацея. Одна ошибка в движке (V8) или в системных бинарниках Chrome (Mojo) — и цепочка доверия рушится.

Это одна из тех уязвимостей, которая не была найдена никем кроме злоумышленников, которые успешно продали ее для адресного взлома работников СМИ, которым поставили на компы кейлогеры.
🔥7👍4😱43💘1
Forwarded from Стой под стрелой (Nikita Prokopov)
В английском языке есть термин “needy person”, что примерно переводится как несамостоятельный плюс навязчивый. Типа, человек, который постоянно пристает с какими-то вопросами и просьбами, которые вполне мог бы порешать сам, полностью перекладывает все решения на другого человека и не видит личных границ.

Ну вот, а я вижу это в программах. Раньше программы были инструментами — тебе что-то нужно сделать, ты ее взял, сделал и забыл. Она лежит себе, помалкивает, до следующего раза.

А сегодня шагу не ступишь, как программы до тебя не доебутся. Сначала создай аккаунт — куда без него. У меня уже столько аккаунтов, что на поселок городского типа хватит. Раньше были мемы про то, как тупо заряжать очки, книгу или сигарету, а сейчас можно делать про логины в стиральную машину и зубную щетку. Серьезно, это НЕ смешно уже.

(Понятно, что если ты уступишь и создашь аккаунт, то до тебя все равно доебутся — или 2FA включи, или пароль поменяй, или почту проверь, или разлогинят тебя просто чтобы не расслаблялся)

Дальше идут обновления, они же апдейты. Я во всем виню Хром (вроде он это начал), но сегодня каждая программа постоянно проверяет, не вышла ли новая версия, и если вышла, всю душу из тебя вынет, пока не обновишься.

Заметьте, что обновиться — не мое желание, не моя потребность. Если бы мне было нужно — баг там какой критический, нехватка функций — я бы пошел и сам нашел все нужные патчи и апдейты. Но мне НЕ НУЖНО. Если бы я не знал про новую версию, если бы меня не заебывали этими попапами, я бы сидел на старой и горя бы не знал. От того, что я обновлюсь, в моей жизни не изменится НИ. ЧЕ. ГО. Так и кому это нужно? Мне? Или программе?

Наконец, нотификации. Это вообще рак. Идея была светлая — ну, иногда пользователю реально нужно что-то сообщить. Рендер там закончился, загрузка, не знаю. Что-то в мире пользователя, про его задачи.

Но вместо этого нотификации — пакет кокаина, который выдали торчку и попросили использовать только по делу. Их засунули в каждую дыру, от ебучих красных точек везде уже рябит в глазах, а попапы закрываются на автомате даже не читая.

Ведь нотификация это что такое? Это что-то, что я не просил, но с чем мне нужно разобраться. Это буквально проблема программы, с которой она пришла ко мне. У меня есть скриншот свежеустановленной какой-то Джетбрейновской ИДЕ. Я запускаю ее в первый и раз и тут же получаю в рожу ТРИ нотификации. Я еще ничего не сделал. Мне от тебя еще ничего не нужно. Но я уже тебе что-то должен. Как минимум, закрыть нотификации. Are you охуели там, как говорится? VS Code не лучше, кстати, и нотификации одна из основных причин, почему я сбежал.

На одном конце спектра условный ls: тоже программа, но никогда не попросит тебя создать аккаунт или обновиться. Это спокойный, уверенный в себе инструмент. Или, если нужен пример посложнее, Syncthing: программа для синка файлов между машинами, в которой нет аккаунтов, нотификаций, которой можно сразу начинать пользоваться, а про апдейт которой я недавно случайно узнал от друга. И не стал обновляться! (потому что зачем)

На другом — Гугл Хром. Опять же, заглядываю как-то в ноут жены, она там какую-то страничку открывает, а хром ей: проверь аккаунт! что-то не так (что, блядь, может быть не так, всю жизнь было так, с чего бы вдруг сейчас что-то пошло не так?), а еще обновись! И нотификацию в рожу. Жену я бесконечно уважаю, потому что она четко видит, где ее проблемы (нужно что-то посмотреть на сайте), а где проблемы программы (обновления, аккаунт). И абсолютно хладнокровно игнорирует вторые.

Ощущение от needy программ — я решаю не свои проблемы, а проблемы программы. Обнови ее, залогинь, нотификации закрой. Ну и нафига мне такой тамагочи?

Будь как ls. Не будь как Хром. Проблем у нас всех своих хватает.
💯18🔥74👍1😁1💘1
This media is not supported in your browser
VIEW IN TELEGRAM
Башкирский орнамент

Выступал на Ufa dev conf, и понравились этнические башкирские ковры с орнаментом в виде рогов оленя.

Спасибо всем кто был на докладе и пришел сюда)

https://codepen.io/lekzd/pen/JoXRjOM
18🔥14❤‍🔥4💘1
This media is not supported in your browser
VIEW IN TELEGRAM
Повторил анимацию из брендинга HolyJS, но продолжил делать ее дальше

Стоял на сцене, сказал, что тут буквально 2 алгоритма: SDF кружки и smoothMin и запилил.

Кстати, в этом сезоне на конференции был доклад про выше описанные алгоритмы, надеюсь его будет не очень долго ждать в открытом доступе и я смогу им тут поделиться)

https://codepen.io/lekzd/pen/emZeRmd
🔥153💘3
Media is too big
VIEW IN TELEGRAM
Больше всего на свете люблю нажимать на крестики

Каждый раз, когда кто-то решил что мне срочно надо что-то показать на том месте, где ранее ничего не было. Я сразу ищу крестик, большинство размещают его справа, некоторые, подглядев что у меня Mac OS, ставят его слева (а еще я читаю справа налево, да).

Я сам как разработчик много раз ставил всякие промо-окна с крестиками, однажды о таком промо-окне даже писали в новостях...а потом я ехал в такси и о нем говорили по радио!

Крестики со временем превращают любое локальное хранилище на устройстве в помойку с кучей переменных вроде "isJuneSalePromoClosed" и никогда не удаляются, отчего при старте приложения у новых пользователей иногда может случиться взрыв из 5 модалок, уведомлений, баннеров и онбординга поверх всего этого.

Но сегодня я искал крестик дольше обычного, в начале я думал что это шутка, крестик нарисован, но на него нельзя нажать, ну за что?

PS: поделитесь с теми кто до сих пор ищет крестик
😁22👏3💘1
Forwarded from Stage multimedia
Вчера было мероприятие для застройщика ЭНКО в Золотых воротах Сибири, хореографический номер с Кинектом и флюидами, которые потом заменялись масляной картиной моря. Видео не смог снять, попрошу у кого-нибудь. Пока посмотрите подготовку и то, как красиво сам экран светится от движения вихря
🔥196💘1
Вайбы разработки старого ВКонтакте

Посте про крестики я упоминал про модалку, которую нельзя было закрыть, о которой писали в новостях, рассказали по радио и даже в баре знакомые спрашивали. Притом это был не баг, это была довольно спорная фича.

А потом в комментариях к посту Зара про его опыт работы в ВК вспомнил как ломал один из некогда самых посещаемых сайтов рунета. Только представьте, ваша задача — просто переложить файлы статики в одну папку, чтобы упростить сборку...да что вообще может пойти не так и причем тут поезда?

История (с 25 минуты) в докладе, который я рассказал 4 года назад: https://youtu.be/W5YXcI3ov4w?si=epuc7PUr9IhJM-Jj
👍6🔥5🤡2💘2
Media is too big
VIEW IN TELEGRAM
Гугл не смог смириться с тем, что Cursor выпустили не они...

И они сделали копию — Antigravity. К сожалению с аккаунтами зарегистрированными в России, Беларуси и, внезапно, Молдове зайти в приложение не получится. Но хоть на сайт посмотрим. Там на заднем плане реализовали простую и красивую композицию из летающих частиц, при выборе пунктов меню они плавно выстраиваются в контуры иконки выбранного пункта.

Я уже пару раз делал такой эффект: все возможные позиции уже переданы в шейдер и между ними запускается функция интерполяции значений по времени. Делается просто, за то как эффектно.
❤‍🔥13😁2🔥1💘1
Через час жена продолжит делиться тем как она научилась делать 3D визуализации интерьеров при помощи Chat GPT, казалось бы, что такого. А вы пробовали добиться от него визуализации чего-то сложнее мемасика?
🔥4💘1
Forwarded from GPT интерьеры🤖Bornatalia.design (Nataliia Borisenkova)
Друзья, напоминаю, что уже завтра 2 декабря в 12:00 состоится второй вебинар по работе в ИИ: « Метод точного рендера в GPT» приходите , буду рада всех видеть и ждать 🙌🤗

Ссылка на вебинарную комнату:

https://us06web.zoom.us/j/82679146906?pwd=8IYGcuuOnx1oczF7ASv2VlOZwH8WDR.1
🔥7💘2😁1
3Dекабря - всемирный день компьютерной графики.
Поздравляем всех причастных!
20😁12🌚1💘1
Забытое искусство формовки текста

Уже 4-й день в Генклубе обсуждают обтекание текстом разных форм, все началось с работ, выложенных @Yan_LS, который взял и просто на чистом C написал отбивание текста пробелами, рисуя текстом абстрактные формы и самостоятельно реализовав всю математику. Завязалось горячее обсуждение, где другие участники чата начали брать InDesign, Pages (аналог Word в MacOS) и сравнивать результаты, но все они были мягко говоря не очень по сравнению с тем, что я и многие мои сверстники помнили из детства: журнальную верстку.

О ней — далее
🔥8💘2
Забытое искусство обтекания текстом: журналы

Когда-то давно я любил вглядываться в микрокартинки вставленные между текстовых столбцов, где буквы плавно обтекали контуры чего угодно: от ромбика-врезки с цитатой до обтравленного фото героя заметки. Место в журнале/газете тогда стоило денег, потому использовали буквально каждый квадратный сантиметр. Когда я еще искал кем мне стать, я взял InDesign и попробовал сверстать страницу журнала и как раз столкнулся с тем, что готовый текст и иллюстрации просто так не вставить, надо и текст подкоротить или удлинить, картинку покрутить чтобы не осталось пустого места, а еще не забыть по переносы, И использовать верные спецсимволы, дизайнеры-верстальщики те еще душнилы когда дело касается разницы между x и × (да, да, говорили "кого это ты там на Х послал?").

Как это делалось в «докомпьютерную» и раннюю компьютерную эпоху

В металлической верстке — физически перемещали строки текста, подгоняя их вокруг клише.

С появлением настольных издательских систем (как Adobe PageMaker, QuarkXPress, а затем InDesign) — дизайнер создавал контур обтекания вокруг изображения, часто вручную расставляя точки, чтобы текст огибал именно нужные части рисунка (например, волосы модели или сложный предмет).

Почему сейчас это реже встречается

Сложность чтения: Сильно «рваный» правый край ухудшает читаемость, особенно для больших объемов текста.
Адаптивный дизайн: Техника плохо масштабируется для мобильных экранов и веб-верстки. Ранее каждый такой текстовый блок создавался вручную, теперь разработчики скорее делают системы разметки любого контента, а не штучные страницы.
Минимализм: Современный дизайн склоняется к более простым, строгим сеткам с четким разделением текстовых и графических блоков.

А вам вак?
🔥72💘2