естесно надо добавить sysXXX ))) интересней другое не так давно кк задавал вопрос об изменении флагов mov'ом аналогично задам вопрос - как изменить поток(последовательность) команд mov'ом? Эксепшены не учитываем
Сори, неясно выразился, модификация кода не при чем, имелась в виду последовательность выполнения команд. Прямое выполнение может быть нарушено либо условным переходом - jxx, loop, либо безусловным - sysxxx, int - iret, call - ret, jmp, либо эксепшеном, либо внешним прерыванием. А как это сделать с помощью mov? Предполагается что эксепшенов при выполнении не происходит
int - iret наличие int совсем не объязательно push XXX; в регистр флагов push YYY; в сегментный регистр push ZZZ; смещение iret; отправили программу по адресу YYY:ZZZ
spa, mikl_ - в вашем случае mov не передает управление. psr1257 - эксепшены не в счет, предполагается что mov не вызывает эксепшенов и IPI Нужно сделать всего ничего - чтобы после команды mov выполнилась не следующая инструкция. Для особо непонятливых - к примеру mov xxx,xxx a1: xor eax,eax задача в том чтобы после выполнения mov НЕ выполнилась инструкция по адресу а1, то бишь имела место быть передача управления
Medstrax Если хорошенько приноровиться, то можно сразу после выполнения mov дёрнуть кабель. А ещё, если ограничиться условием, что только mov не должна вызывать исключение, то можно установить TF и вызвать прерывание: mov следующий за int выполнится без исключения, а перед xor eax,eax управление будет передано на обработчик. Аналогично можно и способ PSR1257 использовать: запихать адрес следующей за mov инструкции в один из первых четырёх DR. Опять таки mov исключения не вызовет, а следующая инструкция не выполнится. Ну и, наверное, можно ещё пару возможностей придумать, которые формально будут удовлетворять поставленному условию, но вряд ли Вам подойдут. Реальность же такова, что mov на x86 (в отличие от, например, arm) не может менять поток инструкций (исключая исключения).
Проблема чтоли. К примеру к сторожевой странице стека обратиться. Явно никаких сепшенов не будет(это ядра проблемы). Или fpu заюзать спустя два кванта отведённые потоку.
Реальность такова что mov _может_ менять поток инструкций Про эксепшены я уже говорил - ни сама команда, ни последующие по условию не вызывают эксепшенов
Medstrax Ну что ж... с нетерпением жду авторского решения. Ну не знаю. Я руководствовался последним постом :