Все потоки
Поиск
Написать публикацию
Обновить
173

Реверс-инжиниринг *

Расковырять и понять как работает

Сначала показывать
Порог рейтинга
Уровень сложности

Фаззинг Linux через WTF

Время на прочтение8 мин
Количество просмотров4.6K

Недавно появился фаззер What The Fuzz, который (кроме названия) интересен тем, что это:


  • blackbox фаззер;
  • snapshot-based фаззер.

То есть он может исследовать бинарь без исходников на любом интересном участке кода.


Например, сам автор фаззера натравил WTF на Ida Pro и нашел там кучу багов. Благодаря подходу с snapshot'ами, WTF умеет работать с самыми тяжелыми приложениями.


Ключевые особенности WTF, на которые стоит обратить внимание:


  • работает только с бинарями под x86;
  • запустить фаззинг можно и на Linux, и на Windows;
  • исследуемым бинарем может быть только бинарь под Windows.

Получается, нельзя фаззить ELF?


На самом деле, можно. Просто нет инструкции, как сделать snapshot для Linux. Все-таки главная мишень — это программы для Windows.


Эта статья появилась из желания обойти это ограничение.

Читать дальше →

Как пропатчить ОС 1996 года с помощью Ghidra

Время на прочтение7 мин
Количество просмотров12K

Не так давно автор материала работал над сложной головоломкой: как пропатчить операционную систему сэмплового синтезатора 1996 года Kurzweil K2500. О путешествии автора в старый код музыкального инструмента рассказываем к старту курса по разработке на C++.

Читать далее

Как я программу на вирусы проверял

Время на прочтение5 мин
Количество просмотров12K

Поводом для написания данной статьи послужил диалог в одном телеграмном чате. Кто-то выложил программу для "уникализации" файлов путем изменения хэша MD5, а другой бдительный участник чата проверил ее на Virustotal и из-за двух положительных (и 68 отрицательных) результатов обвинил программу в наличии недекларированных функций, в том числе даже в краже паролей от различных аккаунтов, а всех установивших ее - в "излишках" ума. Увещевания его и рассказ о возможных ложноположительных срабатываниях не дали желаемого результата, беседа перестала быть конструктивной и затухла.

Читать далее

Изучение структуры файла с цифрового кардиографа, извлечение и анализ данных кардиограммы

Время на прочтение7 мин
Количество просмотров5.6K

Четыре года назад я уже писал статью на тему обработки кардиограммы. Тогда я показал, как можно перевести бумажную кардиограмму в цифровой формат PCM данных, отрыв затем её в звуковом редакторе. Мне было интересно воспроизвести, послушать и оценить, как это будет звучать. В этот раз предстоит не менее интересная задача. Необходимо разобраться в структуре файла кардиограммы, переписанного с цифрового кардиографа, и извлечь из него всю информацию о кардиограмме в понятном для пользователя виде.

Читать далее

Как отобрать у микроконтроллера QN902x его прошивку

Время на прочтение7 мин
Количество просмотров18K

Когда у меня появился умный чайник Xiaomi Mi Smart Kettle Pro - у меня возник тот же вопрос, что и у многих его пользователей: почему его нельзя включить удаленно? Чайник позволяет подключиться к нему через блютуз, задать температуру которую он будет поддерживать и еще пару незначительных параметров, но его невозможно удаленно включить, что нивелируют его ценность как компонента умного дома.

Читать далее

Ленивый Reverse Engineering — Часть 2

Время на прочтение4 мин
Количество просмотров7.1K

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

эмуляторы
библиотеки для разбора форматов файлов
интерактивные дизассемблеры
документация
динамическая инструментация

Читать далее

Как мы кикшеринг взломали

Время на прочтение4 мин
Количество просмотров42K

В этой статье я поведаю вам кейс о взломе одного из крупнейших сервисов шеринга самокатов путем подмены TLS сертификатов и использования Python и mitmproxy.

Читать далее

Ленивый Reverse Engineering

Время на прочтение4 мин
Количество просмотров8.2K

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

Читать далее

Импортозамещение W катодов для сканирующих электронных микроскопов

Время на прочтение2 мин
Количество просмотров14K

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

Читать далее

Static Reverse engineering для web

Время на прочтение5 мин
Количество просмотров4K

Львиная доля всех статей, которые посвящены вопросу обратной разработки посвящены темам анализа низкоуровневого представления приложений и работы прошивок устройств. Только ли в этих областях можно применять подходы, которые использует обратная разработка? Попробуем разобраться на примере веб-приложения. Причем для разбора приложения мы даже не будем его запускать.

Читать далее

Извлечение истории воспроизведения из медиабиблиотеки проигрывателя Winamp

Время на прочтение20 мин
Количество просмотров3.4K
Давным-давно, когда не было современных гаджетов и интернетов, большинство пользователей компьютеров слушали музыку «оффлайн» при помощи различных проигрывателей. Один из самых популярных и распространённых – Winamp.
Читать дальше →

Дружим BeamNG и частичку Гранты

Время на прочтение26 мин
Количество просмотров14K

Многим знакомо удовольствие от игры в реалистичные автосимуляторы, например, BeamNG с его продвинутой физикой мягких тел. Наматывание на столбы становится еще увлекательнее, если удалось найти 3D-модель собственного автомобиля.

Но что делать, если хочется пойти еще дальше и подключить реальную панель приборов к BeamNG?

Читать далее

AccessUSB: «флешка всевластия» для телевизоров LG

Время на прочтение7 мин
Количество просмотров53K

Многие современные телевизоры имеют скрытые сервисные меню, через которые можно посмотреть и изменить различные параметры, недоступные в обычном пользовательском меню. В телевизорах LG есть 2 основных сервисных меню - InStart и EzAdjust, которые можно вызвать посылкой "секретных" ИК кодов, отсутствующих на обычном пульте. Подробности о том, как открыть эти меню, легко найти в интернете, не буду на этом останавливаться, один из вариантов - в этой статье. К сожалению, многие интересные опции в сервисных меню были недоступны для изменения.

В меню InStart меня заинтересовала строка Access USB Status. Гугление не давало никакой информации о том, что это за Access USB, но интуиция подсказывала, что это что-то интересное.

Читать далее

Ближайшие события

Как написать драйвер GPU в open source без реального оборудования

Время на прочтение9 мин
Количество просмотров5.8K

Спустя шесть месяцев реверс-инжиниринга новые GPU Arm «Valhall» (Mali-G57, Mali-G78) получили свободные и опенсорсные драйверы Panfrost. Благодаря новому компилятору, патчам драйверов и хакингу ядра эти новые GPU почти готовы к переносу в основную ветку.

В 2021 году не существовало устройств Valhall, способных запускать основную ветвь Linux. Хотя отсутствие устройств являлось очевидным препятствием для разработки драйверов устройств, нет более подходящего времени для написания драйверов, чем момент, когда оборудование ещё не добралось до конечных пользователей. Разработка и распространение драйверов уровня качества продакшена требует времени, а мы не хотели, чтобы пользователям пришлось полагаться на блобы с закрытыми исходниками. Если разработку не начать до того, как устройство попадёт на прилавки магазинов, то к выпуску готовых открытых драйверов это устройство может уже достигнуть конца срока своей жизни. Но имея преимущество по времени, мы можем выпустить драйверы уже к моменту, когда устройства попадут к конечным пользователям.

В статье я расскажу, как нам это удалось.
Читать дальше →

Компьютер заBIOSает? Изучаем буткиты

Время на прочтение8 мин
Количество просмотров10K

Самый популярный совет в случае, если что-то идет не так или работает медленно, ― перезагрузить компьютер. Вторая по популярности рекомендация ― переустановить ОС, чтобы избавиться от вирусов. Если не помогает ни первое, ни второе, то вам «повезло»: ваш компьютер инфицирован вредоносным ПО опаснейшего класса, которое называется буткит.

Мы начали погружение в тему буткитов и рассмотрели обширную группу так называемых legacy-буткитов (подробнее об этом рассказали на вебинаре от команды PT Expert Security Center «Компьютер заBIOSает? Изучаем буткиты»). Ответили на вопрос, почему вредоносы, нацеленные на системы на базе Legacy BIOS, все еще актуальны, поговорили о наиболее известных представителях буткитов, а также рассказали, как они работают, какие преследуют цели и применяют техники.

Читать далее

Добавление функции передачи в SDR# с HackRF

Время на прочтение2 мин
Количество просмотров12K

Эта библиотека добавляет возможность использования HackRF One, совместно с приложением SDR#, в качестве трансивера. Это реализовано внедрением промежуточного слоя между SDR# и библиотекой HackRF.DLL, который подготовлен с таким же интерфейсом, что и стандартная библиотека HackRF.DLL. При этом добавлена форма и несколько функций для формирования сигнала и модуляции в него звука из микрофона. Пока реализована только частотная модуляция.

После установки данного дополнения, при запуске SDR# и выборе HackRF, будет открываться дополнительно окно, позволяющее переключать HackRF в режим передачи.

Читать далее

Изменения в эмуляторе Dolphin с ноября по январь

Время на прочтение37 мин
Количество просмотров4.1K

В этом году мы достигли важной цели, к которой стремились почти десяток лет. В конце 2012 года Sonicadvance1 начал работать над ARM JIT эмулятора Dolphin. В те времена не существовало ни единого устройства, имевшего хотя бы малейшие надежды на работу Dolphin близко к полной скорости, но на самом деле не это было его задачей. Он лишь пытался проверить, можно ли это сделать; проект казался интересным и сложным. Однако с течением времени идея становилась чем-то большим, чем удовлетворение собственного любопытства. Пользователи с радостью донатили на покупку самого современного оборудования, позволяющего оставаться на переднем крае быстро эволюционирующей экосистемы, что позволило ARM-разработке развиваться. К 2015 году Sonicadvance1 поразил разработчиков и сообщество видеозаписью режима time trial игры Mario Kart: Double Dash!!, работающего почти на полной скорости.


Мы прошли долгий путь.

Теперь мы с радостью готовы сообщить, что AArch64 JIT эмулятора Dolphin достиг по количеству поддерживаемых функций возможностей x86-64 JIT. Это означает, что каждая команда PowerPC, поддерживаемая x86-64 JIT наряду с каждой важной функцией JIT, теперь поддерживается и в AArch64 JIT! И это отличное время для ARM целом — каждое поколение процессоров расширяет границы возможного, а Apple и другие компании используют эту архитектуру в своих больших и мощных устройствах наподобие линейки M1 Mac. Пользователям мобильных телефонов и планшетов Adreno обеспечивает достаточно приличные графические драйверы, чтобы добиться вполне приемлемого игрового процесса. После устранения несколько дней назад критически важного «бутылочного горлышка» производительность GPU Adreno взлетела до небес.
Читать дальше →

Карты, фаззинг, OSM: ищем поверхность атаки для сложного приложения

Время на прочтение13 мин
Количество просмотров4.2K

Фаззинг - это такое тестирование, в котором не надо придумывать тесткейсы, потому что умная машина (или настойчивый алгоритм перебора) делает это за вас.

Но с фаззингом есть одна неприятность - непонятно, как тестировать любую достаточно сложную систему. Мы бы хотели генерировать много тестов и быстро прогонять их, а в итоге приходится каждый раз откатывать состояние окружения, потому что программа пишет что-то в БД. Или входные данные настолько сложны, что их так просто не нагенерируешь.

Поэтому попробуем разобраться, как программу можно делить на части. А также определять, какие части нам нужны, а какие не очень.

Читать далее

Уязвимости в системе лицензирования J-Link, или Почему так важно исследовать безопасность устройств

Время на прочтение10 мин
Количество просмотров17K

Бреши в устройствах не всегда можно закрыть, в отличие от уязвимостей в софте. Однако это не повод для фрустрации! Исследовать безопасность IoT, телефонов, планшетов, блоков управления и т. д. все равно нужно. По крайней мере, можно предупредить пользователей об уязвимостях, а также устранить недостатки в новых версиях продуктов.

Мы с командой покопались в одном из самых популярных отладчиков для микроконтроллеров — J-Link. В результате нашли уязвимости в его системе лицензирования, которые позволяют за несколько секунд превратить бюджетную версию устройства в дорогую. 

Читать далее

Как графический формат прошлого века привёл к zero-click exploit в iOS

Время на прочтение11 мин
Количество просмотров20K

Тема информационной безопасности в сфере интересов команды М.Видео и Эльдорадо, поэтому делимся с вами очередным интересным переводным тематическим материалом. В начале 2022 года Citizen Lab удалось выявить zero-click-эксплойт на основе NSO iMessage, использовавшийся для атаки на активиста из Саудовской Аравии.

В этой серии из двух постов мы впервые расскажем, как работает zero-click-эксплойт iMessage.

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

Рассматриваемая в посте уязвимость была устранена 13 сентября 2021 года в iOS 14.8 в рамках CVE-2021-30860.
Читать дальше →

Вклад авторов