Pull to refresh

Comments 10

Вот бы в Android разрешили использовать вызов bpf(), зажили бы тогда! Сейчас он блокируется правилами seccomp.
Ожидал самое интересное — как писался «самый объёмный файл», но, он просто воткнут в споилер.
как писался «самый объёмный файл»

А это как раз можно найти в документации по Sleigh! Цель статьи — показать интересные моменты в разработке процессорной спецификации, а не переписывание документаций.

Как раз документация по Sleigh не такая, по которой можно брать и писать с нуля. Именно сам процесс понимания этой документации меня и интересовал в первую очередь. Почему, мол, написано так, а не иначе у Вас.


Согласен, было интересно читать про то, что eBPF имеет кривую доку и как Вы из неё доставали по крупицам материал.


Но, опять же, не знаю как для Вас, а для меня самым сложным моментом был именно этот "самый объёмный файл". Именно из-за него я не могу начать писать свою имплементацию процессора. Файлы то большие, и без комментариев, чтобы просто так взять и понять.


В любом случае спасибо. Какой никакой, а стимул взяться снова.

Как раз документация по Sleigh не такая, по которой можно брать и писать с нуля.

Ну это неправда. Всё очень подробно там расписано. Просто последовательно читаешь (да, возможно, не один раз) и так же последовательно пишешь. При необходимости подсматриваешь в каких-нибудь других процессорах (желательно иметь представление о каких-нибудь архитектурах кроме x86 и arm — для них очень замудрённые описания).

написано так, а не иначе

Конкретно sleigh написан просто, в лоб. Очень хорошая система команд эта eBPF, без вредных излишеств :-)

Какой никакой, а стимул взяться снова.

Если что, обращайтесь, могу что-нибудь посоветовать (желательно, в каком-то открытом месте. Форум например, или стэковерфлоу).
Я написал две половинки sleigh'ов для двух разных процессоров. Надо как-то сесть за освоение java-части, на одном sleigh результат сильно неудовлетворительный получается…
Именно из-за него я не могу начать писать свою имплементацию процессора

Можно поконкретнее, что именно у Вас не получается? Может какие характеристики целевого процессора неизвестны?
Надеюсь в будущем выйдет статья отдельно по Sleigh и устройству декомпилятора Ghidrы.
Ну, по сути в документации Intel тоже всё есть:) Но, удобнее читать не эти двухмилионностраничные «Война и мир», а интересные выкладки, по которым можно было бы сразу брать и писать. То, что реально нужно при описании инструкции процессора.
Напишите, пожалуйста, howto-шку про настройку эклипса. Я потыкался несколько часов, но так и не смог запустить плагины гидры…
В итоге разработка sleigh — в блокноте, отладка — сплошная боль…
Как раз в этом проблем вообще никаких. Устанавливаете расширение GhidraDev, перезагружаете Eclipse. Далее появляется меню и типы проектов, которые позволяют писать расширения. Там же, в меню Run будет возможность запускать отдалку под Ghidra: бряки будут работать и т.д.
Что-то у меня не получилось. В половине исходников оно ругается на import'ы, хотя нужные расширения к эклипсу я ставил. И гугл говорит, что в Eclipse DSL импортируемые модули есть…
Впрочем, это может быть из-за того, что я всё сам собирал. Сейчас выложили собранную 9.1 beta, надо ещё раз попробовать…

Впрочем, кажется, эклипс опять откладывается. Там появился процессор HCS12, для которого я, собственно, и пытался сделать анализатор. Он, правда, кривоватый (что неудивительно, с НАСТОЛЬКО замудрённой адресацией), но, надеюсь, в NSA отреагируют на багрепорты…
Sign up to leave a comment.