Думать как компилятор - Обфускация с другой стороны

Из RE//verse 2026 смотрите ключевое выступление Лори Кирк "Думай как компилятор": "Запутывание с другой стороны" Слайды выступления: https://github.com/LaurieWired/REverseKeynote2026 У реверс-инженеров все наоборот. Вы боретесь с компилятором, не понимая, как он борется. Самые опытные инженеры по обфускации и программисты разбираются в скомпилированных приложениях на уровне ввода. Они пишут LLVM-проходы, которые вставляют сглаживающие поток управления и непрозрачные предикаты непосредственно в сборку. Они внедряют Rust до того, как у сообщества RE появятся инструменты для этого. Они разрабатывают пользовательский байт-код виртуальной машины, который никогда не будет поддерживаться ни одним декомпилятором. Есть соблазн перейти непосредственно к скомпилированному двоичному файлу, но лучший способ избежать преобразования - написать его самостоятельно. В этом докладе мы перестанем рассматривать двоичный файл как черный ящик и начнем рассматривать компилятор как хирургический инструмент. Мы создаем методы обфускации, враждебной оптимизации и настройки LLVM с нуля. Используя Compiler Explorer, C++ Insights и BinDiff, каждый метод сопоставляется с исходным кодом, сборкой и декомпилированным двоичным файлом. Перестаньте гадать о результатах. Осваивайте входные данные.

Иконка канала Сергей Киркоров
975 подписчиков
12+
46 просмотров
8 дней назад
12+
46 просмотров
8 дней назад

Из RE//verse 2026 смотрите ключевое выступление Лори Кирк "Думай как компилятор": "Запутывание с другой стороны" Слайды выступления: https://github.com/LaurieWired/REverseKeynote2026 У реверс-инженеров все наоборот. Вы боретесь с компилятором, не понимая, как он борется. Самые опытные инженеры по обфускации и программисты разбираются в скомпилированных приложениях на уровне ввода. Они пишут LLVM-проходы, которые вставляют сглаживающие поток управления и непрозрачные предикаты непосредственно в сборку. Они внедряют Rust до того, как у сообщества RE появятся инструменты для этого. Они разрабатывают пользовательский байт-код виртуальной машины, который никогда не будет поддерживаться ни одним декомпилятором. Есть соблазн перейти непосредственно к скомпилированному двоичному файлу, но лучший способ избежать преобразования - написать его самостоятельно. В этом докладе мы перестанем рассматривать двоичный файл как черный ящик и начнем рассматривать компилятор как хирургический инструмент. Мы создаем методы обфускации, враждебной оптимизации и настройки LLVM с нуля. Используя Compiler Explorer, C++ Insights и BinDiff, каждый метод сопоставляется с исходным кодом, сборкой и декомпилированным двоичным файлом. Перестаньте гадать о результатах. Осваивайте входные данные.

, чтобы оставлять комментарии