Сейчас на форуме: morgot, sashalogout, -Sanchez- (+3 невидимых)

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

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

Создано: 08 ноября 2017 22:48
· Личное сообщение · #1

Привет всем!

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

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




Ранг: 622.6 (!), 521thx
Активность: 0.330.89
Статус: Участник
_Вечный_Студент_

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

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


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

-----
Give me a HANDLE and I will move the Earth.




Ранг: 43.7 (посетитель), 2thx
Активность: 0.020
Статус: Участник

Создано: 09 ноября 2017 08:15
· Личное сообщение · #3

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



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

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

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

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

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



Ранг: 43.7 (посетитель), 2thx
Активность: 0.020
Статус: Участник

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

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







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

Создано: 09 ноября 2017 13:21
· Личное сообщение · #6

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




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 09 ноября 2017 13:43
· Личное сообщение · #7

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



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

Создано: 09 ноября 2017 15:27
· Личное сообщение · #8

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




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

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

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



Ранг: -0.7 (гость), 170thx
Активность: 0.540
Статус: Участник

Создано: 09 ноября 2017 15:34
· Личное сообщение · #10

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

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




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 09 ноября 2017 15:38
· Личное сообщение · #11

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



Ранг: -0.7 (гость), 170thx
Активность: 0.540
Статус: Участник

Создано: 09 ноября 2017 15:49
· Личное сообщение · #12

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

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




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 09 ноября 2017 15:51
· Личное сообщение · #13

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



Ранг: -0.7 (гость), 170thx
Активность: 0.540
Статус: Участник

Создано: 09 ноября 2017 15:58
· Личное сообщение · #14

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

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




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 09 ноября 2017 16:10
· Личное сообщение · #15

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

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



Ранг: -0.7 (гость), 170thx
Активность: 0.540
Статус: Участник

Создано: 09 ноября 2017 16:25
· Личное сообщение · #16

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

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

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


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

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


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

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

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




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 09 ноября 2017 16:34
· Личное сообщение · #17

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



Ранг: -0.7 (гость), 170thx
Активность: 0.540
Статус: Участник

Создано: 09 ноября 2017 16:39
· Личное сообщение · #18

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

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



Ранг: 43.7 (посетитель), 2thx
Активность: 0.020
Статус: Участник

Создано: 09 ноября 2017 20:41
· Личное сообщение · #19

DarkThunder пишет:

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

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



Ранг: 58.0 (постоянный), 13thx
Активность: 0.020.01
Статус: Участник

Создано: 09 ноября 2017 20:52
· Личное сообщение · #20

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

Thumb(+Thumb-2) это один из режимов ARM32.


 eXeL@B —› Софт, инструменты —› ARM thumb-2: чем декомпилировать?
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати