eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 8 октября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: Mishar_Hacker
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Софт, инструменты —› ARM thumb-2: чем декомпилировать?
Посл.ответ Сообщение

Ранг: 0.9 (гость)
Статус: Участник

Создано: 8 ноября 2017 22:48 New!
Цитата · Личное сообщение · #1

Привет всем!

Есть задача: внимательно поизучать потроха чужого бинаря под ARM Cortex-M4, thumb (возможно, с thumb-2).
Рабочая среда - винда.
Соответственно, нужен дизасм или декомпилятор в C (лучше второе, конечно).
Поискал, чем нынче народ пользуется, нашёл IDA Pro (пользовался им лет 10 назад для x86, но с тех пор не практиковался).
Что скажут спецы? Одобряете? Альтернативы есть?

PS. Цена не слишком важна, банкет за счёт фирмы.
PPS. Насчёт IDA Pro Decompiler ещё не понял, какую версию брать, там у них написано ARM32 и ARM64, но thumb-то это вообще 16 бит. А их сейлы меня убили ответом "вам надо покупать обе"


Ранг: 523.8 (!)
Статус: Участник
_Вечный_Студент_

Создано: 9 ноября 2017 00:43 · Поправил: plutos New!
Цитата · Личное сообщение · #2

DarkThunder пишет:
thumb-то это вообще 16 бит


ну так возьми старую IDA'у (Ida 5)

Ранг: 43.7 (посетитель)
Статус: Участник

Создано: 9 ноября 2017 08:15 New!
Цитата · Личное сообщение · #3

DarkThunder, IDA 7 и пользуюсь . Рою стм32 и Cortex-M4 и M3 .
Hex rays работает только в IDA 32 ...

Ранг: 0.9 (гость)
Статус: Участник

Создано: 9 ноября 2017 09:45 · Поправил: DarkThunder New!
Цитата · Личное сообщение · #4

dosikus пишет:
Hex rays работает только в IDA 32 ...

Вот это не понял. Речь о Decompiler?

И на всякий случай уточню: thumb-код приходилось декомпилять в C?

Ранг: 43.7 (посетитель)
Статус: Участник

Создано: 9 ноября 2017 11:15 · Поправил: dosikus New!
Цитата · Личное сообщение · #5

DarkThunder, Cortex-M4 и M3 ARM7-M thumb-2 .




Ранг: 0.9 (гость)
Статус: Участник

Создано: 9 ноября 2017 13:21 New!
Цитата · Личное сообщение · #6

Так набор инструментов какой?
IDA Pro + Decompiler ARM32?


Ранг: 1013.4 (!!!!)
Статус: Участник

Создано: 9 ноября 2017 13:43 New!
Цитата · Личное сообщение · #7

кончайте демагогию разводить
что мешает пойти в гугле найти IDA Pro 7.0 + HEXARM64 + HEXARM + HEXX64 + HEXX86 (WIN + MAC)
стянуть и пользовать ?
или пойти по ссылкам и найти
https://exelab.ru/f/index.php?action=vthread&forum=3&topic=24885&page=3

Ранг: 0.9 (гость)
Статус: Участник

Создано: 9 ноября 2017 15:27 New!
Цитата · Личное сообщение · #8

В чём демагогия? Я задал пару простых вопросов. На один я ответ получил, спасибо. Осталось понять, что дословно сказать отделу закупки.
Стянуть и пользовать мешает корпоративный запрет на использование нелицензионного софта.


Ранг: 1013.4 (!!!!)
Статус: Участник

Создано: 9 ноября 2017 15:31 New!
Цитата · Личное сообщение · #9

омг
в домашних условиях стянуть, проверить, и дальше дать правильную отмашку отделу закупки кто мешает ?

Ранг: 0.0 (гость)
Статус: Участник

Создано: 9 ноября 2017 15:34 New!
Цитата · Личное сообщение · #10

DarkThunder пишет: пользовать мешает корпоративный запрет на использование нелицензионного софта.

Есть открытые и триальные декомпиляторы, хотя до рельс им далеко.
Вот триальный, на мелкие проекты достаточно.
https://retdec.com/decompilation/
Остальное на гхабе ищите.


Ранг: 1013.4 (!!!!)
Статус: Участник

Создано: 9 ноября 2017 15:38 New!
Цитата · Личное сообщение · #11

ретдек кстати в декабре разрабы обещают за опенсорсить
видимо надоело возиться с клангом

Ранг: 0.0 (гость)
Статус: Участник

Создано: 9 ноября 2017 15:49 New!
Цитата · Личное сообщение · #12

reversecode пишет: видимо надоело возиться с клангом

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


Ранг: 1013.4 (!!!!)
Статус: Участник

Создано: 9 ноября 2017 15:51 New!
Цитата · Личное сообщение · #13

лучше чем рейс оно не будет
но для архитектур которые рейс еще не поддерживает, сойдет

Ранг: 0.0 (гость)
Статус: Участник

Создано: 9 ноября 2017 15:58 New!
Цитата · Личное сообщение · #14

reversecode пишет: лучше чем рейс оно не будет

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


Ранг: 1013.4 (!!!!)
Статус: Участник

Создано: 9 ноября 2017 16:10 New!
Цитата · Личное сообщение · #15

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

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

Ранг: 0.0 (гость)
Статус: Участник

Создано: 9 ноября 2017 16:25 New!
Цитата · Личное сообщение · #16

reversecode пишет: книга дракона по компиляторам, написана не ильфаком

Конечно, но в каком именно месте она применима? Она к декомпиляции имеет отношение чуть более чем никакого.

reversecode пишет: в данном случае ретдек использует ядро кланга, а кланг использует более оптимизированое ядро для графов
на этом все и заканчивается


Нет не так, clang это промежуточный язык отдающий ast, анализирующий граф это пользовательская задача, то есть то, что выходит за приделы его родного оптимизатора который может поскипать лишь мертвый код, да и то в разумных пределах. Второй момент, по llvm в целом и clang в частности есть куча статей и полноценная литература по внутренней кухне.

reversecode пишет: а нужно на этот выхлоп натягивать кастомные структуры, манипулировать ими итд
никто кроме рейса это не умеет


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

reversecode пишет: а произвести реверс инжиниринг всего приложения можно только используя рейс

Рельсы без IDA такой же шлак, все настройки, распознание сигнатур, пользовательские типы, это все IDA, рельсы только подхватывают эти данные. Мне как то нужно было добавить одну ерунду в рельсы и вот ast рельс далеко не образец совершенства из палаты мер и весов, довольно корявая архитектура, и парсить это добро отдельное удовольствие.


Ранг: 1013.4 (!!!!)
Статус: Участник

Создано: 9 ноября 2017 16:34 New!
Цитата · Личное сообщение · #17

ну если вы не в курсе причем здесь книга дракона, то дальше нет смысла продолжать

Ранг: 0.0 (гость)
Статус: Участник

Создано: 9 ноября 2017 16:39 New!
Цитата · Личное сообщение · #18

reversecode пишет: ну если вы не в курсе причем здесь книга дракона, то дальше нет смысла продолжать

Я как раз в курсе, потому что читал. Но от Кормена в данной задаче больше пользы, учитывая, что в книге дракона львиная доля отведена вещам далеким от задач на графах.

Ранг: 43.7 (посетитель)
Статус: Участник

Создано: 9 ноября 2017 20:41 New!
Цитата · Личное сообщение · #19

DarkThunder пишет:

Так набор инструментов какой?

А чип то какой?

Ранг: 56.9 (постоянный)
Статус: Участник

Создано: 9 ноября 2017 20:52 New!
Цитата · Личное сообщение · #20

PPS. Насчёт IDA Pro Decompiler ещё не понял, какую версию брать, там у них написано ARM32 и ARM64

Thumb(+Thumb-2) это один из режимов ARM32.
 eXeL@B —› Софт, инструменты —› ARM thumb-2: чем декомпилировать?

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS