Обновить

Комментарии 7

Идея - оч хорошая. статья/карма/закладки +++. Но над изложением нужно капитально работать: продраться сквозь полотно текста, выловить идеи и структурировать читаемое - невозможно.

PS

https://habr.com/ru/companies/habr/articles/736940/

https://habr.com/ru/articles/843366/ и там в начале ссылка на 10 статей на Хабре "как писать статьи" :)

Спасибо, это мой первый опыт. Получилось путано и честно говоря, у меня не хватает опыта чтобы понять, как ее можно улучшить.. Изначально это был proof of concept довольно простой идеи, которую проще всего выразить кодом, с небольшими комментариями..

до godbolt

Минутка нудноты: инструмент называется Compiler explorer, а Godbolt это просто фамилия автора (Мэтт Годболт).

Если подобная машина защищена правильно, то это не сработает.

Или у вас ещё есть ключ для подписи вашего кода, это нужно учесть.

Серьёзные серверы эту защиту будут иметь и ключ для подписи будет не на сервере.

Архитектура таргета предполагается amd64, а если это не так?

Серверы на arm64 вполне себе вещь, а в эмбеде будет полный зоопарк архитектур.

Как упражнение это отличный пример, но не будет ли проще кросс компилировать C для целевой архитектуры и прокинуть результат через уже имеющийся доступ к консоли?

Оставим за скобками syscallls которые нам будут нужны чтобы сделать чтото значимое и их разницу между версиями ядра.

Как прикладной материал для хакинга выглядит отлично.

Как практическая вещь для реального применения - врядли.

Без обид.

С частью возраженгий согласен, отвечу на те, где есть возможность что-то сделать:

Архитектура таргета может быть любой, суть идеи от этого не меняется, просто ассемблировать придется в другие команды, и немного по другим правилам. Врядли потребуется делать что-то кросплатформенное таким способом.

Но даже если да - есть возможность сделать таргет-специфичные "функциональные блоки", которые выполняют базовые операции и комбинировать уже их. А регистры обозначить псевдонимами и разрешать псевдонимы в зависимости от архитектуры. Но это утяжеляет концепт, хотя я могу представить упоротого программиста, который может сделать что-то подобное просто чтобы не использовать компилятор, если он боиться supply chain attack. С syscallls можно поступить так же, define есть.

Напомнило, году в ~1994 вводил с факса шестнадцатеричный дамп используя DOS debug ... Передали поездом пачку дискет с инсталлятором, один файл на дискете не прочитался

Эта задача уже решена, см. stage0-posix и mescc-tools. Та же идея поднятия чего-то из ничего, правда совсем другая мотивация.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации