Антиотладка и антитрейсинг в ядре...

Тема в разделе "WASM.NT.KERNEL", создана пользователем zoool, 7 июл 2009.

  1. SashaTalakin

    SashaTalakin New Member

    Публикаций:
    0
    Регистрация:
    15 дек 2008
    Сообщения:
    261
    щито? вообще я за возврат редактирование тк перечитываю посты только после их размещения

    в гугл

    пример см. выше. можешь заплатить мне денег и я приму это как заказ написать тебе антиотладочные приемы конкретно для кода в ядре.

    мне мама делает
     
  2. je_

    je_ New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2004
    Сообщения:
    143
    справнедливо ли вас забанить!?
     
  3. SashaTalakin

    SashaTalakin New Member

    Публикаций:
    0
    Регистрация:
    15 дек 2008
    Сообщения:
    261
    je_
    щито нумбер ту
     
  4. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Акуйла
    Забаньте это существо, оно не постит технические посты, ему сдесь не место, темболее меня сильно раздражает.
     
  5. je_

    je_ New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2004
    Сообщения:
    143
    сам он согласен, и мы с ним
     
  6. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Йа про автора #23.
     
  7. SashaTalakin

    SashaTalakin New Member

    Публикаций:
    0
    Регистрация:
    15 дек 2008
    Сообщения:
    261
    _je давай свои предъявы по списку если па делу то я впринципе понятия соблюдаю
     
  8. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Ктонибудь шлюзы задач для релоада контекста использовал, если да то опешите нюансы, не совсем понимаю как заюзать.
     
  9. Mika0x65

    Mika0x65 New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2005
    Сообщения:
    1.384
    А что с шлюзами не так? jmp на шлюз задачи вызывает загрузку контекста без установки EFLAGS.NT (nested task). call на шлюз задачи устанавливает этот флаг. iret проверяет, установлен ли этот флаг, и если да, то селектор TSS берется из соответствующего поля текущего TSS. Кроме того, есть еще флаг busy, он проставляется в дескрипторе активной задачи. Нельзя еще раз вызвать задачу, которая сейчас активна (т.е. у которой установлен флаг busy).

    Это так, навскидку.
     
  10. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Mika0x65
    Я не про то, а про антитрейс. Тоесть генерируется эксцепшин и задача переключается(загружается в процессор контекст из тсс аппаратно), в нём TF будет сброшен. TSS.T не важен, так как вся таблица на лету заполняется и его никто взводить не будет. Думаю оптимально ли и как это трассировать, прямо из #DB переключать задачу, или в тсс TF писать до переключения. Более эффективного механизма не вижу.
     
  11. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    И есчо из подвинды юзалось такое сторонним кодом ?
     
  12. Medstrax

    Medstrax Забанен

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    673
    Clerk
    В чем собственно вопрос? Как трассировать код, выполняющий аппаратное переключение задач? Или как уйти от трассировки, используя этот механизм?
     
  13. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Medstrax
    Второе. Вобщем с реализацией проблем не вижу, как будет время сделаю.
     
  14. ohne

    ohne New Member

    Публикаций:
    0
    Регистрация:
    28 фев 2009
    Сообщения:
    431
    чтобы дурных вопросов избежать лучше почитать мануалы интела
    6 раздел к примеру об обработке прерываний и исключений
    то что клерк говорит это все оттуда
     
  15. Medstrax

    Medstrax Забанен

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    673
    Clerk.
    Тут не все так просто. Любое переключение задач приводит к сохранению контекста в текущем тсс. Следовательно трейсеру достаточно поставить брекпойнт на запись где-то в пределах тсс, чтобы после переключения задач поиметь #DB. Хотя не факт, что этот брекпойнт сработает, т.к. загрузка нового селектора SS может иметь тот же эффект, что и
    mov(pop) ss, подавляющие отладочные эксепшены (правда не все ;). А может и не иметь, не помню ))).
     
  16. je_

    je_ New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2004
    Сообщения:
    143
    не надо переходить в космос. LIDT лучше всех! шас будем обсуждать!?
     
  17. TSS

    TSS New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2009
    Сообщения:
    494
    Medstrax
    Насколько я помню в TSS сохраняется не весь контекст, а только esp, так что бряк нужно ставить именно туда =)
    Но найти это будет также просто... Вобщем интересная идея anyway.
     
  18. Medstrax

    Medstrax Забанен

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    673
    Вау, какая новость ))))
     
  19. TSS

    TSS New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2009
    Сообщения:
    494
    Medstrax
    Контект для тебя = 1 регистру? Вау, какая новость ))))
     
  20. je_

    je_ New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2004
    Сообщения:
    143
    "TSS", имя позорите Ж)