Telegram Group Search
Ресёрчи, которые мы заслужили

Был куплен китайский тепловизор (Xtherm II T2S+), который подключался к смартфону. С ним в целом было всё нормально, но иногда он глючил

it works okay, but the app is sometimes buggy, crashes when changing settings, and phones home for some reason


И тут понеслось

Сначала автор расковырял приложение на Android, потом добрался до so-шки и начал разбираться с ней в Гидре (https://github.com/NationalSecurityAgency/ghidra), а так же смотреть что ещё есть в этом направлении.

Результатом всех страданий было решено допиливать своё
TL;DR I gave up on trying to patch that Android app since I am not experienced with either Android nor Java. Mainly because I found ht301_hacklib where someone ported the findings of netman in InfiCam to get the v1 of the T2S+ working in a very minimal Python script. My v2 also worked but showed a very distorted image. So I got to work figuring out how to get this to a usable state, to hopefully later make a C/C++ library/application that would allow me to make a standalone thermal camera out of a Raspberry Pi or something like that. 


Была доработана изначально взятая библиотека ht301_hacklib (патч так и не приняли, поэтому все фиксы так и живут его форке)

Далее была разобрана железка и составлено описание "кишок": курсирующие по форумам слухи, что в новых версиях изымался FPGA, не подтвердились.

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

To demonstrate this technique, I decapped an AD9042 ADC that I had in a ceramic DIP package. A Raspberry Pi Pico and a MOSFET were used to modulate the power to the chip, with the control software issuing ON/OFF commands over serial. This produced very nice results, even with a very low integration time. 

It's not only useful for silicon die debugging; it can also highlight even minute heat sources on PCBs and anything else that can be modulated, including people.


This feature allows you to use the camera in a lock-in mode. This allows for very precise measurements of hotspots on anything that can be modulated in some way. Examples include silicon dies, circuit boards, people (lock in based on heart rate) and potentially many others.


Пост полностью и с подробностями
Hacking the T2S+ Out of Fear: Get Lock-In Thermography for Free link
https://dmytroengineering.com/content/projects/t2s-plus-thermal-camera-hacking
+
GitHub
https://github.com/diminDDL/IR-Py-Thermal
Начинаем подводить итоги 🌝

Самый популярный пост
https://www.group-telegram.com/tech_b0lt_Genona.com/4465
Технологический Болт Генона
Начинаем подводить итоги 🌝 Самый популярный пост https://www.group-telegram.com/tech_b0lt_Genona.com/4465
Так как ко мне в личку пришло уже человек 10 с вопросом "откуда и как я это сделал", то вот

https://www.group-telegram.com/telemetr_me/985

В прошлые года большинство, из того что я видел, делали через @TGStat, но в этом году бот их не алё 🌝
Пятница!

Проект 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://www.group-telegram.com/tech_b0lt_Genona.com/4357
README новогоднее
100% понимания, 0% осуждения

https://github.com/microsoft/markitdown
This media is not supported in your browser
VIEW IN TELEGRAM
Опубликован первый тестовый выпуск 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 сайтов)
Помните прошлогоднюю историю из Польши, когда наняли "хакеров", чтобы разобраться почему поезда "ломались" внезапно? Это были "закладки" программистов.

Тем кто пропустил вот текстом
https://www.group-telegram.com/tech_b0lt_Genona.com/4158
а вот доклад с Chaos Communication Congress
https://www.group-telegram.com/tech_b0lt_Genona.com/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, но они куда-то пропали. Если кто знает, где их достать, то скиньте в личку или в комменты, пожалуйста 🌝
Технологический Болт Генона
С наступающим новым годом, дорогие подписчики и подписчицы! ❤️ В этом году решил без башизма, собрал простой видос из говна и палок болтов и гаек 🌝 Размещение текста через 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
Технологический Болт Генона
Мы дожили до новой фракции в HoMM III - Фабрика! Качать тут https://h3hota.com/ru/download Спасибо ребятам из HoTA Crew за такой офигенный новогодний подгон!
Media is too big
VIEW IN TELEGRAM
Умеют ребята из HoTA Crew (@h3hota) делать подарки на новый год.

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

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

Команде удачи в разработке и доработке, ну а мы ждём, когда его зарелизят.
Отличная новость, обожаю эти соревнования

После четырёхлетнего перерыва объявлено о возобновлении конкурса 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
Статический анализ 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 😎
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
2025/01/08 01:09:07
Back to Top
HTML Embed Code: