Реверсинг в Binary Ninja — презентация
logo
Реверсинг в Binary Ninja
  • Реверсинг в Binary Ninja
  • Немного истории
  • Реверсинг в Binary Ninja
  • Реверсинг в Binary Ninja
  • Dev и Stable
  • Реверсинг в Binary Ninja
  • BNIL
  • LLIL (Low Level IL)
  • MLIL (Medium Level IL)
  • MLIL (Medium Level IL)
  • MLIL (Medium Level IL)
  • HLIL (High Level IL)
  • HLIL (High Level IL)
  • Реверсинг в Binary Ninja
  • Реверсинг в Binary Ninja
  • HLIL (High Level IL)
  • Реверсинг в Binary Ninja
  • Реверсинг в Binary Ninja
  • IDA Pro Decompilation
  • Ipppc – PlaidCTF 2020
  • Ipppc – PlaidCTF 2020
  • Workflow
  • Реверсинг в Binary Ninja
  • Workflow: пример
  • Workflow: пример
  • Workflow
  • Workflow: пример
  • Workflow: пример
  • IDA Pro: анализ на уровне декомпилятора
  • Реверсинг в Binary Ninja
  • Плагины
  • Плагины
  • Реверсинг в Binary Ninja
  • Архитектуры
  • Архитектуры
  • Архитектуры
  • Архитектуры
  • Автоматическое создание структуры
  • Автоматическое создание полей
  • Реверсинг в Binary Ninja
  • Работа с типами
  • Работа с типами
  • Работа с типами
  • Синхронизация типов между базами
  • Реверсинг в Binary Ninja
  • Синхронизация типов между базами
  • Поддержка специальных символов в именах
  • Реверсинг в Binary Ninja
  • Поддержка специальных символов в именах
  • Поддержка специальных символов в именах
  • Проекты
  • Реверсинг в Binary Ninja
  • Проекты
  • Проекты
  • Реверсинг в Binary Ninja
  • CPP
  • CPP
  • CPP
  • GoLang
  • GoLang
  • GoLang
  • User Informed Data Flow
  • User Informed Data Flow
  • User Informed Data Flow
  • User Informed Data Flow
  • Реверсинг в Binary Ninja
  • Работа с UI
  • Реверсинг в Binary Ninja
  • Работа с UI
  • Реверсинг в Binary Ninja
  • Реверсинг в Binary Ninja
  • Автоматизация
  • Реверсинг в Binary Ninja
  • Реверсинг в Binary Ninja
  • Реверсинг в Binary Ninja
  • Реверсинг в Binary Ninja
  • Реверсинг в Binary Ninja
  • Косяки при анализе вызовов
  • Косяки при анализе вызовов
  • Косяки при анализе вызовов
  • Реверсинг в Binary Ninja
  • Обфускация
  • Реверсинг в Binary Ninja
  • Реверсинг в Binary Ninja
  • Обфускация
  • Реверсинг в Binary Ninja
  • Реверсинг в Binary Ninja
  • Обфускация
  • Работа с прошивками
  • Работа с прошивками
  • Реверсинг в Binary Ninja
  • Реверсинг в Binary Ninja
  • Полезные ссылки
1/93

Первый слайд презентации: Реверсинг в Binary Ninja

Специалист отдела анализа приложений в  Positive Technologies Георгий Зайцев * скачайте файлом, чтобы полноценно посмотреть с видосами

Изображение слайда

Слайд 2: Немного истории

Краткая история выхода новых мажорных версий https://binary.ninja/changelog/ — полная история изменений 2

Изображение слайда

Слайд 3

Изображение слайда

Слайд 4

Изображение слайда

Слайд 5: Dev и Stable

Есть два «канала обновлений» Stable — все стабильные релизы Dev — N последних 5

Изображение слайда

Слайд 6

Изображение слайда

Слайд 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

Изображение слайда

Слайд 9: MLIL (Medium Level IL)

9 https://github.com/withzombies/bnil-graph

Изображение слайда

Слайд 10: MLIL (Medium Level IL)

Упрощенное представление 136 инструкций DataFlow API Переменные Типы 10 https://github.com/withzombies/bnil-graph

Изображение слайда

Слайд 11: MLIL (Medium Level IL)

11

Изображение слайда

Слайд 12: HLIL (High Level IL)

12

Изображение слайда

Слайд 13: HLIL (High Level IL)

« Декомпилированное » представление 1 22 инструкции Циклы Свитчи Блоки 13 https://github.com/withzombies/bnil-graph

Изображение слайда

Слайд 14

Изображение слайда

Слайд 15

Изображение слайда

Слайд 16: HLIL (High Level IL)

16

Изображение слайда

Слайд 17

Изображение слайда

Слайд 18

Изображение слайда

Слайд 19: IDA Pro Decompilation

Появился давно Используется только один IR Возможности добавлять свои архитектуры нет (на данный момент) 19 https://www.hex-rays.com/wp-content/uploads/2019/12/recon2018.ppt

Изображение слайда

