Технологический Болт Генона
9.55K subscribers
3.38K photos
438 videos
221 files
4.32K links
До Декарта никогда не существовало рационализма.

Музыкальный Болт Генона: @mus_b0lt_Genona
Мемный Болт Генона: @mem_b0lt_Genona
Кадровый Болт Генона: @kadr_b0lt_Genona
Генеалогический Болт Генона: @gen_b0lt_Genona
Обратная связь: @rusdacent
Download Telegram
Пятница!

Проект CobolCraft развивает реализацию сервера для игры Minecraft, совместимую с декабрьским выпуском Minecraft 1.21.4. Код проекта написан на языке COBOL и распространяется под лицензией MIT. Для сборки может использоваться компилятор GnuCOBOL. Для быстрого запуска подготовлен образ контейнера для Docker. В качестве причины выбора языка COBOL, созданного в 1959 году, называется желание изучить данный язык и развеять связанные с ним предрассудки.

Поддерживаются такие возможности как генерация бесконечного ландшафта, динамическая загрузка блоков, сохранение состояния игрока и игрового мира, импорт миров в формате Minecraft, участие до 10 сетевых игроков, интерактивные блоки (например, двери, открывающиеся после нажатия), встроенный чат, консоль для ввода команд. Из расширенных блоков поддерживаются факелы, плиты, кнопки, брёвна, двери, люки и кровати.

Представлен CobolCraft, сервер для игры Minecraft, написанный на языке COBOL
https://www.opennet.ru/opennews/art.shtml?num=62472
+
Why?
Well, there are quite a lot of rumors and stigma surrounding COBOL. This intrigued me to find out more about this language, which is best done with some sort of project, in my opinion. You heard right - I had no prior COBOL experience going into this.

GitHub
https://github.com/meyfa/CobolCraft

ЗЫ Мой мартовский пост про COBOL
https://xn--r1a.website/tech_b0lt_Genona/4357
😁11💊9🔥72❤‍🔥2👍1
README новогоднее
100% понимания, 0% осуждения

https://github.com/microsoft/markitdown
👍28🔥125
Опубликован первый тестовый выпуск web-браузера FixBrowser, рассчитанного на низкое потребление ресурсов и обеспечение конфиденциальности. Браузер развивается с нуля и принципиально не поддерживает выполнение JavaScript, но при этом позволяет работать с сайтами, завязанными на JavaScript. Код написан на языках Си и FixScript, и распространяется под лицензией ZLIB. Готовые сборки сформированы для Linux (GTK2) и Windows. Намечено создание сборок для Haiku и macOS 10.6+, а также формирование сборок для Linux, использующих GTK3/4.
. . .
Для обработки капчи и JavaScript-компонентов, таких как проверки CloudFlare, без которых невозможен вход на некоторые сайты, планируют подготовить прослойку на базе фреймворка CEF (Chromium Embedded Framework), которая сможет выборочно выполнять только необходимый JavaScript-код. Прослойка для JavaScript будет реализована в виде отдельного сервиса (можно запустить как на своей системе, так воспользоваться общедоступным облачным сервисом).
. . .
Большая часть кода FixBrowser написана на языке FixScript, за исключением критичных к производительности операций и базового каркаса. Код на FixScript встраивается в код на Си, а для сборки используется компилятор, поставляемый в одном файле, включающем примерно 27 тысяч строк кода на языке Си (800 Кб). Язык напоминает Си, но использует динамическую типизацию, сборщик мусора и JIT-компиляцию. FixBrowser обеспечивает безопасную работу с памятью и потоками, а также имеет встроенную защиту от целочисленных переполнений.

Первый тестовый выпуск web-браузера FixBrowser
https://www.opennet.ru/opennews/art.shtml?num=62465

По наводке @itpgchannel (рубрика "новости из дурки")

ЗЫ

> Для работы с сайтами, завязанными на JavaScript, в FixBrowser задействована прослойка FixProxy, на лету преобразующая подобные сайты в представление, c которым можно работать без JavaScript. Замена осуществляется как по типовыми шаблонам, так и при помощи fix-обработчиков, учитывающих специфику конкретных сайтов (в комплект включены fix-обработчики для более чем 1200 сайтов)
This media is not supported in your browser
VIEW IN TELEGRAM
🔥19😁13🤡93👍2🌚21👏1
Помните прошлогоднюю историю из Польши, когда наняли "хакеров", чтобы разобраться почему поезда "ломались" внезапно? Это были "закладки" программистов.

Тем кто пропустил вот текстом
https://xn--r1a.website/tech_b0lt_Genona/4158
а вот доклад с Chaos Communication Congress
https://xn--r1a.website/tech_b0lt_Genona/4207

И вот продолжение истории уже с 38c3 этого года
We've not been trained for this: life after the Newag DRM disclosure
https://streaming.media.ccc.de/38c3/relive/336

Я приложил, как по мне, ключевые слайды (ну и само выступление на всякий случай)

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

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

Тут можно пожелать только удачи в судебных тяжбах и надеюсь всё будет у них хорошо

Последний слайд
Lessons learned?

Lawsuits are temporary, glory is forever.

Go public.


ЗЫ
38C3: Illegal Instructions ещё идёт
Вот ссылка на стримы
https://streaming.media.ccc.de/38c3/
А это ссылка на расписание
https://events.ccc.de/congress/2024/hub/en/schedule

ЗЫЫ
Тут были доступны слайды https://fahrplan.events.ccc.de/congress/2024/fahrplan/media/38c3/submissions/HTWLCG/resources/38C3_-_Weve_not_been_trained_for_this__life_after_the__fwoYhZT.pdf, но они куда-то пропали. Если кто знает, где их достать, то скиньте в личку или в комменты, пожалуйста 🌝
🔥32👍4😱2🤩21
Технологический Болт Генона
С наступающим новым годом, дорогие подписчики и подписчицы! ❤️ В этом году решил без башизма, собрал простой видос из говна и палок болтов и гаек 🌝 Размещение текста через ffmpeg https://gist.github.com/bennylope/d5d6029fb63648582fed2367ae23cfd6 Пикселизация…
Media is too big
VIEW IN TELEGRAM
С наступающим новым годом, дорогие подписчики и подписчицы!

