Telegram Group Search
#itsec

Uncovering GStreamer secrets

TL;DR: чел написал кастомный генератор начальных данных для фаззера и нашёл 29 новых потенциальных уязвимостей в GStreamer.

Фаззинг программ, разбирающих медиа-форматы, затруднителен тем, что готовые медиа-файлы слишком большие, чтобы эффективно использовать фаззинг, поскольку фаззеры обычно применяют побайтовые мутации к входным данным. Конкретно в случае с MP4 проблема усугубляется строением формата. Именно, файл MP4 состоит из нескольких box-ов, которые могут быть вложенными, и каждый из них начинается с заголовка, который включает в себя размер всего box-а. Если фаззер применяет мутацию, которая вставляет новые данные, он не в состоянии одновременно также и скорректировать размеры в нужных местах.

В статье описан алгоритм для генерирования случайных MP4-файлов. Коротко:

* создаётся случайное дерево, описывающее вложенные box-ы
* по узлам раскидываются теги
* листья дерева получают случайные размеры, размер остальных подсчитывается из суммы вложенных
* для каждого узла генерируются случайные данные в рамках выбранных размеров
* итоговое дерево сериализуется

К сожалению, из статьи непонятно, написал ли автор только генератор тестовых данных или ещё и мутатор.

Сами найденные ошибки, кстати, все типичные сишные: OOB-чтение/запись, разыменовывания NULL-указателей и даже одно use after free.
#meme про пододеяльник
#ml

Про новые средства обхода блокировок нежелательных промптов в LLM

https://www.group-telegram.com/tech_b0lt_Genona/4885
Forwarded from Weird Street Signs
Forwarded from Neural Machine
Сейчас мы можем делать все, что захотим, но скоро Бог будет судить нас.
Еще про проклятые фичи баша

https://yossarian.net/til/post/some-surprising-code-execution-sources-in-bash

tl;dr: вот эта функция на баше при передаче «правильного» аргумента может привести к выполнению произвольного кода:
function guess() {
num="${1}"
if [[ "${num}" -eq 42 ]]
then
echo "Correct"
else
echo "Wrong"
fi
}


Мораль проста: не пишите на баше не передавайте в bash-скрипты недоверенные данные
⚡️Хочешь крутить слоты 🎰 ПРЯМО В TELEGRAM? 💎🥵🥵

Если да, то... Что с тобой, блин, не так?
https://www.ryanliptak.com/blog/every-rc-exe-bug-quirk-probably/

Не знаю, как вы, а я просто обожаю такие посты.

Здесь автор попытался написать альтернативную реализацию компилятора ресурсов Windows. Это программа, которая принимает текстовый .rc файл с описанием менюшек, кнопочек, окошек, иконок, курсоров и прочего, и компилирует это описание в бинарный .res файл, который потом встраивается в бинарник приложения под Windows.

Альтернативных реализаций компилятора ресурсов много, но у автора была цель, которой не добивались остальные: написать все на новом модном современном Zig как можно точнее сохранить совместимость с оригинальной версией от Microsoft, вплоть до багов и незадокументированного поведения.

Как достичь этой цели? Например, можно написать код, а затем пофаззить оригинальную реализацию с альтернативной и найти, на каких данных они выдают разные результаты. В результате этого процесса автор нашел горы странного поведения в компиляторе ресурсов от Microsoft.

Пост длинный; если хотите посмотреть только самое интересное, можно поискать по странице по словам utterly baffling. Если же у вас много времени и вам не лень, можно прочесть и все :)
#prog #article

Bunnyhopping from the Programmer's Perspective

Или про то, как реализовать багофичу "банни-хопинг" в коде
#prog #article#performancetrap, видимо?)

The RAM myth (перевод)

Или о оптимизационных трюках, которые позволяют шардировать данные в RAM значительно быстрее наивного подхода (спойлер: они лучше утилизируют кэш). Бенчмарки наглядно показывают, насколько неадекватным является представление о RAM как о линейной памяти с константным доступом.
I want to give you
Anonymous Poll
17%
an ear
49%
a hand
34%
a head
2025/01/02 05:23:20
Back to Top
HTML Embed Code: