Вышла (http://rada.re/get/r2-096.html) новая версия radare 0.9.6 (http://rada.re/), открытого фреймворка для реверс-инжиниринга. Фреймфорк написан полностью на языке Си, и доступен как в виде библиотек, так и в виде утилит (r2, rabin2, rasm2,
etc). Большая часть фреймворка распространяется под лицензией LGPL, что позволяет использовать его в коммерческих приложениях.
Среди поддерживаемых архитектур: 8051, x86(16, 32 и 64 бита), arm (включая aarch64), avr, arc (arctangent a4 и arcompact), mips, powerpc, sparc, java, dalvik, bf, rarvm. Radare2 компилируется и работает в GNU/Linux, Windows, OSX, *BSD, Android, Solaris и iOS.
Особенностью фреймворка является его моудльность и расширяемость: поддерживает скриптование на Vala, Python, Perl, Ruby, Go, Guile, Lua, JavaScript, Java. Предоставляется поддержка отладки, в том числе и через протокол gdb. Основной парадигмой дизассемблера является интерактивность.
<center><a href="http://xvilka.me/r2-r2.png"><img src="http://www.opennet.me/opennews/pics_base/0_1384201203.png" style="border-style: solid; border-color: #e9ead6; border-width: 15px;" title="" border=0></a></center>В новой версии:
- Поддержка цветовых схем и вывода стрелок/рамок символами юникода.
- Расположение конфигурационных файлов приведено в соответствии со спецификациями XDG.
- Поддержка платформ AArch64, Texas Instruments C55x+, 8051, ARCompact.
- Автоматическое распознавание и загрузка исполняемых файлов TE (Terse Executable), образов BIOS/UEFI.
- Поддержка классов Java 7.
- Поддержка объявления типов структур и множеств, например
командой 'td':<font color="#461b7e">
[0x8048000]> "td struct Foo { int a; int b; };"</font>
- Python-биндинги переписаны с использованием ctypes, вместо swig. - Поддержка биндингов на Java JNI и D.
- Для упрощения работы в r2 добавлена базовая поддержка команд 'clear', 'ls', 'cat', 'cd', 'pwd'.
- Все команды могут быть соединены через пайпы '|' как и в обычном POSIX shell.
- Начат рефакторинг и переход ядра на SDB (простая база данных "ключ-значение") для хранения метаинформации (функции, метки, комментарии и многое другое).
Релиз был подготовлен с активным тестированием и исправлением регрессий (r2-regressions tests). При нахождении ошибок просьба, по возможности, прикреплять результат выполнения такого теста к уведомлению об ошибке вместе с подробным описанием проблемы.URL: http://rada.re/get/r2-096.html
Новость: http://www.opennet.me/opennews/art.shtml?num=38403
Супер! Совершенно незаменимая штука.
Мегавещь! И на правильных сях.
Огромное спасибо за новость! А ты случаем не писал статей с примерами работ в ней??
Было дело. Вообще пишу по реверсу BIOS/UEFI, но планирую и пару crackme разобрать с помощью radare2. А вообще вот статьи про использование radare2 для crackme - http://dustri.org/b/tag/radare2.html
Ник ваш больно знакомый. Вы не с мотофорума?
Он много откуда. Какие-то части flashrom тоже вроде на совести xvilka.
авторы молодцы. долгой жизни и всяческих успехов.
Ушёл ломать нвидиевый блоб.
> Ушёл ломать нвидиевый блоб.сломаешь — за новым не приходи!
если он сломает, то новый - и не понадобится ;)
> сломаешь — за новым не приходи!Нене, ему надо два. Чтобы все по правилам: один сломал, второй про@#$л :).
Что-то это напоминает. А, IDA, ну конечно же :)
SoftICE нашё фсё!!!
kdb тебе в руки :)
SoftIce под LGPL? Под линух есть? Если нет, то не считается.
> SoftIce под LGPL? Под линух есть? Если нет, то не считается.Есть kdb. Нечто подобное по смыслу как раз...
Был linICE вроде. Но не развивается давно.
он дрова под винду может ковырять?
второй абзац?
Пытался разобраться, но так и не осилил. Продолжаю дизассемблить ht и objdump -d.
Там довольно просто - 'r2 /directory/file'. Если это формат исполняемого файла - он сам распознает и прыгнет на току входа. Если это просто бинарный файл - надо указывать архитектуру и битность - 'r2 -a arm -b 16 /directory/file' - ARM, в режиме Thumb.
'pd' - дизассемблировать, 'pd 5' - дизассемблировать 5 инструкций, 'pdf' - дизассемблировать функцию, 'pdf @ sym.main' - дизассемблировать функцию 'main'. 'Vp' - переход в визульный режим. 'af+ 0x234234 32 my_function' - добавить функцию 'my_function' по адресу 0x234234 с размером 32. 'Cd 2 @ 0x234400' - пометить 2 байта по адресу 0x234400 как данные. "CCa 0x5723462 my comment" - добавить комментарий 'my comment' по адресу 0x5723462. 'f .my_label @ 0x789433' - добавить локальную (доступно только внутри функций) метку 'my_label' по адресу 0x789433. Для других команд и подробностей их использования есть функция '?' - показывает список команд, их синтаксис и краткое описание.
Мне бы что-нибудь с воркфлоу в стиле ht - дизассемблировать весь бинарник, а затем ходить по ссылкам в листинге и править результаты анализа и отставлять свои комментарии. В ht не хватает возможности оставлять свои комментарии и сохранять потом весь листинг. Да и скриптинг не помешал бы (например, я бы тогда автоматизировал разруливание релокейшенов). Еще для ppc ht "режет" границы функций по blrl, хотя обычно это простой вызов функции по указателю внутри функции.
Ну для этого отлично подойдет visual mode (команды 'V'). А скриптинг есть - если собрать radare2, а потом r2-bindings, то в r2 будут доступны скрипты - например '!#lua print("qwe")' или '!#python print("wre")'
HT это HT Editor: http://hte.sourceforge.net/ ?
> HT это HT Editor: http://hte.sourceforge.net/ ?Да. На мой взгляд, весьма полезная штука.
>> HT это HT Editor: http://hte.sourceforge.net/ ?
> Да. На мой взгляд, весьма полезная штука.А можно на пальцах, есть ли там возможность загрузить листринг полученный от objdump для mips, и получить возможность переходов по b и прочим командам (желательна и визуализация переходов), ну и там редактирование. А то очень не хватает такой утилиты.
Боже правый, sourcer реинкарнировал.
Sourcer был не интерактивный. А это - интерактивный, за счет чего (в отличие от того же ndisasm, objdump, etc) можно получить вполне читаемый листинг.
отреверсил Inertia Player 16/32bit DOS
http://www.youtube.com/watch?v=ow6NWPmHJK0
https://github.com/xor2003/inertia_player
как проще сконвертить в C?
tasm_recover не осилил пока
> отреверсил Inertia Player 16/32bit DOS
> http://www.youtube.com/watch?v=ow6NWPmHJK0
> https://github.com/xor2003/inertia_player
> как проще сконвертить в C?Если полностью отреверсил, тебе не составит труда написать код самостоятельно :)
а как же личная жизнь и здоровье?)
Ух ты! Теперь Иду можно будет выкинуть?
Ещё не скоро. Очень не скоро.Все, кому нужно, разжились IDA Pro. А все остальные или не потянут разработку продукта такого уровня или им вообще не нужен дизассемблер/декомпилятор.
Он умеет как IDA опознавать вызываемые системные функции DOS и Windows и отмечать места вызовов комментариями? Если нет, насколько сложно прикрутить такую возможность через скрипты?
Пока не умеет. Но это в планах - https://github.com/radare/radare2/issues/26Скриптами это можно сделать, например для питона получить информацию об инструкции - 'core.cmd_str("pi")'
Или 'core.op_str(addr)'