Work & Beer Balance
1.53K subscribers
178 photos
10 videos
5 files
251 links
Авторский канал @Akiyamka
Поддержать автора можно здесь:
buymeacoffee.com/cherrytea
Download Telegram
Work & Beer Balance
Screencast From 2026-07-06 16-16-13.mp4
Скопилированная карта для игры - это бинарник в формате .xbf и еще пару файлов cpf и cpt

В таком же формате хранятся модели юнитов и зданий, и проект CorinoEngine уже отреверсил как эти модели читать

Из .xbf была восстановлена и геометрия карты, группы сглаживания, развертка текстур. Но цвета были вот вообще не те (первый скрин) да и текстуры слишком репетативны - чего-то не хватало.

По остаточному принципу я решил что секрет в файлах .cpf .cpt (позже оказалось что это оптмизированный .tga "огромных" размеров (2к) на всю карту)

После того как я натянул его как слой на карту она оберела те самые уникальные рисунки на камне, но цвет был все еще не тот.

В конце концов я нашел приложеный туториал к редактору карт, и из него узнал что мапдизайнер разукрашивал color dodge кистью каждую карту в ручную используя две маски для песка и скал с разными режимами смешивания

Повторив этот трюк в движке я наконец получил тот самый оригинальный цвет и текстуры на видео выше
🔥41
Work & Beer Balance
Скопилированная карта для игры - это бинарник в формате .xbf и еще пару файлов cpf и cpt В таком же формате хранятся модели юнитов и зданий, и проект CorinoEngine уже отреверсил как эти модели читать Из .xbf была восстановлена и геометрия карты, группы сглаживания…
Но карта должна иметь еще логические слои. Я в этом убедился подняв вируалку с WindowsXP SP2 потому что больше нигде мне не удавалось запустить редактор карт.

Так я увидел что на карте есть слой навигации который обозначает где можно пройти а где нельзя. (6 типов проходимости).

Он должен был быть в xbf но ни claude ни gpt не могли найти эту информацию в нем. GPT убеждал меня что это должен быть отдельный файл, а клод генерировал мне монстуркзные скрипты которые генерировали карты проходимости на базе самой геометрии - что, в целом могло бы прокатить но мне было интересно понять как же оно работало в оргиниале.

Я сделал следующее - насобирал столько образцов и констрейнов сколько смог - сделал отдельную карту с клеточкой каждого типа в углу, и собрал ее - так модель могла сопоставить исходник и бинарник. Не прокатило. Тогда я сделал еще одну карту точно такую же но без контрольных тайлов, чтобы можно было опираться на разницу. И наконец было найдено где тайлы храняться!
🔥2
Work & Beer Balance
Но карта должна иметь еще логические слои. Я в этом убедился подняв вируалку с WindowsXP SP2 потому что больше нигде мне не удавалось запустить редактор карт. Так я увидел что на карте есть слой навигации который обозначает где можно пройти а где нельзя.…
Провернув этот трюк с еще парочкой карт разной размерности было вычисленно как именно эти данные хранятся и как эту таблицу доставать зная размеры самой карты. И вот у меня теперь есть слой для навигации
🔥2
🛑 Не новый, но в последнее время довольно популярный таргетированный сценарий мошенничества, который #мошенники используют для кражи ключей от криптокошельков (и других реквизитов доступа) с компьютера жертвы.

Всё начинается с публикации вакансии в тематических чатах. Тексты объявлений могут быть самыми разными, но все они так или иначе связаны с Web3 и блокчейном. Обязательно требуется кандидат с опытом работы с криптовалютой, желательно от нескольких лет. Зарплату предлагают вполне рыночную — ничего подозрительного.

В описании вакансии указывают реально существующую компанию. В процессе общения «HR» без стеснения показывает свой профиль в LinkedIn, сайт компании и всячески демонстрирует, что компания настоящая. Так и есть — вот только сам он к ней никакого отношения не имеет.

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

После получения согласия присылают ссылку на GitLab-репозиторий. Хотя он создан совсем недавно, за пару дней у него уже набирается около тысячи загрузок. В самом коде проекта ничего подозрительного нет, однако среди зависимостей присутствует пакет, который и содержит вредоносную нагрузку.

Во время установки этого пакета запускается хук, который загружает код стилера с GitHub, проверяет, не выполняется ли он в виртуальной машине, а затем начинает сканировать систему в поисках криптокошельков: MetaMask, Phantom, Trust Wallet, Coinbase Wallet, OKX Wallet, Rabby, Solflare, SafePal, Station Wallet, Binance Wallet, TronLink, Kaia Wallet, Argent X, Auro Wallet и Sui Wallet.

Кроме того, стилер собирает SSH-ключи, сессионные файлы Telegram, cookies из браузеров, различные конфигурационные файлы из домашнего каталога, а также файлы вроде credentials, accessTokens, azureProfile, FileZilla, .mylogin.cnf, .pgpass, .env и многое другое.

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

После отправки жалоб в различные инстанции удалось добиться следующих результатов:

1. Администратор группы заблокировал в личных сообщениях с отправкой репорта. При этом вакансию из канала он не удалил, а из чата её, предположительно, удалил сам мошенник ещё до того, как админ получил сообщение.
2. GitLab никак не отреагировал, репозиторий всё ещё на месте.
3. GitHub удалил все репозитории, связанные с данной атакой.
4. NPM никак не отреагировал, вредонос всё ещё доступен.
5. Контакты одной жертвы удалось легко найти, однако ответа не последовало.
6. Токен Telegram-бота, через которого отправлялись собранные данные, был отозван.
7. Сам злоумышленник от дополнительных комментариев отказался.

И что с этим дальше делать? 🤨

Много разных советов можно дать, чтобы снизить риск supply chain-атак. Но, пожалуй, главное — запускать чужой код только в изолированной среде: виртуальной машине, отдельном контейнере или хотя бы под отдельным пользователем. Не доверять количеству загрузок и звёздочек у репозитория. Проверять preinstall, install и postinstall-скрипты, а также не торопиться — особенно если вас пытаются торопить.

Главное помнить, что сегодня опасность представляет не только исполняемый файл. Одной команды npm install, pip install или cargo build иногда достаточно, чтобы на машине выполнился код, который вы даже не увидите при беглом просмотре репозитория 🫠
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
This media is not supported in your browser
VIEW IN TELEGRAM
Модельки юнитов с анимациями, звуками, местами прикрепления, хранились в том же формате что и карты.

Да, в те времена скелетная анимация еще не была дефолтом и все анимировалось ручным смещением вершин (это было больно даже для low poly моделек, поверьте - я пробовал)

И все равно анимации очень разнообразные и не скучные
🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
Движок уже умеет (только новое):
- парсить файлы зданий.
- применять текстуры со смешиванием покадравыми скролящимися текстурами, альфаканалами и magenta масками
- парсить файлы rules и art.ini (настройки игрового баланса)
- рисовать базовую панель интерфейса с анимацией строительства
🔥3
Интересный и наглядный бенчамарк - когда моделям дают задачу сделать игру. Намного интереснее чем смотреть на графики и под такой бенч особо не подстроишься.
Fable vs GPT 5.6 SOL Pro
https://www.youtube.com/watch?v=TbQJiWVcAbI

Должен признать Fable на голову выше
🔥2
Вот вы ругаетесь на нейрослоп. А как вам человеками написанный релиз игры где в ресурсах аж 3 иконки одного и того-же юнита с разными опечатками )

"Да я же вроде добавлял ее!!!"

Вообще тут где-то 15% ресурсов это какие-то выреазнные / так и не доделанные куски игры.

Кажется я начинаю понимать датамайнеров - это и правда интересно гадать что же тут разработчики пытались сделать и почему не сделали
🤣8
codex отменили 5h лимиты, остался только недельный. Но при этом они спалили мои 3 не заюзаных сброса (
сбросы остались, просто убрали из /status и странички аналитики где я раньше смотрел
Расчет траекторий оказался вершиной айзберга!

Как быстро выяснилось - надо еще расчет столкновений как-то круто описать. Сейчас у меня юниты как бильярдные шары разлетаются а хочется чтоб как трафик в индии
😁3
This media is not supported in your browser
VIEW IN TELEGRAM
Знаю, в оригинале было не так, но кто меня остановит!
(Дуров а еще более шакальное качество нельзя было сделать, м?)
😁2
вот зря на собеседованиях гугла не просят показать как выровнять див по центру страницы
😁5
Это только у меня каждый день сбрасывается недельный лимит Codex? Вот уже второй раз подряд - выедаю его на ~70% за день а на утро он снова сброшен
🤔1
Вы наверняка знаете что в играх весь мир обновляется за т.н. "игровой тик"
А то что в нашей с вами реальности тоже есть такой тик обновления вы знали?
Планковское время
This media is not supported in your browser
VIEW IN TELEGRAM
я задолбался это делать даже с помощью агентов. Результат не идеальный но не хуже чем было в оригинале
🔥10
очереь аи ревью безопастности похоже дошла до rsync
Вот так выглядит моя "серверная полка"

Сам сервер с пассивным охлаждением, но как вы могли догадаться по костылю сверху Майнкрафт с 300 модами в сочетании с 32 градусной жарой слишком жесткое сочетание даже когда весь корпус это сплошной радиатор (весит эта малютка килограмма два)

Однако 5$ контроллер и немного микропитона и пайки дают программно управляемый куллер который включается когда серверу нужно остыть (очень редко)
👍72🆒1
This media is not supported in your browser
VIEW IN TELEGRAM
Вот еще один пример того как быть когда сложно обьяснить модели что с текущей реализацией не так и как надо сделать.

В игре есть механика мехов (😅) - во первых такие юниты не вижутся перпендикулярно земле на склонах, а во вторых их движение нелинейно - они не едут, а шагают.

В конфигах обнаружилось что у всех юнитов с флагом isMech - есть не одна а две скорости передвижения.

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

Наивная реализация 50 / 50 дала очень плохой результат скользяших по льду анимаций, так что я описал модели какой мне нужен UI c какими ручками чтобы "нащупать" те самые параметры.

Забыл только попросить о кнопке "скопировать параметры", так что придется ручками их переписать
🔥2