OllyDbg не видит Векторного обработчика???

Тема в разделе "WASM.BEGINNERS", создана пользователем d51, 29 ноя 2007.

  1. d51

    d51 New Member

    Публикаций:
    0
    Регистрация:
    4 ноя 2007
    Сообщения:
    17
    В программе работает а в OllyDbg не могу посмотреть обработчик исключения
    пробовал отключить опции options->Debugging options->Exceptions->Ignore also folowing custom ....
    и все сразу на вкладке Exceptions. Программа при выполнении под отладчиком пропускает
    обработчик
    ;кусок из программы
    -----------------------------------------------------------
    invoke GetCurrentProcess;
    mov ebx,eax
    .......
    invoke VirtualAllocEx,ebx, 0,4095, MEM_COMMIT or MEM_RESERVE,PAGE_EXECUTE_READWRITE
    mov AdrsMemory, eax
    invoke GetModuleHandle,addr kernel32
    invoke GetProcAddress,eax,addr AddVectoredExceptionHandler
    push offset MyVectoredHandler
    push 1
    call eax
    ;---------------------------------------------------------------------
    invoke GetCurrentProcess;
    invoke VirtualProtectEx,eax,AdrsMemory,40,PAGE_EXECUTE_READWRITE or PAGE_GUARD,offset OldProtect
    mov ebx ,AdrsMemory
    mov Dword ptr[ebx] ,00555555h//провокация !!!!
    ..........
    invoke LoadIcon,NULL,IDI_APPLICATION
    ............
    ;---------------обработчик MyVectoredHandler ------его нет----------------
    MyVectoredHandler proc ER:EXCEPTION_POINTERS
    .........
    invoke wsprintf, ADDR sResult,ADDR fmt,eax ; Test Code
    push 0
    push offset sResult
    push offset AddVector
    push 0
    call MessageBox
    MyVectoredHandler endp
    .........
    как заставить отладчик войти в обработчик исключения?
     
  2. d51

    d51 New Member

    Публикаций:
    0
    Регистрация:
    4 ноя 2007
    Сообщения:
    17
    Придется уточнить вопрос в SoftIce при установке точки останова где нибуть
    в обработчике исключения отладчик позволяет отлаживать эту функцию ,
    а OllyDbg отладчик останавливается на инструкции вызвавшей исключение,
    и при попытке трассировки просто пропускает блок обработчика
    и выполняет инструкцию следуюшую за вызвавшей исключение.
    И мне непонятно можно ли его заставить войти внутрь обработчика или нет
    я не так давно учу ассемблер и мне важно ваше мнение
     
  3. Mental_Mirror

    Mental_Mirror New Member

    Публикаций:
    0
    Регистрация:
    7 май 2007
    Сообщения:
    431
    d51
    Просто помести int3 в свой обработчик.
     
  4. Hellspawn

    Hellspawn New Member

    Публикаций:
    0
    Регистрация:
    4 фев 2006
    Сообщения:
    310
    Адрес:
    Москва
    можно заставить =) надо пропатчить на детект через DebugPort, тогда ольга войдёт в обработчик...
     
  5. d51

    d51 New Member

    Публикаций:
    0
    Регистрация:
    4 ноя 2007
    Сообщения:
    17
    Всем спасибо разобрался. Действительно при установке векторного обработчика
    исключений OllyDbg иногда не входит в обработчик а перепрыгивает на
    следуюшую инструкцию разобравшись внимательно можно отметить что это
    происходит при исключении 80000001
    то есть если страница памяти охраняемая имеет атрибут PAGE_GUARD
    как побороть?Я просто трасирую в SoftIce или Можно подкоректировать код в
    памяти.Поставить Int3 в теле обработчик .Отладчик показывает адрес вызвавший исключение внизу окна слева а дальше понятно

    Для остальных исключений достаточно настроить OllyDbg через меню Опции->
    опции отладчика-> исключения ;включив соответсвуюшую флаг игнорировать
    там же можно поставить и диапазон исключений которые отладчик пропустит
    если они мешают работать
    проверено ollyDbg 10 SoftIce DS 3.2 Спасибо за помошь

    с уважением d51
     
  6. Mental_Mirror

    Mental_Mirror New Member

    Публикаций:
    0
    Регистрация:
    7 май 2007
    Сообщения:
    431
    Hellspawn
    Да тут же обычная прога, а ты говоришь о антиотладочной фиче...
     
  7. Hellspawn

    Hellspawn New Member

    Публикаций:
    0
    Регистрация:
    4 фев 2006
    Сообщения:
    310
    Адрес:
    Москва
    дык, там дело в том что это трабла ринг3 отладчиков, они не видят эти обработчики)))
    если протрассировать не много, то будет ясно почему ;)
     
  8. seeQ

    seeQ New Member

    Публикаций:
    0
    Регистрация:
    3 сен 2003
    Сообщения:
    71
    Даже не трассируя можно с 99% гарантией предположить:
    Так как в RtlDispatchException первым делом отработает VectoredExceptionHandler и соответственно вернет EXCEPTION_CONTINUE_EXECUTION, то до SEH дело не дойдет, а одладочные события наверно там и генерятся.