The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним, 26-Апр-22 01:40 
>> MBR - классический пример.
> Очень нишевой и не очень актуальный, Настолько, что в более современных платформах
> даже начальные загрузчики такого плана пишут на сях.

...
>  Так что пример хороший но 20 лет назад смотрелся убедительнее. X86 real mode вообще откровенное легаси.

Давай я напомню изначальное высказывание и подчеркну ключевое слово:
"единственной заменой асма так и _остается_ сишечка".
Я понимаю, в это трудно поверить - но это легаси было когда-то популярно.


>> Но да, asm() - хорошая замена асму, ага
> Типа того. На нем пишут "интринсики", небольшие куски типа стартапа, и проч
> а основная тушка на си. Чтобы не иметь удовольствие кодить на асме.

Это вообще-то была ирония. Asm "встроенный" (или вызываемый), как бы, не перестает быть асмом.

>> Т.е. нет (fPIC точно так же вызывает "соседнюю" функцию через got), но
>> опять "не считается"?
> Там есть опции типа танцев относительно регистра, как я понял он берется
> за базу и относительная адресация пляшет вокруг. Но если надо на
> x86, не дай боже 32-битном, на нем PIC в принципе нормально
> не получится. И проблема в том что у проца архитектура уродская:

Надеюсь, ты понимаешь, что агрументация получается в стиле "Здесь играем, здесь не играем, здесь рыбу заворачивали"?

>> Какая-то липовая замена (не говоря уж о том, что может потребоваться напрямую
>> к регистрам или считать память по смещению) ...
> В общем случае в именно регистры, именно проца, именно неадресуемые как память
> соваться - ну такое себе очень отдельное и специфичное развлечение. Нужное лишь иногда.

Ключевое слово - code injection/shellcode. Никто не обещал "супер-широкий спектр применений" (и не выставлял как "единственную замену сям", в отличие от).

> А так на тебе фокус:
> volatile uint32_t * hw_reg = (volatile uint32_t *) 0x100500;
> * hw_reg = 10;

...
> В сях даже функции можно из таблицы кода на лету импортировать. Читаем таблицу, берем адрес, назначаем его указателю на функцию

Фокус не очень - представь на секунду, что твой код не контроллирует все "от и до" (потому что в чужом процессе) и поэтому таблица не имеет фиксированного адреса времени компиляции, зато "стабильно" доступна по [REG+0x1005000].


 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру