Radare2

Поделись знанием:
Перейти к: навигация, поиск
Radare2

Веб-интерфейс Radare2
Тип

Дизассемблер и фреймворк для реверс-инжиниринга

Автор

[twitter.com/trufae pancake]

Разработчик

pancake

Написана на

Си

Интерфейс

командная строка, графический, веб-интерфейс

Операционная система

Windows, OS X, Linux, BSD, Solaris, Android, iOS, Firefox OS, MeeGo, QNX, Haiku

Языки интерфейса

английский

Первый выпуск

февраль 2006

Аппаратная платформа

Cross-platform

Последняя версия

0.10.1 — 1 марта 2016

Состояние

Активное

Лицензия

LGPL

Сайт

[radare.org org]

Radare2Radare2К:Программное обеспечение, разработанное в 2006 году

Radare2 (также известный как r2) — свободный кроссплатформенный фреймворк для реверс-инжиниринга написанный на Си, который включает дизассемблер, шестнадцатеричный редактор, анализатор кода и т. д[1]. Используется при реверсе и отладке вредоносного ПО и прошивок[2][3].





История и разработка

Проект radare[4] начал разрабатывать хакер с ником pancake в 2006 году и долгое время по сути он был единственным разработчиком. Изначально проект задумывался как шестнадцатеричный редактор с простым консольным интерфейсом, позволялявший находить и восстанавливать данные с жестких дисков. Поэтому его называли «инструментом для компьютерной криминалистической экспертизы». В дальнейшем, по сообщению авторов, произошло изменение концепции проекта, и целью разработчиков стало создание полноценной платформы, предназначенной для анализа бинарных файлов, в частности — исполняемых[5].

В 2010 году произошел «редизайн» фреймворка, после чего проект стал разрастаться и пополняться новыми функциями, что позволяет его использовать не только как редактор, но и как дизассемблер и анализатор как кода, так и шеллкодов.

Состав radare2

Фреймфорк radare2 доступен в виде библиотек и утилит:

  • Rasm2 — ассемблер/дизассемблер фреймворка, выполнен как отдельное приложение и позволяет дизассемблировать как бинарные, так и отдельные строки.
  • Rabin2 — утилита для работы с различными исполняемыми файлами (ELF, PE, Java class, Mach-O). Используется для получения различной информации о файле: импортируемые функции, экспортируемые символы, секции, подключаемые библиотеки и прочее.
  • Rahash2 — утилита для получения хеш-значений во многих форматах как от бинарных файлов, так и от определенных частей данных.
  • Radiff2 — утилита для сравнения бинарных файлов.
  • Rafind2 — утилита для поиска как строк с помощью и без регулярных выражений, так и данных в шестнадцатеричном формате или по бинарному шаблону.
  • Ragg2 — экспериментальная утилита для компиляции небольших программ для x86/x64- и ARM-архитектур.
  • Rax2 — утилита для конвертации данных в различных форматах.
  • Rarun2 — позволяет запускать программу с различными параметрами среды, аргументами, правами и директориями.
  • Radeco[6] — декомпилятор.

Bokken

Bokken[7] — графический интерфейс на PyGtk для radare2.

Поддерживаемые архитектуры/форматы файлов

Поддерживаемые архитектуры Поддерживаемые форматы файлов

История версий

Цвет Значение
Красный Старая версия
Зелёный Текущая версия
Версия radare2 Дата выпуска Особенности
0.9.2 2 октября 2012
  • Поддержка новых CPU: Z80, dcpu16, m68k и arc.
  • Добавлена поддержка следующих платформ: dalvik, mips, arm.
  • Добавлена обработка zip:// и apk://.
  • Улучшен анализатор 16-ти битного x86 кода.
  • Добавлено множество команд, таких как ?i, ?I, ?k, b+, b- и т. д.
  • Теперь требуется valabind 0.7.2.
  • Исправлена ошибка при декодировании опкода FF25 в архитектуре x86_64.
  • Начата реализация поддержки DWARF.
  • Добавлена поддержка jmp [(rip+)0xoffset] и call [(rip+)0xoffset].
0.9.6 11 ноября 2013
  • Поддержка цветовых схем и вывода стрелок/рамок символами юникода.
  • Расположение конфигурационных файлов приведено в соответствии со спецификациями XDG.
  • Поддержка платформ AArch64, Texas Instruments C55x+, 8051, ARCompact.
  • Автоматическое распознавание и загрузка исполняемых файлов TE (Terse Executable), образов BIOS/UEFI.
  • Поддержка классов Java 7.
  • Поддержка объявления типов структур и множеств, например командой 'td'.
  • Python-биндинги переписаны с использованием ctypes, вместо swig.
  • Поддержка биндингов на Java JNI и D.
  • Для упрощения работы в r2 добавлена базовая поддержка команд 'clear', 'ls', 'cat', 'cd', 'pwd'.
  • Все команды могут быть соединены через пайпы '|' как и в обычном POSIX shell.
  • Начат рефакторинг и переход ядра на SDB (простая база данных «ключ-значение») для хранения метаинформации (функции, метки, комментарии и многое другое).
0.9.9 5 июня 2015

См. также

Напишите отзыв о статье "Radare2"

Примечания

  1. Joshua J. Drake, Zach Lanier, Collin Mulliner, Pau Oliva Fora, Stephen A. Ridley. [books.google.com/books?id=2qo6AwAAQBAJ Android Hacker's Handbook]. — John Wiley & Sons, 2014. — С. 495. — 576 с. — ISBN 9781118922255.
  2. [2014.zeronights.ru/workshops.html#kovoi Workshop «Реверсинг и отладка вредоносного ПО и прошивок с помощью фреймворка radare2»]
  3. Ken Dunham, Shane Hartman, Manu Quintans, Jose Andre Morales, Tim Strazzere. [books.google.com/books?id=AJXaBAAAQBAJ Android Malware and Analysis]. — CRC Press, 2014-10-24. — С. 146. — 246 с. — ISBN 9781482252194.
  4. [github.com/radare/radare Репозиторий Git radare] (англ.)
  5. [www.radare.org/get/radare.pdf.html Radare documentation, Chapter 1: Introduction, 1.1 History] (англ.)
  6. [github.com/radare/radeco Репозиторий Git radeco] (англ.)
  7. [bokken.re/ Домашняя страница Bokken] (англ.)

Литература

  • Борис Рютин [xakep.ru/2014/09/09/radare-framework/ На radare как на ладони. Основы работы с фреймворком radare2] // Хакер. — 2014. — № 9 (188).
На английском языке
  • [radare.org/get/radare.pdf The radare book]. — pancake, 2008. — P. 152.
  • [www.gitbook.com/book/radare/radare2book/details Radare2 Book]
  • pancake [phrack.org/issues/66/14.html Binary Mangling with Radare] // Phrack Magazine. — 2009. — № 66.

Ссылки

  • [radare.org Официальный сайт(англ.)
  • [radare.today/ Официальный блог] (англ.)
  • [twitter.com/radareorg Официальный твиттер] (англ.)
  • [github.com/radare/radare2 Репозиторий Git] (англ.)
  • [forum.reverse4you.org/forumdisplay.php?f=262 Форум русскоязычных пользователей radare2]

Отрывок, характеризующий Radare2

– Прекрасно! отлично! – кричала Наташа. – Еще другой куплет, – говорила она, не замечая Николая.
«У них всё то же» – подумал Николай, заглядывая в гостиную, где он увидал Веру и мать с старушкой.
– А! вот и Николенька! – Наташа подбежала к нему.
– Папенька дома? – спросил он.
– Как я рада, что ты приехал! – не отвечая, сказала Наташа, – нам так весело. Василий Дмитрич остался для меня еще день, ты знаешь?
– Нет, еще не приезжал папа, – сказала Соня.
– Коко, ты приехал, поди ко мне, дружок! – сказал голос графини из гостиной. Николай подошел к матери, поцеловал ее руку и, молча подсев к ее столу, стал смотреть на ее руки, раскладывавшие карты. Из залы всё слышались смех и веселые голоса, уговаривавшие Наташу.
– Ну, хорошо, хорошо, – закричал Денисов, – теперь нечего отговариваться, за вами barcarolla, умоляю вас.
Графиня оглянулась на молчаливого сына.
– Что с тобой? – спросила мать у Николая.
– Ах, ничего, – сказал он, как будто ему уже надоел этот всё один и тот же вопрос.
– Папенька скоро приедет?
– Я думаю.
«У них всё то же. Они ничего не знают! Куда мне деваться?», подумал Николай и пошел опять в залу, где стояли клавикорды.
Соня сидела за клавикордами и играла прелюдию той баркароллы, которую особенно любил Денисов. Наташа собиралась петь. Денисов восторженными глазами смотрел на нее.
Николай стал ходить взад и вперед по комнате.
«И вот охота заставлять ее петь? – что она может петь? И ничего тут нет веселого», думал Николай.
Соня взяла первый аккорд прелюдии.
«Боже мой, я погибший, я бесчестный человек. Пулю в лоб, одно, что остается, а не петь, подумал он. Уйти? но куда же? всё равно, пускай поют!»
Николай мрачно, продолжая ходить по комнате, взглядывал на Денисова и девочек, избегая их взглядов.
«Николенька, что с вами?» – спросил взгляд Сони, устремленный на него. Она тотчас увидала, что что нибудь случилось с ним.
Николай отвернулся от нее. Наташа с своею чуткостью тоже мгновенно заметила состояние своего брата. Она заметила его, но ей самой так было весело в ту минуту, так далека она была от горя, грусти, упреков, что она (как это часто бывает с молодыми людьми) нарочно обманула себя. Нет, мне слишком весело теперь, чтобы портить свое веселье сочувствием чужому горю, почувствовала она, и сказала себе:
«Нет, я верно ошибаюсь, он должен быть весел так же, как и я». Ну, Соня, – сказала она и вышла на самую середину залы, где по ее мнению лучше всего был резонанс. Приподняв голову, опустив безжизненно повисшие руки, как это делают танцовщицы, Наташа, энергическим движением переступая с каблучка на цыпочку, прошлась по середине комнаты и остановилась.
«Вот она я!» как будто говорила она, отвечая на восторженный взгляд Денисова, следившего за ней.
«И чему она радуется! – подумал Николай, глядя на сестру. И как ей не скучно и не совестно!» Наташа взяла первую ноту, горло ее расширилось, грудь выпрямилась, глаза приняли серьезное выражение. Она не думала ни о ком, ни о чем в эту минуту, и из в улыбку сложенного рта полились звуки, те звуки, которые может производить в те же промежутки времени и в те же интервалы всякий, но которые тысячу раз оставляют вас холодным, в тысячу первый раз заставляют вас содрогаться и плакать.
Наташа в эту зиму в первый раз начала серьезно петь и в особенности оттого, что Денисов восторгался ее пением. Она пела теперь не по детски, уж не было в ее пеньи этой комической, ребяческой старательности, которая была в ней прежде; но она пела еще не хорошо, как говорили все знатоки судьи, которые ее слушали. «Не обработан, но прекрасный голос, надо обработать», говорили все. Но говорили это обыкновенно уже гораздо после того, как замолкал ее голос. В то же время, когда звучал этот необработанный голос с неправильными придыханиями и с усилиями переходов, даже знатоки судьи ничего не говорили, и только наслаждались этим необработанным голосом и только желали еще раз услыхать его. В голосе ее была та девственная нетронутость, то незнание своих сил и та необработанная еще бархатность, которые так соединялись с недостатками искусства пенья, что, казалось, нельзя было ничего изменить в этом голосе, не испортив его.
«Что ж это такое? – подумал Николай, услыхав ее голос и широко раскрывая глаза. – Что с ней сделалось? Как она поет нынче?» – подумал он. И вдруг весь мир для него сосредоточился в ожидании следующей ноты, следующей фразы, и всё в мире сделалось разделенным на три темпа: «Oh mio crudele affetto… [О моя жестокая любовь…] Раз, два, три… раз, два… три… раз… Oh mio crudele affetto… Раз, два, три… раз. Эх, жизнь наша дурацкая! – думал Николай. Всё это, и несчастье, и деньги, и Долохов, и злоба, и честь – всё это вздор… а вот оно настоящее… Hy, Наташа, ну, голубчик! ну матушка!… как она этот si возьмет? взяла! слава Богу!» – и он, сам не замечая того, что он поет, чтобы усилить этот si, взял втору в терцию высокой ноты. «Боже мой! как хорошо! Неужели это я взял? как счастливо!» подумал он.
О! как задрожала эта терция, и как тронулось что то лучшее, что было в душе Ростова. И это что то было независимо от всего в мире, и выше всего в мире. Какие тут проигрыши, и Долоховы, и честное слово!… Всё вздор! Можно зарезать, украсть и всё таки быть счастливым…


Давно уже Ростов не испытывал такого наслаждения от музыки, как в этот день. Но как только Наташа кончила свою баркароллу, действительность опять вспомнилась ему. Он, ничего не сказав, вышел и пошел вниз в свою комнату. Через четверть часа старый граф, веселый и довольный, приехал из клуба. Николай, услыхав его приезд, пошел к нему.
– Ну что, повеселился? – сказал Илья Андреич, радостно и гордо улыбаясь на своего сына. Николай хотел сказать, что «да», но не мог: он чуть было не зарыдал. Граф раскуривал трубку и не заметил состояния сына.
«Эх, неизбежно!» – подумал Николай в первый и последний раз. И вдруг самым небрежным тоном, таким, что он сам себе гадок казался, как будто он просил экипажа съездить в город, он сказал отцу.
– Папа, а я к вам за делом пришел. Я было и забыл. Мне денег нужно.
– Вот как, – сказал отец, находившийся в особенно веселом духе. – Я тебе говорил, что не достанет. Много ли?
– Очень много, – краснея и с глупой, небрежной улыбкой, которую он долго потом не мог себе простить, сказал Николай. – Я немного проиграл, т. е. много даже, очень много, 43 тысячи.
– Что? Кому?… Шутишь! – крикнул граф, вдруг апоплексически краснея шеей и затылком, как краснеют старые люди.
– Я обещал заплатить завтра, – сказал Николай.
– Ну!… – сказал старый граф, разводя руками и бессильно опустился на диван.
– Что же делать! С кем это не случалось! – сказал сын развязным, смелым тоном, тогда как в душе своей он считал себя негодяем, подлецом, который целой жизнью не мог искупить своего преступления. Ему хотелось бы целовать руки своего отца, на коленях просить его прощения, а он небрежным и даже грубым тоном говорил, что это со всяким случается.
Граф Илья Андреич опустил глаза, услыхав эти слова сына и заторопился, отыскивая что то.
– Да, да, – проговорил он, – трудно, я боюсь, трудно достать…с кем не бывало! да, с кем не бывало… – И граф мельком взглянул в лицо сыну и пошел вон из комнаты… Николай готовился на отпор, но никак не ожидал этого.
– Папенька! па…пенька! – закричал он ему вслед, рыдая; простите меня! – И, схватив руку отца, он прижался к ней губами и заплакал.