Как изменить поток команд?

Тема в разделе "WASM.ASSEMBLER", создана пользователем Medstrax, 13 янв 2010.

  1. Medstrax

    Medstrax Забанен

    Публикаций:
    0
    вызов прерывания, возврат из оного, call, ret, jmp far - есть идеи ?
     
  2. n0name

    n0name New Member

    Публикаций:
    0
    cmovXX
     
  3. n0name

    n0name New Member

    Публикаций:
    0
    тьфу, не то совсем.
     
  4. Medstrax

    Medstrax Забанен

    Публикаций:
    0
    естесно надо добавить sysXXX )))
    интересней другое
    не так давно кк задавал вопрос об изменении флагов mov'ом
    аналогично задам вопрос - как изменить поток(последовательность) команд mov'ом?
    Эксепшены не учитываем
     
  5. KeSqueer

    KeSqueer Сергей

    Публикаций:
    0
    модификация кода не рулит?
     
  6. KeSqueer

    KeSqueer Сергей

    Публикаций:
    0
    http://wasm.ru/forum/viewtopic.php?id=27850
     
  7. Medstrax

    Medstrax Забанен

    Публикаций:
    0
    Сори, неясно выразился, модификация кода не при чем, имелась в виду последовательность выполнения команд. Прямое выполнение может быть нарушено либо условным переходом - jxx, loop, либо безусловным - sysxxx, int - iret, call - ret, jmp, либо эксепшеном, либо внешним прерыванием. А как это сделать с помощью mov? Предполагается что эксепшенов при выполнении не происходит
     
  8. spa

    spa Active Member

    Публикаций:
    0
    http://lurkmore.ru/Взаимоисключающие_параграфы это они?
     
  9. spa

    spa Active Member

    Публикаций:
    0
    афаик без эксепшена (например запись/чтение с 0 адреса) MOVом не как не сделать
     
  10. spa

    spa Active Member

    Публикаций:
    0
    хотя если дальше есть call eax , то можно сделать mov eax, addr :derisive:
     
  11. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Medstrax
    аналогично push XXXX/ret mov [esp],XXX/ret
     
  12. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    int - iret наличие int совсем не объязательно
    push XXX; в регистр флагов
    push YYY; в сегментный регистр
    push ZZZ; смещение
    iret; отправили программу по адресу YYY:ZZZ
     
  13. PSR1257

    PSR1257 New Member

    Публикаций:
    0
    DRx ловушка на mem access и mov. mov на выгруженную страницу. Что вообще нужно сделать? ;)
     
  14. Medstrax

    Medstrax Забанен

    Публикаций:
    0
    spa, mikl_ - в вашем случае mov не передает управление.
    psr1257 - эксепшены не в счет, предполагается что mov не вызывает эксепшенов и IPI
    Нужно сделать всего ничего - чтобы после команды mov выполнилась не следующая инструкция.
    Для особо непонятливых - к примеру
    mov xxx,xxx
    a1:
    xor eax,eax
    задача в том чтобы после выполнения mov НЕ выполнилась инструкция по адресу а1, то бишь имела место быть передача управления
     
  15. l_inc

    l_inc New Member

    Публикаций:
    0
    Medstrax
    Если хорошенько приноровиться, то можно сразу после выполнения mov дёрнуть кабель.
    А ещё, если ограничиться условием, что только mov не должна вызывать исключение, то можно установить TF и вызвать прерывание: mov следующий за int выполнится без исключения, а перед xor eax,eax управление будет передано на обработчик.
    Аналогично можно и способ PSR1257 использовать: запихать адрес следующей за mov инструкции в один из первых четырёх DR. Опять таки mov исключения не вызовет, а следующая инструкция не выполнится.

    Ну и, наверное, можно ещё пару возможностей придумать, которые формально будут удовлетворять поставленному условию, но вряд ли Вам подойдут. Реальность же такова, что mov на x86 (в отличие от, например, arm) не может менять поток инструкций (исключая исключения).
     
  16. CrystalIC

    CrystalIC New Member

    Публикаций:
    0
    Проблема чтоли. К примеру к сторожевой странице стека обратиться. Явно никаких сепшенов не будет(это ядра проблемы). Или fpu заюзать спустя два кванта отведённые потоку.
     
  17. Medstrax

    Medstrax Забанен

    Публикаций:
    0
    Реальность такова что mov _может_ менять поток инструкций ;)
    Про эксепшены я уже говорил - ни сама команда, ни последующие по условию не вызывают эксепшенов
     
  18. Medstrax

    Medstrax Забанен

    Публикаций:
    0
    Ахаха, клерк ну не ожидал от тебя такой ахинеи. Сепшен будет, рулит его ядро или нет - неважно
     
  19. n0name

    n0name New Member

    Публикаций:
    0
    с crX поиграться
     
  20. l_inc

    l_inc New Member

    Публикаций:
    0
    Medstrax
    Ну что ж... с нетерпением жду авторского решения. :)
    Ну не знаю. Я руководствовался последним постом :) :