Я пытаюсь написать шелл-код, который в конечном итоге будет иметь форму абзаца на английском языке. Это означает, что я в основном ограничен инструкциями, которые имеют коды операций, которые оцениваются как буквенно-цифровые символы или знаки препинания. Это на самом деле оставляет мне много разных инструкций перехода, включая:jo
, jno
, jb
, jae
, je
, jne
, jbe
, ja
, js
, jns
иjp
(которые соответствуют буквамp-z
). Каждый из этих прыжков выполняет тест, прежде чем решить, прыгать или нет. В большинстве случаев я могу комбинировать прыжок и его инверсию, чтобы гарантировать, что прыжок произойдет в шелл-коде (, например. используя jo
, затем jno
или je
, затемjne
), но я не могу сделать это в случае jb
. Тест для jb
— это CF=1
.
Мой вопрос: существует ли какая-либо серия буквенно-цифровых инструкций, которая функционально является NOP, но также гарантирует, что CF=1
? CF
— это флаг переноса, поэтому подойдут любые операции, которые гарантированно установят флаг переноса.
Также, чтобы гарантировать jae
, нужно ли в любом случае гарантировать, что CF=0
?