сплайсинг. обработка команд с относительными аргументами

Тема в разделе "WASM.X64", создана пользователем stranger_eco5, 2 май 2011.

  1. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    fsd
    Ещё как выйдет. Условные брейкпоинты на часто вызываемые ф-ии ставить в OllyDbg пробовали? Отлаживаемый процесс начинает страшно тормозить. Иногда проще вписать прыжок на свой код, проверяющий нужное условие, чем дожидаться, пока отлаживаемый процесс дотормозит до выполнения условия брейкпоинта.
     
  2. fsd

    fsd New Member

    Публикаций:
    0
    Регистрация:
    4 июл 2010
    Сообщения:
    353
    хз что там в OllyDbg, понятия не имею что это такое, пробуйте
     
  3. stranger_eco5

    stranger_eco5 New Member

    Публикаций:
    0
    Регистрация:
    2 май 2011
    Сообщения:
    14
    fsd

    в качестве идентификатора хукаемой функции можно использовать ExceptionInfo->ExceptionRecord->ExceptionAddress, стало быть, перед совершением хука, нужно построить таблицу соответствий между адресами, где ставится int 3 и функциями, куда нужно передать управление.
    если функция в таблице найдена, то после выполнения целевого кода нужно будет сделать инкремент ExceptionInfo->ContextRecord->Rip и вернуть EXCEPTION_CONTINUE_EXECUTION (в обработчике исключений)

    так ?

    а как поступать с параметрами функции ? в случае, если их больше четырёх, то, видимо, нужно будет модифицировать стековый регистр перед передачей управления на функцию с целевым кодом ?

    так ?
     
  4. fsd

    fsd New Member

    Публикаций:
    0
    Регистрация:
    4 июл 2010
    Сообщения:
    353
    так так
    не так, ничего инкрементировать не нужно, просто переписать IP(EIP/RIP) адресом своего обработчика,
    указать что исключение обработано,
    далее будет вызвана ваша обертка над оригиналом,
    в обертке, если нужен вызов реальной функции, можете вызвать переходник содержащий первую оригинальную инструкцию (которую вы заменили инструкцией, вызвавшей исключение) и переход на вторую
    не так, ничего модифицировать не нужно
     
  5. stranger_eco5

    stranger_eco5 New Member

    Публикаций:
    0
    Регистрация:
    2 май 2011
    Сообщения:
    14
    fsd
    аа.. ok.

    добавлено:

    да, всё отлично работает. thnx, bro