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

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

  1. TSS

    TSS New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2009
    Сообщения:
    494
    je_
    Объяснитесь :)
     
  2. je_

    je_ New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2004
    Сообщения:
    143
     
  3. TSS

    TSS New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2009
    Сообщения:
    494
    je_
    В винде да, ну возможно i/o map еще, не помню точно =\ Весь контекст там точно не сохраняется.
     
  4. je_

    je_ New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2004
    Сообщения:
    143
    выньда.. выньда.. выньда..
    CPU работает.. по МАНУАЛу Ж)
     
  5. Mika0x65

    Mika0x65 New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2005
    Сообщения:
    1.384
    TSS
    Из tss берется значение ss:esp при переходе r3 ->r0. Это требование Intel. Ну и обработчик восьмого прерывания -- шлюз задачи.
     
  6. TSS

    TSS New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2009
    Сообщения:
    494
    Mika0x65
    Разве я не тоже самое написал в посте #37? А вот г-н je_ так не думает и начал нести чушь по пороченье имени
     
  7. TSS

    TSS New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2009
    Сообщения:
    494
    При переключении контекста кроме esp, в TSS сохраняется и указатель на i/o map.
     
  8. TSS

    TSS New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2009
    Сообщения:
    494
    Ну вернее это даже не указатель, а offset.
     
  9. Medstrax

    Medstrax Забанен

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    673
    The processor updates dynamic fields when a task is suspended during a task switch. The following are dynamic fields:
    •General-purpose register fields — State of the EAX, ECX, EDX, EBX, ESP, EBP, ESI, and EDI registers prior to the task switch.
    •Segment selector fields — Segment selectors stored in the ES, CS, SS, DS, FS, and GS registers prior to the task switch.
    •EFLAGS register field — State of the EFAGS register prior to the task switch.
    •EIP (instruction pointer) field — State of the EIP register prior to the task switch.
    •Previous task link field — Contains the segment selector for the TSS of the previous task
    (updated on a task switch that was initiated by a call, interrupt, or exception).
    This field (which is sometimes called the back link field) permits a task switch back to the previous task by using the IRET instruction.
     
  10. TSS

    TSS New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2009
    Сообщения:
    494
    Medstrax
    Ну и чего ты тут выдал?
    Еще раз говорю - при переключениях задач в винде апдейтятся только esp и смещение на io map, больше ничего.
     
  11. Mika0x65

    Mika0x65 New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2005
    Сообщения:
    1.384
    TSS
    Карта не сохраняется, она всегда там есть (если была задана при создании tss или при изменении).
     
  12. Mika0x65

    Mika0x65 New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2005
    Сообщения:
    1.384
    TSS
    Так не апдейтится оно. И смещения нет как такового. Карта идет сразу за tss. Т.к. tr не меняется, то из tss просто берется ss:esp.
     
  13. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    TSS
    В виндоз контекст задачи хранится в ядерном стеке(KTRAP_FRAME) и формируется програмно. При аппаратном переключении задач контекст сохраняет в TSS сам процессор аппаратно. Те несколько полей(в частности стек) требуются при переключении колец защиты, например при генерации исключения.
     
  14. TSS

    TSS New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2009
    Сообщения:
    494
    Clerk
    Это то понятно, Zwф-ция -> _KUSER_SHARED_DATA.SystemCall -> KiFastSystemCall(или KiIntSystemCall) -> sysenter(или соот-но int2e) -> _KiFastCallEntry(или int2e hanlder) -> перезагрузка esp из tss (mov esp, fs:PCR[PcTss]).

    Ты лучше расскажи, почему внутри SwapContext есть код который апдейтит IoMapBase в TSS
    ( mov [ebp]+TssIoMapBase, cx ), ведь ф-ции которые изменяют io map (например Ke386SetIoAccessMap) напрямую пишут в PCR.
     
  15. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    TSS
    Так как карта одна, но её смещение определяет возможность её использования, тоесть один процесс может её юзать, а другой не может, что и загружается в TSS из Pcb.IopmOffset. Про это была статья Дейла Робертса. Какое отношение IOPM имеет к антиотладке ?
    Не совсем так. Если исполняется инструкция Sysenter, то стек загружается из IA32_SYSENTER_ESP(аппаратный DPC-стек). При входе в 0x2e прерывание стек загружается из TSS. Этот стек уникален для каждого потока. Вобщем почитайте коменты http://files.virustech.org/indy/Code/Sysenter/CsDbg/Trap.asm
    Наверно слышали что Руссинович сказал что прерывание может исполняться не в контексте какоголибо потока. Это верно - пока контекст задачи формируется(трап-фрейм) эта задача не существует для планировщика(существуют только обьекты с ней связанные), в это время тред не должен быть прерван, иначе восстановление его состояния невозможно(оно есчо не сохранено).
     
  16. TSS

    TSS New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2009
    Сообщения:
    494
    Так он не один раз может быть закриптован то, в статике замучаешься слои криптора отдирать
     
  17. TSS

    TSS New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2009
    Сообщения:
    494
    Вот почитай: http://blog.threatexpert.com/2008/05/rustockc-unpacking-nested-doll.html =)
     
  18. TSS

    TSS New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2009
    Сообщения:
    494
    Ну незнаю... Зачем нормальному софту противодействовать Syser-у и WinDbg-у? Хотя когда то давно скайп мне софтайс запускать не давал, первая мысль была - снести его нах(даже патчить влом было), но благо раптор прислал уже пропатченный ехе. Вобщем мне кажется топик стартеру это нужно было не для нормального софта, надеюсь разбанят его и он нам расскажет
     
  19. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Господа что понимать под "нормальным" софтом ?
     
  20. reversecode

    reversecode Guest

    Публикаций:
    0
    наскоко я знаю
    - sptd скривает апи для вызовов к CD(недокументированые)
    - скайп скрывал(скрывать там нечего) токо что бы не начали плодить альтертанивных клиентов и полностью владеть рынком

    давайте еще примеры

    - нормальный - значит не руткиты и не вирусы