LINUX.ORG.RU
Ответ на: комментарий от buddhist

Ага, спасибо, прочитал. Т.е. эта штука, грубо говоря, предназначена вычислять адрес переходов?

jmp  eax
call ebx
...
Или это нечто большее?

Хочу имплементировать архитектуру H8/300H (расширенный H8/300). Вот и думаю, стоит ли копать в сторону esil.

peroxydeacet0ne
() автор топика

ESIL - это язык промежуточного представления, чтобы сделать большую часть последующего анализа (SSA, декомпиляция) максимально независимой от архитектуры. Ну и эмуляция (ограниченная и лишь алгоритмическая), так как одновременно это и байткод. Этим летом наши студенты будут работать над SSA и последующими шагами декомпиляции: http://radare.today/gsoc/

По поводу добавления новой архитектуры - рекомендую ознакомиться с https://github.com/radare/radare2/wiki/Implementing-a-new-architecture, а также просмотреть исходники H8300 https://github.com/radare/radare2/tree/master/libr/asm/arch/h8300 и пример реализации ESIL для 8051 https://github.com/radare/radare2/blob/master/libr/anal/p/anal_8051.c и gameboy https://github.com/radare/radare2/blob/master/libr/anal/p/anal_gb.c

Собственно дизассемблер должен быть в каталогах libr/asm/p + libr/asm/arch, анализ (переходы, аргументы и генерация ESIL) - в каталогах libr/anal/p и libr/anal/arch.

Также рекомендуется обьединить код с H8300, если возможно и использовать механизм выбора asm.cpu и arch.cpu через переменные config (r_congig_*).

XVilka ★★★★★
()
Ответ на: комментарий от XVilka

Большое спасибо. Буду разбираться.

Глянул в код нескольких архитектур (тот же 8051) - немного удивляет дублирование кода декодирования инструкций (в модуле анализа и дизассемблирования). Вопрос: это true way и дизассемблер должен быть независим от анализатора или просто «так вышло»?

peroxydeacet0ne
() автор топика
Ответ на: комментарий от peroxydeacet0ne

Да, для обеспечения большей модульности. Но в планах поправить эту ситуацию (пока, правда, не придумали как).

XVilka ★★★★★
()
16 февраля 2016 г.

Как этим радаром пользоваться-то? Честно пытаюсь его юзать вместо иды - КАК??? В visual mode при каждом нажатии клавиши ДОЛГО И МЕДЛЕННО перерисовывается ВЕСЬ ЭКРАН. Это так и должно быть, или надо секрет особый знать, чтоб нормально работало? И тот гуй, который на скринотах на глагне http://radare.org/ - где он? А то биосы, может, из консоли реверсить нормально, но 15-меговые бинарники так ковырять - это убиться можно. Алсо запустил на одном таком файле aa - уже полдня молотит. По ходу, раньше лето настанет, чем оно проанализируется. А так-то крутая штука, што поделать, аналогов-то свободных нет.

HeipaVai1o
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.