Sice и его Инты

Тема в разделе "WASM.RESEARCH", создана пользователем lolo133, 17 янв 2006.

  1. lolo133

    lolo133 New Member

    Публикаций:
    0
    Регистрация:
    22 дек 2005
    Сообщения:
    5
    Помогите плиз разрулить ситуацию:

    a)Имеем.

    1)WinXp

    2)некую прогу которая перехватывает int 1 ; int3; (емеет свой дровишник для этих целей уровня ядра)

    3)S_Ice (DS-3.0)

    b)Результат.

    если стартует прога первой не работает S_Ice(потому как потом дровишник этой проги сразу валит всю систему)

    ecли стартует первый S_Ice не работает прога (но система после этого слава богу жива)

    c)Надо.

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

    d)Мысли по этому поводу.

    написать свой дровишник который будет подменивать обработчики в зависимости от того кто вызвыл соответствующий int (1,3)

    e)Внимание вопрос.

    Допустим я обработчик int 1(3) и меня кто то вызвал

    каким образом я могу определить S_Ice это ломиться или нет

    ?



    ЗЫЖ если я где то ошибаюсь или некоректно выразился просьбы сильно не пинать потому как с рингом 0 столкнулся впервые.
     
  2. _staier

    _staier New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2003
    Сообщения:
    738
    Адрес:
    Ukraine
    читай про frogsice и др

    про методы обнаружения sice
     
  3. Ms Rem

    Ms Rem New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2005
    Сообщения:
    1.057
    Адрес:
    С планеты "Земля"


    Очень просто. Для int 3 надо сравнить юзерный eip потока в стеке-1 с списком установленых бряков, и если хоть с одним совпадает, то вызвал айс. С int 1 дела обстоят сложнее, тут придется проверять находиться ли в данный момент айс в режиме трассировки, какой поток он трассирует и список аппаратных бряков.

    Распределение прерываний впринципе не проблема, а проблемой будет похукать их так, чтобы защита это не заметила.
     
  4. lolo133

    lolo133 New Member

    Публикаций:
    0
    Регистрация:
    22 дек 2005
    Сообщения:
    5
    to Ms Rem Бик сенькс бум думать.

    еще мысль появилась:

    впринципе диапазон адресов из которых происходит вызов Int1 - int3 статичен в разрезе одной и той же машины+операционки

    те можно посмотреть если eip в этом диапазоне значит юзаем обработчик проги во всех остальных случаях идем в сайс. Хотя опять же непонятно а если мы дебажим прогу в этом диапазоне?

    И вообще где нибудь можно почитать как сайс организует трассировку брэкпоинты отслеживает итд ?