Gs.

Тема в разделе "WASM.RESEARCH", создана пользователем Clerk, 28 авг 2010.

  1. Medstrax

    Medstrax Забанен

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    673
    У меня сайс трейсит без проблем. Не понял в чем трабла.
     
  2. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.552
    Адрес:
    Russia
    Clerk
    Ну как сказать нельзя - если в олли вбить фолов дамп gs:[eax+c] вручную и нажать показать то дамп выведется верным. Так что тут именно отладчик причем, но GS читать он умеет (иначе как он его показывает, что он изменился, и как дамп выводит). Windbg тоже кстати генерит AV. Так что дело в механизме трейса, который возможно чекает GS.
     
  3. Medstrax

    Medstrax Забанен

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    673
    Я не понял тогда о чем речь. Говорим об ольге и ринг-3 отладчиках? Или в целом?
     
  4. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.552
    Адрес:
    Russia
    medstrax1
    Да. О ринг3 отладчиках речь идет. Вы гляньте код ) Вроде не ядерный же :)
     
  5. Medstrax

    Medstrax Забанен

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    673
    Прчем здесь сам код? Я спрашиваю в чем надо его трейсить, чтобы получить эффект, о котором вы говорите. Ринг 3 код я могу трейсить как в оле, так и в сайсе. оли щас под рукой нет, но сайс его трейсит нормально.
     
  6. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.552
    Адрес:
    Russia
    medstrax1
    Вы любитель читать между строк? Я вам сказал конкретно, дальше сами. Сайс меня, да и клерка я так думаю, сейчас не интересует.
     
  7. Medstrax

    Medstrax Забанен

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    673
    Рекомендую воздержаться от определений. В противном случае прошу уточнить какие мои высказывания можно интерпретировать как "чтение между строк".
    По сути. Клерк ни разу не сказал об инструменте для отладки.
    Еще более по сути. Данный способ не имеет право на существование как антитрейс против ринг0 отладчиков
     
  8. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.552
    Адрес:
    Russia
    medstrax1
    ну во первых я вам сразу сказал :
    Чего вы r0 привязали сюда - не понимаю.
     
  9. Clerk

    Clerk Забанен

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

    Регистр Gs не может быть считан не олей, ни виндбг, так как все манипуляции выполняются с контекстом, а не с состоянием задачи(трап-фреймами). А для конвертации контекста в трап-фрефм и обратно есть две функции - KeContextToKframes() и KeContextFromKframes(). Они обнуляют регистр Gs, если кодовый селектор отличен от дефолтного(для ntvdm, но разумеется это не учитывается достаточно). Таким образом не возможно получить значение регистра Gs из контекста, также и изменить его. Это проблема ядра, а не софта.
     
  10. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.552
    Адрес:
    Russia
    Clerk
    ну я был прав с тем что "что-то" изменяет GS в ноль. Но все равно спасибо за более развернутый ответ.
     
  11. Clerk

    Clerk Забанен

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

    Medstrax Забанен

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

    green New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2003
    Сообщения:
    1.217
    Адрес:
    Ukraine
    medstrax1
    Очевидно, из-за того, что исключения при трассировке обрабатываются им без участия винды.
     
  14. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    medstrax1
    Реальность такова, что системный отладчик работает с контекстом, полученным после конвертации трап-фрейма в него. Тоесть например #DB - KiDispatchException() - KeContextFromKframes() - KdpTrap(Dbg) - KeContextToKframes() - EXIT_ALL. Также и локально конвертация контекста выполняется:
    Код (Text):
    1. KeContextToKframes:
    2.             ...
    3.             if (TrapFrame->SegCs == (KGDT_R3_CODE | RPL_MASK)) {
    4.                 TrapFrame->SegGs = 0;
    5.             } else {
    6.                 TrapFrame->SegGs = ContextFrame->SegGs;
    7.             }
    На счёт айса green прав.