> Давай я напомню изначальное высказывание и подчеркну ключевое слово:
> "единственной заменой асма так и _остается_ сишечка".Тот анон немного перегнул, конечно, но общую идею уловил верно, си попер из системщины асм, практически везде, даже в аттини и пиках, где не память а сплошной склероз.
> Я понимаю, в это трудно поверить - но это легаси было когда-то популярно.
Да оно и сейчас используется, однако кодинг бутсектора сейчас наверное все же не очень массовый сценарий и почему он должен кого-то сильно волновать - черт бы его знает, а?
> Это вообще-то была ирония. Asm "встроенный" (или вызываемый), как бы, не перестает быть асмом.
Вообще да, но если обозвать это "интринсиком" и сказать что нехай это implementation предоставляет, а caller шпрехает на чистом си, типа - читерство, конечно, но - распостраненное.
> Надеюсь, ты понимаешь, что агрументация получается в стиле "Здесь играем, здесь не
> играем, здесь рыбу заворачивали"?
Я понимаю что если архитектура изначально относительную адресацию нормално не умеет, PIC на ней в принципе нормально не делается. А то что кто-то придумал костыли и хаки - достоинством архитектуры не является. Ну вот не делан x86 под PIC-код. Это одно из его архитектурных уродств, учтенных в более новых и продвинутых разработках. И лично мне проблемы 32-битного х86 уж простите, но не интересны. Из 32-битного мне CortexA/CortexM/RiscV разве что интересны. А о том х86-32 уродце я с удовольствием забуду как страшный сон.
> Ключевое слово - code injection/shellcode.
Это весьма специфичная область и вот там из-за специфичного "abi" и требований сишка... все же несколько не то, как минимум в "стартапе". Хотя если попереть на принцип, наверное можно что-то такое сделать используя техники применяемые в фирмварах и бутлоадерах. Там тоже ограниченое окружение с странными требованиями.
> Никто не обещал "супер-широкий спектр применений" (и не выставлял как "единственную
> замену сям", в отличие от).
Да и полезность для человечества этого кейса - ну, так себе, вообще-то это все активно пытаются зарубить в системах, рантаймах и проч :)
> Фокус не очень - представь на секунду, что твой код не контроллирует
Ага, он троллирует, не иначе.
> все "от и до" (потому что в чужом процессе) и поэтому
> таблица не имеет фиксированного адреса времени компиляции,
Да и хрен бы с ним. Можно и лукап сделать если знаем как. Ну там если это моя таблица я могу условиться что "лежит в адресе кратном 1024 байтам" и "в начале magic value". И тогда я ее и сканом могу найти. А если страшно еще и чексум добавить.
> зато "стабильно" доступна по [REG+0x1005000].
Если это в контексте шеллкода когда надо не порушить состояние регистров и оттуда что-то взять то да, там кусочек асма все же надо будет.
В сях вообще тугой контроль за именно ABI - все же не про него. Подразумевается что все вызовы используют одинаковый ABI, это уж ой. Нету в сях этой абстракции, да и не надо оно, даже в системщине. А как там хаксоры будут $%^ться с шелкодом интересно им. Нам же интересно как вас оттуда эффективнее послать чтобы это ресурсы не жрало :P