LINUX.ORG.RU

Reverse engineering


31

0

Всего сообщений: 24

Релиз открытого фреймворка реверс-инжиринга Rizin 0.4.0 и его GUI Cutter 2.1.0

Группа Безопасность

Rizin – фреймворк для реверс-инжиринга, начавшийся как форк Radare2, продолживший его развитие с уклоном в большую чистоту кода, удобный API и фокусом на анализе кода без форенсики. С момента форка проект перешел на принципиально отличный механизм сохранения сессии («проектов») в виде состояния на базе сериализации. Кроме того, переработан парсер команд и их организация, в сторону большей организации и удобства.

Cutter – графическая оболочка для Rizin, написанная на Qt/C++. Cutter, как и сам Rizin, нацелен на процесс обратной разработки программ в машинном коде или байткоде (например JVM или PYC).

Для Cutter/Rizin существуют плагины декомпиляции на основе Ghidra (только С++ код, без Java), JSdec, RetDec.

В этом релизе:

  • добавлена поддержка создания сигнатур FLIRT, которые потом могут быть загружены в IDA Pro;
  • в стандартую поставку включена база стандартных сигнатур для популярных библиотек;
  • улучшено распознавание функций и строк исполняемых файлов на Go для x86/x64/PowerPC/MIPS/ARM/RISC-V;
  • новый язык промежуточного представления RzIL на базе BAP Core Theory (SMT-подобный язык);
  • добавлена возможность авто-определения базового адреса для «сырых» файлов;
  • поддержка загрузки в отладочном режиме «слепков» памяти на базе Windows PageDump/Minidump форматов;
  • улучшена работа с удаленными отладчиками на базе WinDbg/KD.

На данный момент на новый RzIL переведена поддержка архитектур ARMv7/ARMv8, AVR, 6052, brainfuck. К следующему релизу планируется завершить SuperH, PowerPC, частично x86.

Также дополнительно выпущены:

  • rz-libyara – плагин для Rizin/Cutter для поддержки загрузки и создания сигнатур в формате Yara;
  • rz-libdemangle – библиотека расшифровки имён функций для языков C++/ObjC/Rust/Swift/Java;
  • rz-ghidra – плагин для Rizin/Cutter для декомпиляции (на базе C++ кода Ghidra);
  • jsdec – плагин для Rizin/Cutter для декомпиляции оригинальной разработки;
  • rz-retdec – плагин для Rizin/Cutter для декомпиляции (на базе RetDec);
  • rz-tracetest – утилита перекрёстной проверки корректности трансляции машинного кода в RzIL путём сравнения с трассой эмуляции (на базе QEMU, VICE).

>>> Подробности

 , , , ,

XVilka
()

Masm2c + libdosbox - тулкит для обратной разработки DOS-игр

Masm2c + libdosbox - тулкит для обратной разработки DOS-игр
Группа Разработка

Вышла первая публичная версия (0.9.6) тулкита для обратной разработки 16 битных DOS-игр: Masm2c и libdosbox.

Допустим, вы решили переписать движок старой любимой игры под ДОС или специализированного DOS-софта. Кроме того что реверс-инжиниринг сложен, задачу усложняет еще и то, что используется сегментная модель памяти (адресация за раз только 64 КБайт памяти одним сегментным регистром), прямой доступ к старому железу.

Если у вас есть бинарник с движком игры, тулкит позволяет сконвертировать его в работающий переносимый код на C++. Каждая инструкция x86 заменяется аналогичной функцией на С++ (native code). Libdosbox используется для эмуляции видео, звуковых устройств и для проверки конвертации каждой инструкции x86. Получается что-то среднее между декомпиляцией и дизассемблированием.

( читать дальше... )

>>> Подробности

 , ,

xor2003
()

Порт Lotus 1-2-3 под Linux

Группа Проприетарное ПО

Тэвис Орманди (Tavis Ormandy) выпустил бинарный патч, который модифицирует Lotus 1-2-3 для ОС UNIX System V 386, обеспечивая его работу под современным линуксом.

Началось всё с того, что Орманди из любопытства изучал дистрибутив Lotus 1-2-3 (предположительно 1990 года) под коммерческий юникс и обнаружил, необычный способ линковки исполняемого файла в формате COFF — partial linking. Как ему объяснили, такой способ позволял при желании слинковать исполняемый файл с плагинами, которые нельзя было подключить иначе, если в ОС не было dlopen().

В итоге Орманди смог написать утилиты для правки системных вызовов Unix и обёртку для их замены на вызовы Linux и слинковать всё в 32-битный ELF. Одной из крупных проблем оказалась адаптация termios. Интересно, что на старых версиях Линукса, с поддержкой callgate и lcall7/lcall27 такая адаптация прошла бы легче.

Ещё одной из проблем оказалась защита от копирования. Орманди считает себя вправе изготовить файл-ключ, обеспечивающий работу программы, так как он владеет легальной копией Lotus 1-2-3 под MS-DOS. Для остальных он приводит скриншот дизассемблера IDA и расплывчатые рекомендации, как делать такой файл. Программа не продаётся уже почти 20 лет. Да и легальных владельцев Lotus 1-2-3 в мире немало.

Тэвис Орманди — специалист по безопасности («white hat») из Гугла и энтузиаст Lotus 1-2-3. Ранее написал драйвер для MS-DOS версии Lotus, обеспечивающий её работу в окне терминала DOSEMU2 произвольного размера.

Lotus 1-2-3 — одна из первых программ электронных таблиц, отличавшаяся от конкурентов скоростью, надёжностью и удобством. Её нередко называют одной из причин коммерческого успеха платформы IBM PC в 1980-х. Поддержка Lotus долго была критерием совместимости для клонов. В 1990-х Lotus проиграла MS Excel-ю, так как GUI-версия появилась слишком поздно, и в 1995 году компанию купила IBM.

Новость на Opennet

Исходные тексты патча и утилит с инструкцией

>>> Подробное объяснение

 , ,

question4
()

Основная команда разработчиков radare2 форкнула его в новый продукт Rizin

Основная команда разработчиков radare2 форкнула его в новый продукт Rizin
Группа Разработка

Rizin — свободный и с открытым исходным кодом фреймворк для реверс-инжиниринга, включает в себя дизассемблер, эмулятор, hex-редактор, отладчик и многое другое.

Причиной форка разработчики называют стресс и неуважение, которое они испытывали при работе в сообществе сложившемся вокруг radare2, и для дальнейшего развития в сторону ценностей, которых они придерживаются, 8 декабря был создан форк и написан CoC.

Основная команда Cutter (это GUI для radare2), которая также была частью основной команды radare2, покинула radare2 и стала соучредителем Rizin. После этого Cutter переключается с radare2 на Rizin в качестве бэкэнда.

>>> Подробности

 , , ,

mydibyje
()

Kaitai Struct 0.9

Группа Open Source

Cовсем недавно вышла очередная версия Kaitai Struct 0.9 — языка описания и инструментария парсинга всевозможных бинарных форматов (например, сетевых пакетов, файлов с изображениями/аудио/видео, баз данных, архивов, контейнеров и т. д.). Несмотря на несерьезно выглядящий номер версии 0.9 — это крупный релиз, включающий в себя наработки за последние 2.5 года. За это время язык вырос до целого семейства проектов:

Язык признан GitHub и используется сейчас в более, чем 400 free / open source проектах для парсинга всевозможных экзотических форматов данных, начиная от реверс-инжиниринга файлов данных проприетарных игр, кончая разбором протоколов связи спутников.

Из основных новшеств языка 0.9 стоит выделить:

  • поддержка новых целевых языков (Python через библиотеку Construct, Nim, генерацию документации в HTML)
  • полноценную поддержку современных C++ (smart pointers, отсутствие необходимости вручную управлять памятью, исправление всех известных вариантов утечек памяти)
  • поддержку адресации вложенных типов через синтаксис вида foo::bar::baz
  • поддержку валидации прочитанных данных по описанным условиям (valid)
  • вычисление размеров статических структур данных в байтах и битах (операторы sizeof и bitsizeof)
  • формальное описание языка в виде JSON-схемы, из которой теперь генерируется документация

>>> Подробности

 , , ,

GreyCat
()

Hobbits 0.21 — визуализатор бинарных файлов для реверс-инжиниринга

Группа Разработка

4 марта увидел свет Hobbits 0.21 - инструмент для визуализации бинарных файлов в процессе реверс-инжиниринга. Инструмент написан на связке Qt и C++ и распространяется по лицензии MIT.

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

Для бинарных файлов доступные следующие виды представлений:

  • Классический шестнадцатиричный HEX-код
  • Двоичный код
  • ASCII
  • Побитная или побайтовая растеризация
  • Символьная растеризация

>>> Инструкция по работе с программой

>>> Репозиторий на GitHub

>>> Подробности

 hobbits,

Zhbert
()

Релиз Cutter 1.9.0

Группа Open Source

В рамках конференции R2con состоялся релиз Cutter 1.9.0 под кодовым названием «Trojan Dragon».

Cutter — это графическая оболочка для фреймворка radare2, написанная на Qt/C++. Cutter, как и сам radare2, предназначен для обратной разработки программ в машинном коде, или байткоде (например JVM).

( читать дальше... )

>>> Полный список изменений

 , ,

dukebarman
()

REDasm 2 — очередной аналог IDA

REDasm 2 — очередной аналог IDA
Группа Open Source

В новостях о декомпиляторе АНБ США почти затерялся другой интерактивный дизассемблер, действительно полностью открытый — REDasm.

REDasm написан на C++11, интерфейс на Qt5. Архитектура модульная, с прицелом на простое добавление новых форматов и наборов инструкций (описания в JSON). Версия 2.0 вышла 4 марта.

( читать дальше... )

Официальный сайт

>>> Версия 2.0 на Гитхабе

 ,

question4
()

Релиз открытого дизассемблера Cutter 1.7.4

Релиз открытого дизассемблера Cutter 1.7.4
Группа Безопасность

Cutter — графическая оболочка для radare2, написанная на Qt/C++. Cutter, как и сам radare2, нацелен на процесс обратной разработки программ в машинном коде, или байткоде (например JVM). Предоставляет собой наиболее активно развивающийся дизассемблер с открытым кодом.

( читать дальше... )

>>> Подробности

 , ,

XVilka
()

Kaitai Struct 0.8

Группа Open Source

После почти 8 месяцев разработки, состоялся очередной релиз Kaitai Struct 0.8 — языка описания и инструментария парсинга всевозможных бинарных форматов (например, сетевых пакетов, файлов с изображениями/аудио/видео, баз данных, архивов, контейнеров и т. д.). Как всегда, в комплекте:

  • компилятор, позволяющий из файла спецификации формата (.ksy) получить готовый исходник парсера на языках C++, C#, Java, JavaScript, Lua, Perl, PHP, Python, Ruby, а также диаграмму в формате GraphViz;
  • Web IDE для удобной разработки спецификаций с одновременным визуальным контролем;
  • библиотека форматов, насчитывающая в этом релизе уже 110 описаний

Список новшеств 0.8 довольно длинный, из основных достижений стоит отметить:

  • поддержку Lua (почти 100%), начальную поддержку Go (~15% тестов проходит);
  • поддержку переключения endianness по результатам вычислимого выражения (сильно упрощает поддержку форматов типа ELF, TIFF и т.п., которые встречаются в двух вариантах endianness)
  • параметрические типы — например, одной такой спецификацией BCD можно пользоваться самых разнообразных BCD, передавая при вызове типа параметрами число цифр, битность одной цифры и порядок их следования;
  • поддержка произвольных кастомных методов процессинга данных (расшифровка, декомпрессия и т.д.) путем подключения модуля на целевом языке программирования; в будущем планируется создание стандартных библиотек для распространенных алгоритмов сжатия, шифрования и обфускации данных;
  • возможность обращаться к индексу итерации в циклах — _index;
  • расширенные возможности документации enum'ов и кросс-ссылок;
  • у проекта появился логотип благодаря сотрудничеству с финским дизайнером Verneri Kontto

Релиз приурочен к пересечению проектом морального рубежа в 1000 stars на GitHub. Команда Kaitai благодарит всех пользующихся за доверие и поддержку и обещает, что дальше будет еще интереснее.

>>> Подробности

 , ,

GreyCat
()

Binary Analysis Platform 1.3

Группа Разработка

Binary Analysis Platform (BAP) — это платформа для обратной разработки и анализа программ, для которых недоступны их исходные коды. Поддерживается более 30 архитектур, в первую очередь x86, x86-64 и ARM. BAP работает путём дизассемблирования и перевода инструкций в RISC-подобный язык — BAP Instruction Language (BIL). Такой подход позволяет платформе анализировать код одинаково хорошо, независимо от архитектуры. Вместе с платформой поставляется набор инструментов, библиотек и плагинов. Основная цель платформы — предоставить инструментарий для автоматического анализа программ.

BAP написана на Ocaml, и это предпочтительный язык для написания средств анализа, но также имеются биндинги к C, Python и Rust.

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

  • новый загрузчик, который работает со всеми видами бинарных файлов, в том числе модулями ядер Linux и Darwin, разделяемыми библиотеками и другими представлениями программ;
  • сокращено потребление памяти;
  • Primus — фреймворк эмуляции ЦП;
  • лучшее представление программ благодаря удалению «мёртвого кода»;
  • поддержка LLVM 4.0.

>>> Исходный код на Github

>>> Подробности

 bap, ,

olibjerd
()

Конференция r2con

Группа Конференции и встречи

06-09 сентября 2017 года пройдёт второй официальный конгресс посвященный свободному кроссплатформенному фреймворку для реверс-инжиниринга radare2.

r2con будет состоять из двух дней обучения для новичков (пройдёт в Барселонском университете, Gran Via de les Corts Catalanes, 585, Spain) и двух дней докладов и хакатона (MediaPro building, Diagonal 177, Spain).

Также там будет выступать XVilka

Первого августа будет опубликован график всех выступлений, до этого времени вы можете отослать свои предложения для доклада на почту r2con@radare.org

Цена билета составляет 50 евро.

>>> Подробности

 ,

Deleted
()

Запущен сайт-каталог формальных спецификаций форматов файлов и сетевых протоколов

Группа Open Source

На базе проекта Kaitai Struct запущен сайт-каталог, собирающий информацию о всевозможных форматах файлов и сетевых протоколах.

( читать дальше... )

>>> Подробности

 , ,

GreyCat
()

Опубликованы спецификации и библиотеки для работы с новой файловой системой Apple APFS

Группа Apple

Новая файловая система APFS от Apple, поддержка которой начала появляться во всех операционных системах компании с 27 марта 2017 года, успешно разобрана известным немецким исследователем в области информационной безопасности и digital forensics Йонасом Плюмом (Jonas Plum). Опубликованы первичные спецификации и библиотеки для работы с этой файловой системой. Разбор проводился с использованием Kaitai Struct, что автоматически позволило сгенерировать библиотеки для C++, C#, Java, JavaScript, Perl, PHP, Python, Ruby.

Работа Йонаса позволит в ближайшее время реализовать поддержку APFS в ОС, отличных от macOS/iOS, с помощью FUSE.

Напомним, что файловая система APFS является новой (и до сих пор закрытой) разработкой Apple, которая в перспективе должна полностью заменить используемую сейчас по умолчанию HFS+. В качестве основных преимуществ файловой системы заявляются более оптимальная работа с flash-накопителями и SSD, гибкая поддержка шифрования, поддержка sparse-файлов, встроенные средства контроля целостности ФС и параллелизации доступа.

>>> Подробности

 , , , ,

GreyCat
()

Iaitō — графический интерфейс для radare2

Группа Open Source

Hugo Teso выложил под лицензией LGPLv3 (как и у radare2) на GitHub первую версию Iaitō — графического интерфейса для radare2, написанного на C++ с использованием графического тулкита Qt 5.3.

radare2 — это свободный кроссплатформенный фреймворк для реверс-инжиниринга, включающий дизассемблер, шестнадцатеричный редактор и анализатор кода.

Цель создания Iaitō — помочь пользователям, которым сложно начинать освоение radare2 из-за высокого порога вхождения при работе с CLI.

Релиз является тестовым и предназначен прежде всего для разработчиков и энтузиастов. Бинарные пакеты появятся вместе с первым полноценным релизом.

>>> Подробности

 , , , ,

Deleted
()

Kaitai Struct 0.7

Группа Open Source

Состоялся релиз Kaitai Struct 0.7 — языка и набора программ, предназначенных для описания и разбора всевозможных бинарных форматов (например, сетевых пакетов, файлов с изображениями/аудио/видео, баз данных, архивов, контейнеров и т. д.).

Предлагаемый комплект позволяет:

( Основные изменения )

>>> Подробности

 , ,

GreyCat
()

Kaitai Struct 0.6

Группа Open Source

Вышла новая версия Kaitai Struct — языка спецификации произвольных бинарных форматов файлов, пакетов, протоколов и т. д.

Основная идея проекта в том, что формат бинарного файла описывается один раз на языке .ksy, после чего файлы такого формата можно рассматривать в визуализаторах, получая представление о том, каким байтам соответствуют какие значения элементов формата, сгенерировать человекочитаемую диаграмму формата, а самое главное — сгенерировать готовую библиотеку парсинга такого формата на одном из 8 поддерживаемых целевых языков: C++, C#, Java, JavaScript, Perl, PHP, Python, Ruby.

( читать дальше... )

>>> Подробности

 , , ,

GreyCat
()

Radare2 1.2.0

Группа Open Source

Radare2 — это свободный кроссплатформенный фреймворк для реверс-инжиниринга, включающий дизассемблер, шестнадцатеричный редактор и анализатор кода.

( читать дальше... )

>>> Полный список изменений

 , ,

Deleted
()

Новый интерактивный учебный курс по Kaitai Struct

Группа Open Source

Сегодня увидел свет интерактивный учебный курс по языку парсинга бинарных данных Kaitai Struct.

Курс создан на базе онлайн-платформы avatao, которая известна своими учебными материалами по информационной безопасности (сетевой и web-безопасности, обратной разработки (reverse engineering), криптографии). Основное достоинство платформы заключается в том, что практика идёт на живых примерах и с настоящими инструментами: для обучающихся персонально запускаются временные виртуальные машины с примерами уязвимостей для отработки определённых техник. На avatao уже были опубликованы курсы по таким известным инструментам, как Wireshark, sqlmap, Nmap, Unicorn, John the Ripper, сегодня к их числу присоединяется Kaitai Struct (разумеется, куда более молодой и менее именитый).

Практикум создан Томашем Коцкой (Tamás Koczka) на основе его Web IDE для Kaitai Struct — интегрированной веб-среды, содержащей всё необходимое для визуальной работы с бинарными файлами: редактор исходного кода, hex viewer, средство просмотра результирующего дерева объектов, отладчик парсеров. На данный момент опубликованы 4 первых задания курса, в дальнейшем их число будет расти. Исходный код всех заданий доступен на GitHub.

>>> Официальный анонс на avatao

>>> Начать курс

 , , , ,

GreyCat
()

Kaitai Struct 0.5

Группа Open Source

После трёх месяцев разработки состоялся релиз Kaitai Struct 0.5 — языка описания форматов структур данных. Идея проекта состоит в том, что описав структуру формата файла или сетевого протокола единожды на формальном языке .ksy, можно скомплировать такое описание в исходный код парсера на любом поддерживаемом языке программирования.

( читать дальше... )

>>> Подробности

 , , ,

GreyCat
()