Первый слайд презентации: Реверсинг в Binary Ninja
Специалист отдела анализа приложений в Positive Technologies Георгий Зайцев * скачайте файлом, чтобы полноценно посмотреть с видосами
Слайд 2: Немного истории
Краткая история выхода новых мажорных версий https://binary.ninja/changelog/ — полная история изменений 2
Слайд 5: Dev и Stable
Есть два «канала обновлений» Stable — все стабильные релизы Dev — N последних 5
Слайд 7: BNIL
Свой набор промежуточных языков Tree based Высокоуровневый анализ не зависит от конкретного языка ассемблера BNIL 7 https://docs.binary.ninja/img/BNIL.png
Слайд 8: LLIL (Low Level IL)
Самый «простой» из имеющихся языков 139 инструкций Для добавления новой архитектуры необходимо реализовать трансляцию из asm в LLIL 8 https://github.com/withzombies/bnil-graph
Слайд 10: MLIL (Medium Level IL)
Упрощенное представление 136 инструкций DataFlow API Переменные Типы 10 https://github.com/withzombies/bnil-graph
Слайд 13: HLIL (High Level IL)
« Декомпилированное » представление 1 22 инструкции Циклы Свитчи Блоки 13 https://github.com/withzombies/bnil-graph
Слайд 19: IDA Pro Decompilation
Появился давно Используется только один IR Возможности добавлять свои архитектуры нет (на данный момент) 19 https://www.hex-rays.com/wp-content/uploads/2019/12/recon2018.ppt
Слайд 22: Workflow
Появились в версии 3.0 Позволяет встраиваться в процесс анализа в произвольное место Можем удалять и добавлять инструкции Инлайнинг функций 22
Слайд 24: Workflow: пример
24 https://www.lodsb.com/binary-ninja-workflows-fixing-branch-obfuscation
Слайд 25: Workflow: пример
25 https://www.lodsb.com/binary-ninja-workflows-fixing-branch-obfuscation
Слайд 26: Workflow
26 https://www.lodsb.com/binary-ninja-workflows-fixing-branch-obfuscation
Слайд 27: Workflow: пример
27 https://www.lodsb.com/binary-ninja-workflows-fixing-branch-obfuscation
Слайд 29: IDA Pro: анализ на уровне декомпилятора
29 Можно ставить свои хуки и менять сгенерированный AST В какой-то момент появилась возможность ставить хуки для работы с микрокодом https://blog.ret2.io/2020/07/22/ida-pro-avx-decompiler/
Слайд 31: Плагины
31 Есть встроенный менеджер плагинов Официальные и неофициальные
Слайд 34: Архитектуры
34 10 «официальных» архитектур Добавить новую «сравнительно» несложно Архитектуры открыты До открытия исходных кодов была возможность вносить изменения в логику через т.н. ArhitectureHooks
Слайд 37: Архитектуры
37 Плагин для SUBLEQ sub [A], [B], C mem[B] = mem[B] – mem[A]; if (C !=0 && mem[B] <=0) goto C; https://blog.ret2.io/2017/10/17/untangling-exotic-architectures-with-binary-ninja/
Слайд 46: Синхронизация типов между базами
46 https://github.com/rigmar/ida_type_storage
Слайд 51: Проекты
51 Позволяет объединить исполняемые файлы и библиотеки в одном месте
Слайд 53: Проекты
53 Можно по клику на функцию перейти в базу с нужной функцией Но работает не так гладко как хотелось бы
Слайд 62: User Informed Data Flow
62 Позволяет указать значение переменной, которое будет использовано в процессе анализа Constant PossibleValueSet
Слайд 67: Работа с UI
67 В IDA можно повесить свой хук на нажатие мышки или клавиатуры Тут пока так нельзя Но можно повесить выполнение скрипта по нажатию клавиши
Последний слайд презентации: Реверсинг в Binary Ninja: Полезные ссылки
https://binary.ninja/ https://blog.trailofbits.com/category/binary-ninja/ https://www.politesi.polimi.it/retrieve/17e4c202-4d63-43f1-97d9-84a925bb9130/2023_05_Falvo.pdf https://www.lodsb.com/ https://blog.ret2.io/ Полезные ссылки 93