сабж: https://www.bleepingcomputer.com/ne...ra-reverse-engineering-tool-at-rsaconference/ как то упустил презентацию на рсаконфе, и чет щас не могу на тытрубе найти...
Ghidra обладает сходными возможностями с расширенной версией проприетарного пакета IDA Pro, но рассчитан исключительно на анализ кода и не содержит отладчик. Примечательно, спустя всего несколько минут после публикации инструментария, эксперты обнаружили уязвимость в реализации серверного компонента. Проблема заключается в том, что Ghidra открывает сетевой порт 18001 для удаленной отладки приложения по протоколу JDWP (Java Debug Wire Protocol). По умолчанию сетевые соединения принимались на всех доступных сетевых интерфейсах, а не на 127.0.0.1, что предоставляло возможность подключиться к Ghidra с других систем и выполнить любой код в контексте приложения. (Источник)
HESH, как можно анализировать без отладчика? О том, что будет открыт порт говориться прямым текстом, поэтому "эксперты обнаружили уязвимость" звучит очень смешно.
https://blog.because-security.com/t/ghidra-wiki/431 пока до идушки недотяг, но любая мало-мальски приличная тулза лишней не станет
Я бы посоветовал посмотреть сначала \docs\GhidraAPI_javadoc.zip, потом docs\languages\, заглянуть например в содержимое Ghidra\Processors\ (не папки, а именно как это устроено разглядеть под микроскопом), дальше часов хотя бы 50 над самой гидрой просидеть, делая что-нибудь из этого всего (не говоря о тысячах часов над идой, которые тоже неплохо бы налетать перед этим). А вот уже потом может быть сложится объективное мнение, где недотяг, где натяг.
Процессорный модуль гидры выполнен на движке sleigh, специализированный движок для строительства дизасмов-декомпилеров. Процессорный модуль иды это классическая длл, не использующая никаких движков-фреймворков, хочешь дизасм - напиши его с нуля. В слейте есть специальный язык, на котором описывается логика инструкции. Сделал это для каждой инструкции - декомпиль готов. У иды декомпили навесные и за отдельную плату. И их вроде бы 4 всего. При дизасме с апи доступен этот p-код, его можно анализировать самому. У иды с апи доступны в специальной форме мнемоника и аргументы инструкции. Все, хватит. Хочешь анализатор - почему бы не написать его... с нуля например самому? Иногда доходит до смешного - я написал 3 "дизасма в дизасме" для иды, когда были нужны реальные поля формата инструкции. Вшивый плагин для гидры их блин показывает сразу. Сюда же можно добавить возможность существования нескольких адресных пространств (у иды одно). Количество классов/методов/интерфейсов в справочнике примерно в 2 раза больше.
f13nd, Ты вот можешь официально заявить, что больше к идушке ни ногой? + тут работает простая логика == в опенсорц сбрасываются недоделки в надёге хоть как-то их допилить до приличного уровня.
Я сделал пока под 1 (но самый трудный из нужных) проц дизасм, нужны еще минимум 2. Пользоваться начал еще недоделанным, потому что блин оно правда лучше динамическую адресацию сворачивает, удивительно, да? Для недоделки. Ему неплохо бы еще плагин для анализа прототипа функции (там по сути 4 списка аргументов, а не один как у интела, поэтому стандартным шаблоном не описать), но есть какие-то траблы с переделкой скрипта в плагин. Может потому что на яве почти никогда не писал, но разберусь потом. Постепенно все что надо восполню и ярлык иды уберу с глаз долой. Оглядываясь на то, что и как приходилось для иды делать в разных ситуациях и прикидывая как бы это было сделано под гидру, как-то даже смешно становится. ЗЫ: даже покажу пример. Вот без этой хрени (а это самая-самая базовая и по уму еще улучшать и улучшать), ида совсем 2+2 складывать не может. У гидры это базовая возможность и работает прямо сразу, как инструкции псевдокодом опишешь. --- Сообщение объединено, 28 мар 2019 --- Посмотрел блог этого мужика, который идой 22 года пользуется и чьим авторитетом меня пытаются задавить, там 10 статей всего за 4 года. И simple x86 emulator это именно оно, та хрень, которую в иде приходится делать чтоб скручивать динамическую адресацию. За a couple of hours до него видимо не дошло, раз не упомянул о псевдокоде совсем.