Я имею дело с клиентом Chrome Native и имею некоторые трудности в следующих точках:Native Client внутренняя/внешняя песочница
Как я понял до сих пор, первые 64 КБ сегмента 256 NaCL посвящены к внутренней песочнице. Эта внутренняя песочница содержит батут и трамплин, которые передают от доверенного кода ненадежным и наоборот. Когда я нахожусь в этом первом 64 КБ, могу ли я перейти к середине 32 байтовых инструкций? например, если у меня есть 32-байтная инструкция в батуте, могу ли я перейти от этого instr к середине (а не 32 байта) другой 32-байтовой конструкции в батуте? Все инструкции в трампине и трамплине также выровнены по 32 байт?
Могу ли я комбинировать несколько команд x86 в один байт 32 выровненных инструкции NaCl (например, помещая И 0xffffffe0% EAX и JMP EAX в одном 32 байта выровненной инструкции NaCl).
Я понял, что время выполнения службы связано с созданием процесса, управлением памятью и т. Д. И что к нему обращаются через батут, как именно команда батута обращается к службе выполнения? где время выполнения службы находится на платформе памяти? когда время выполнения службы заканчивается, может ли он получить доступ к 32-байтовой выровненной команде в трамплине?
Какова фактическая обязанность внешней песочницы? как он отслеживает и фильтрует системные вызовы? если в валидаторе встроенной песочницы есть ошибка, в каких случаях он может поймать незаконную/вредоносную инструкцию?
Спасибо всем