Буквенно-цифровой шеллкод, обеспечивающий переходы

Я пытаюсь написать шелл-код, который в конечном итоге будет иметь форму абзаца на английском языке. Это означает, что я в основном ограничен инструкциями, которые имеют коды операций, которые оцениваются как буквенно-цифровые символы или знаки препинания. Это на самом деле оставляет мне много разных инструкций перехода, включая: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?

6
задан Nick Garvey 18 May 2012 в 21:19
поделиться