Символом наступающего года является Python, поэтому ёлочка в этот раз сделана с помощью Matplotlib (https://matplotlib.org/) 🌝

А если вы хотите ёлочку на своём [не]любимом языке программирования, то можете попробовать найти её в этом платиновом треде на Stack Exchange

https://codegolf.stackexchange.com/questions/15860/make-a-scalable-christmas-tree/16358
11🎄7👍42
Технологический Болт Генона
Мы дожили до новой фракции в HoMM III - Фабрика! Качать тут https://h3hota.com/ru/download Спасибо ребятам из HoTA Crew за такой офигенный новогодний подгон!
Media is too big
VIEW IN TELEGRAM
Умеют ребята из HoTA Crew (@h3hota) делать подарки на новый год.

В прошлый раз это была Фабрика, а теперь анонсирован новый замок, который уберёт раздражающую пустую клеточку при выборе замка (если вы понимаете о чём я 🌝)

Итак, перед вами Кронверк 00:34 ! Второй замок, помимо Башни, для которого, видимо, снег станет родной землёй.

Команде удачи в разработке и доработке, ну а мы ждём, когда его зарелизят.
👍13🎄8🔥4🥱43🤡21👎1
Отличная новость, обожаю эти соревнования

После четырёхлетнего перерыва объявлено о возобновлении конкурса IOCCC (International Obfuscated C Code Contest), нацеленного на написание наиболее запутанного и трудноразбираемого кода на языке Си. Мероприятие IOCCC28 станет сороковым в истории конкурса, проводимого с 1984 года. Работы будут приниматься c 31 января до 2 апреля 2025 года. В отличие от прошлых конкурсов, отныне в исходном коде разрешено использовать кодировку UTF-8.

Участвующие в конкурсе работы, с одной стороны, должны препятствовать анализу кода и пониманию сути решаемой задачи, но, с другой стороны, код должен быть интересен и чем-то примечателен (работы могут быть необычно оформлены или выделять неожиданные стороны языка Си). Размер исходного кода программы не должен превышать 4096 байт, а программа должна собираться и выполнять осмысленное действие. Например, в прошлые годы создавались различные игры, эмулятор IBM PC, HTTP-сервер, система распознавания текста, движок трассировки лучей, генератор PDF.

Возобновлено соревнование по написанию запутанного кода на языке Си
https://www.opennet.ru/opennews/art.shtml?num=62503

Посмотреть примеры работ по годам можно тут
https://www.ioccc.org/years.html

А тут рассказан пример того, как разобраться с программой которая картинкой прицеплена к посту
How to “de-obfuscate” Jim Hague’s IOCCC winner program
https://medium.com/@laura.derohan/how-to-de-obfuscate-jim-hagues-ioccc-winner-program-3e7ea82c1fa4
🔥31😁32🤡2🌚2👍1
Статический анализ GitHub Actions

Сразу после релиза новой версии линтера, я задался вопросом обновления своего шаблона для создания новых питоновских библиотек: https://github.com/wemake-services/wemake-python-package

И я понял, что я несколько отстал в вопросе стат анализа GitHub Actions и прочей инфраструктуры.
Расскажу о своих находках.

pre-commit ci

Все знают про пакет pre-commit? Несколько лет назад он получил еще и свой собственный CI, который умеет запускаться без дополнительного конфига. И автоматически пушить вам в ветку любые изменения. Что супер удобно для всяких ruff / black / isort и прочего. У нас такое стоит в большом количестве проектов. Вот пример из typeshed. Вот что поменялось автоматически.

Строить CI на базе pre-commit очень удобно, потому что тебе просто нужно скопировать пару строк в конфиг. А плюсов много:
- Автоматически исправляются многие проблемы
- Автоматически запускается CI, 0 настроек
- Локально все тоже работает одной командой: pre-commit run TASK_ID -a

actionlint

Первый раз я увидел actionlint внутри CPython и затащил его в mypy. Actionlint на #go, он предлагает набор проверок для ваших GitHub Actions от безопасности до валидации спеки вашего yml. Довольно полезно, позволяет найти много мест для улучшений.


test.yaml:3:5: unexpected key "branch" for "push" section. expected one of "branches", ..., "workflows" [syntax-check]
|
3 | branch: main
| ^~~~~~~
test.yaml:10:28: label "linux-latest" is unknown. available labels are "macos-latest", ..., "windows". if it is a custom label for self-hosted runner, set list of labels in actionlint.yaml config file [runner-label]
|
10 | os: [macos-latest, linux-latest]
| ^~~~~~~~~~~~~
test.yaml:13:41: "github.event.head_commit.message" is potentially untrusted. avoid using it directly in inline scripts. instead, pass it through an environment variable. see https://docs.github.com/en/actions/security-for-github-actions/security-guides/security-hardening-for-github-actions for more details [expression]
|
13 | - run: echo "Checking commit '${{ github.event.head_commit.message }}'"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Даже умеет автоматом shellcheck запускать на ваши run: скрипты!

zizmor

Исходники. Уже на #rust, он более злой. Делает похожие вещи: находит проблемы безопасности. Находит много проблем.

Вот пример, сколько всего он нашел в mypy.


warning[artipacked]: credential persistence through GitHub Actions artifacts
--> mypy/.github/workflows/mypy_primer.yml:37:9
|
37 | - uses: actions/checkout@v4
| _________-
38 | | with:
39 | | path: mypy_to_test
40 | | fetch-depth: 0
| |________________________- does not set persist-credentials: false
|
= note: audit confidence → Low

error[dangerous-triggers]: use of fundamentally insecure workflow trigger
--> mypy/.github/workflows/mypy_primer_comment.yml:3:1
|
3 | / on:
4 | | workflow_run:
... |
7 | | types:
8 | | - completed
| |_________________^ workflow_run is almost always used insecurely
|
= note: audit confidence → Medium


check-jsonschema

Еще есть вот такой проект, он в основном полезен за счет доп интеграций: можно проверять dependabot.yml, renovate.yml, readthedocs.yml и многое другое.

Ставится просто как:


- repo: https://github.com/python-jsonschema/check-jsonschema
rev: 0.30.0
hooks:
- id: check-dependabot
- id: check-github-workflows


Выводы

Как всегда – статический анализ многому меня научил. Я узнал много нового про безопасность GitHub Actions, про вектора атаки, про лучшие практики. А сколько проблем в ваших actions?

Скоро ждите весь новый тулинг в python шаблоне v2025 😎
👍9🔥6👎1😢1🤡1
Forwarded from C++95
#longread #retro

Написал новую статью 📖 Это продолжение постов про m68k и про сегу.

Создаем эмулятор Sega Mega Drive на C++

В этой статье описано создание эмулятора 16-битной приставки Sega Mega Drive на C++ 🏃

Будет много интересного: эмуляция процессора Motorola 68000, реверсинг игр, графика на OpenGL, шейдеры, и многое другое. И все это на современном C++. В статье много картинок, можно хоть на них посмотреть 🔍
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍6🤡3
Всем привет!

После небольшого перерыва пытаюсь вернуться в обычное состояние 🌝

Пока что всё выглядит так
https://xn--r1a.website/mus_b0lt_Genona/227
❤‍🔥15🔥96🤡3🍾21💯1😎1
> 08 Июля 2024
Росреестр рассматривает возможность заказать продукты в области межсетевых экранов нового поколения (NGFW). Стоимость проекта оценивается в 1 млрд руб. Другим крупным заказчиком NGFW является ВТБ.

Сотрудничество Росреестра и Positive Technologies

Компания «Позитив Технолоджис» (Positive Technologies) вложит 1 млрд руб. в разработку продукта под общим названием «Средства защиты информации».

Это следует из дорожной карты «Новое общесистемное ПО» (ДК НОПО), разработанной VK, «Ростелекомом», «1С» и «Лабораторией Касперского» и утвержденной Правительственной комиссией по цифровому развитию.

Заказчиком продукта является Росреестр. Продукт должен достичь максимального уровня технологической готовности (УГТ-9) к 2025 г.

Росреестр закажет средства защиты информации на миллиард
https://www.cnews.ru/news/top/2024-07-08_rosreestr_zakazhet_sredstva

> Продукт должен достичь максимального уровня технологической готовности (УГТ-9) к 2025 г.

> 7 января 2025
Хакеры утверждают, что им удалось выкачать данные Росреестра.

В качестве доказательства своих слов, хакеры опубликовали в свободном доступе ссылку на скачивание фрагмента базы данных, содержащего 81,990,606 строк:

🌵 ФИО
🌵 адрес эл. почты (401 тыс. уникальных)
🌵 телефон (7,5 млн уникальных)
🌵 адрес
🌵 паспорт (серия/номер, кем и когда выдан)
🌵 дата рождения
🌵 СНИЛС
🌵 дата
🌵 компания

https://xn--r1a.website/dataleak/3441

> 7 января 2025
Росреестр не подтверждает утечку данных из Единого государственного реестра объектов недвижимости (ЕГРН).

В настоящее время проводятся дополнительные проверки информации, опубликованной в ряде телеграмм-каналов.

https://xn--r1a.website/rosreestr_news/2550

Получается утечки нет и максимальный уровень технологической готовности достигнут.
😁45🤡14👍6🫡5👏2🍌1
This media is not supported in your browser
VIEW IN TELEGRAM
Это мы любим

В праздничные выходные мне пришло в голову, что я давно не занимался чем-то бессмысленным. Представляю вашем вниманию... Regex Chess: набор из 84688 регулярных выражений, которые при выполнении по порядку генерируют ход (валидный, то есть не совсем ужасный) для переданного в качестве входных данных состояния шахматной доски.

Шахматный движок на 84688 регулярных выражениях
https://habr.com/ru/articles/872186/

Я записал демку на два хода, оцените как оно работает "под капотом"

Оригинал
A 2-ply minimax chess engine in 84,688 regular expressions
https://nicholas.carlini.com/writing/2025/regex-chess.html
+
GitHub (даже тесты есть 🌝)
https://github.com/carlini/regex-chess
+
Demo
https://nicholas.carlini.com/writing/2025/regex-chess.html
💊51🔥11👍3🤡3
pdftris.pdf
60.3 KB
Почти пятница 🌝

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

GitHub
https://github.com/ThomasRinsma/pdftris

За наводку спасибо подписчику
🔥14💊4🤪3
The Chinese are at it again..(aliexpress) its an rj45 adapter, but with SPI flash memory chip acting as storage with .exe recognized as malware for windows, and of course sold over 10k times... 🤦‍♀️ 
. . .
Your long awaited exe, its injecting code into processes, evading virtual machines, modifying proxy settings, extracting keystrokes, and using Russian-language elements to obscure its origin or intent.

https://x.com/evapro30/status/1878416900016705783

Семпл с адаптера лежит тут
https://www.hybrid-analysis.com/sample/e3f57d5ebc882a0a0ca96f9ba244fe97fb1a02a3297335451b9c5091332fe359/6783acb889e814045f0a2da6

UPD: В твитторе разобрались, всё там нормально. В комментах к посту подписчики принесли подробности, за что им спасибо.
🌚8🤡5