Слайд 20: Ipppc – PlaidCTF 2020

20

Изображение слайда

Слайд 21: Ipppc – PlaidCTF 2020

21

Изображение слайда

Слайд 22: Workflow

Появились в версии 3.0 Позволяет встраиваться в процесс анализа в произвольное место Можем удалять и добавлять инструкции Инлайнинг функций 22

Изображение слайда

Слайд 23

23

Изображение слайда

Слайд 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

Изображение слайда

Слайд 28: Workflow: пример

28

Изображение слайда

Слайд 29: IDA Pro: анализ на уровне декомпилятора

29 Можно ставить свои хуки и менять сгенерированный AST В какой-то момент появилась возможность ставить хуки для работы с микрокодом https://blog.ret2.io/2020/07/22/ida-pro-avx-decompiler/

Изображение слайда

Слайд 30

Изображение слайда

Слайд 31: Плагины

31 Есть встроенный менеджер плагинов Официальные и неофициальные

Изображение слайда

Слайд 32: Плагины

32

Изображение слайда

Слайд 33

Изображение слайда

Слайд 34: Архитектуры

34 10 «официальных» архитектур Добавить новую «сравнительно» несложно Архитектуры открыты До открытия исходных кодов была возможность вносить изменения в логику через т.н. ArhitectureHooks

Изображение слайда

Слайд 35: Архитектуры

35

Изображение слайда

Слайд 36: Архитектуры

36

Изображение слайда

Слайд 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/

Изображение слайда

Слайд 38: Автоматическое создание структуры

38

Изображение слайда

Слайд 39: Автоматическое создание полей

39

Изображение слайда

Слайд 40

Изображение слайда

Слайд 41: Работа с типами

41

Изображение слайда

Слайд 42: Работа с типами

42

Изображение слайда

Слайд 43: Работа с типами

43

Изображение слайда

Слайд 44: Синхронизация типов между базами

44

Изображение слайда

Слайд 45

Изображение слайда

Слайд 46: Синхронизация типов между базами

46 https://github.com/rigmar/ida_type_storage

Изображение слайда

Слайд 47: Поддержка специальных символов в именах

47

Изображение слайда

Слайд 48

Изображение слайда

Слайд 49: Поддержка специальных символов в именах

49

Изображение слайда

Слайд 50: Поддержка специальных символов в именах

50

Изображение слайда

Слайд 51: Проекты

51 Позволяет объединить исполняемые файлы и библиотеки в одном месте

Изображение слайда

Слайд 52

Изображение слайда

Слайд 53: Проекты

53 Можно по клику на функцию перейти в базу с   нужной функцией Но работает не так гладко как хотелось бы

Изображение слайда

Слайд 54: Проекты

54

Изображение слайда

Слайд 55

Изображение слайда

Слайд 56: CPP

56

Изображение слайда

Слайд 57: CPP

57

Изображение слайда

Слайд 58: CPP

58

Изображение слайда

Слайд 59: GoLang

59

Изображение слайда

Слайд 60: GoLang

60

Изображение слайда

Слайд 61: GoLang

61

Изображение слайда

Слайд 62: User Informed Data Flow

62 Позволяет указать значение переменной, которое будет использовано в процессе анализа Constant PossibleValueSet

Изображение слайда

Слайд 63: User Informed Data Flow

63

Изображение слайда

Слайд 64: User Informed Data Flow

64

Изображение слайда

Слайд 65: User Informed Data Flow

65

Изображение слайда

Слайд 66

Изображение слайда

Слайд 67: Работа с UI

67 В IDA можно повесить свой хук на нажатие мышки или клавиатуры Тут пока так нельзя Но можно повесить выполнение скрипта по   нажатию клавиши

Изображение слайда

Слайд 68

Изображение слайда

Слайд 69: Работа с UI

69

Изображение слайда

Слайд 70

Изображение слайда

Слайд 71

Изображение слайда

Слайд 72: Автоматизация

72

Изображение слайда

Слайд 73

73

Изображение слайда

Слайд 74

Изображение слайда

Слайд 75

Изображение слайда

Слайд 76

76

Изображение слайда

Слайд 77

Изображение слайда

Слайд 78: Косяки при анализе вызовов

78

Изображение слайда

Слайд 79: Косяки при анализе вызовов

79

Изображение слайда

Слайд 80: Косяки при анализе вызовов

80

Изображение слайда

Слайд 81

Изображение слайда

Слайд 82: Обфускация

82

Изображение слайда

Слайд 83

Изображение слайда

Слайд 84

Изображение слайда

Слайд 85: Обфускация

85

Изображение слайда

Слайд 86

Изображение слайда

Слайд 87

Изображение слайда

Слайд 88: Обфускация

88

Изображение слайда

Слайд 89: Работа с прошивками

89

Изображение слайда

Слайд 90: Работа с прошивками

90

Изображение слайда

Слайд 91

Изображение слайда

Слайд 92

Изображение слайда

Последний слайд презентации: Реверсинг в 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

Изображение слайда

Похожие презентации

Ничего не найдено