Привилегии отладчика под гостем или ограниченным пользователем

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

  1. jeni

    jeni Евгений

    Публикаций:
    0
    Регистрация:
    10 мар 2007
    Сообщения:
    41
    Как получить привилегии отладчика из под гостя или хотя бы из под ограниченного пользователя???
     
  2. nitrotoluol

    nitrotoluol New Member

    Публикаций:
    0
    Регистрация:
    5 сен 2006
    Сообщения:
    848
    никакъ
     
  3. jeni

    jeni Евгений

    Публикаций:
    0
    Регистрация:
    10 мар 2007
    Сообщения:
    41
    А может все таки как-нить можно через ring-0???
     
  4. PageFault

    PageFault New Member

    Публикаций:
    0
    Регистрация:
    5 мар 2007
    Сообщения:
    31
    можно, правда через ring0 никак, надо залазить в порты ввода/вывода мимо прерываний BIOS. Для этого надо перевести процессор в unreal32 mode, затем установить jmp через ring0 селектор в дескриптор данных ядра. После этого надо найти 31331 прерывание bios и вызвать его через тройной хук обрабочика клавиатуры. При этом надо следить чтобы твои данные оставались в первой планке памяти на мамке, а не разбегались за ее пределы.
     
  5. jeni

    jeni Евгений

    Публикаций:
    0
    Регистрация:
    10 мар 2007
    Сообщения:
    41
    Это все можно сделать в win???
     
  6. Cr4sh

    Cr4sh New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2006
    Сообщения:
    668
    PageFault
    жжоте =)))
     
  7. PageFault

    PageFault New Member

    Публикаций:
    0
    Регистрация:
    5 мар 2007
    Сообщения:
    31
    Нет, надо сначала выгрузить win и загрузить dos.
     
  8. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Для этого нужно прямо в вин перевести процессор в реальный режим сперва.

    mov eax, cr0
    and al, 0xfe
    mov cr0, eax

    А потом вывести еденицу в порт 31337. И не забыть замаскировать прерывания
     
  9. jeni

    jeni Евгений

    Публикаций:
    0
    Регистрация:
    10 мар 2007
    Сообщения:
    41
    Вы че прикалываетесь надо мной?
     
  10. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Ты что, мы на полном серьезе.
     
  11. Freeman

    Freeman New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2005
    Сообщения:
    1.385
    Адрес:
    Ukraine
    так ты сразу и выгрузил вин... а кто сначало дос спроецирует на первые два банка памяти планки оперативки.
    Great, не 31337, а 33731
     
  12. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    FreeManCPM
    Точняк... придется открыть command.com, спроецировать сначала его на системное пространство, потом через MDL на самое начало. Потом перейти в ринг3, оттуда, через interrupt gate, отключить старую проекцию и инициализировать досовские структуры.
    кстати, достаточно двойного. третий хук может повесить систему, если не успеть поставить SEH
     
  13. PageFault

    PageFault New Member

    Публикаций:
    0
    Регистрация:
    5 мар 2007
    Сообщения:
    31
    Ну так третий хук надо делать по уму, с помощью dr регистров, а вы наверное используете хук msr'ов через mmx, поэтому все и виснет.
    Вобще, как уже сказал Great, надо замаскировать прерывания и исключения защищенного режима. Делается это записью 1 в 15 бит EFER_MSR.
     
  14. jeni

    jeni Евгений

    Публикаций:
    0
    Регистрация:
    10 мар 2007
    Сообщения:
    41
    мне надо ето под win32, и если ето не прикол, то пожалуйста кинте исходники!
     
  15. Scratch

    Scratch New Member

    Публикаций:
    0
    Регистрация:
    1 янв 2005
    Сообщения:
    161
    ..Спасибо за идеи, ребят, на win32 Все получилось... Только так и не смог заставить всю систему работать на vista x64 :dntknw: Не могу удержать образ доса на первом банке...
     
  16. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    jeni
    я тебе кинуо сорс перевода в Real mode.
    надо оставить 32битные селекторы в GDT, потом делаешь OUT для записи еденицы в порт, WRMSR для записи 1 в 15 бит MSR, ставишь SEH записью в FS:[0]

    Scratch
    кинь топикстартеру сорс, он просит
    кстати ты тройной хук делал? или двойной. там же придется прерывания маскировать
     
  17. maestro-ant

    maestro-ant Member

    Публикаций:
    0
    Регистрация:
    23 июл 2006
    Сообщения:
    112
    А исходничек, как обойти любой фаер под любым режимом и под любой осью гдето в гугле видал. Там тоже вот надо было заюзать unreal32 mode и не тройной хук а четвертьтной! ..во блин.
     
  18. Scratch

    Scratch New Member

    Публикаций:
    0
    Регистрация:
    1 янв 2005
    Сообщения:
    161
    Great
    Двойной с половиной ) Прерывания худо-бедно замаскировались, винда и носом не ведет, а вот обработчик SEH падает... Из за мусора который он оставляет в памяти, и как следствие - глюков не могу приаттачить сорц :dntknw: Щас буду посмотреть что внутри GDT творится... Может самописный MemoryManager (вместо оригинального в kernel32.dll) хуки не восстанавливает...

    jeni
    Не сцать, прорвемся!
     
  19. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    дык надо было сделать KfRaiseIrql до HIGH_LEVEL.. наверное, поэтому.
    зы. а NMI замаскировал? и надо было кстати удалить PDO для клавы.. он будет мешать поддержке доса по втором банке памяти...
     
  20. maestro-ant

    maestro-ant Member

    Публикаций:
    0
    Регистрация:
    23 июл 2006
    Сообщения:
    112
    Scratch
    этот хук называется - Хук с полуподвыподвертом. Он не простой а волшебный.

    РS Кто нить сорц выложит в концето концов!!! :)