Сейчас на форуме: UniSoft, bartolomeo (+6 невидимых) |
![]() |
eXeL@B —› Программирование —› LDT. |
Посл.ответ | Сообщение |
|
Создано: 16 января 2011 01:38 · Поправил: Clerk · Личное сообщение · #1 Здрасте. Нужно из ядра установить LDT. Возможные способы: o Вручную. Выделить пул, сформировать там дескриптор и загрузить в EPROCESS. При этом возникают некоторые проблемы. o NtSetLdtEntries. o NtSetInformationProcess(ProcessLdtInformation). o KiGetTickCount(Int 0x2A). Желательно использовать прерывание: Code:
1. ISR устанавливает LDT, если вызов из UM, тоесть для VDM процессов. В ядре кодовый селектор имеет значение KGDT_R0_CODE и нулевой CPL, таким образом проверка: Code:
не пройдёт. Это проблема первая. 2. Далее сервис NtSetLdtEntries не допустит загрузку ядерного дескриптора, так как выполняются проверки DPL, адресов и пр. в следующей функции: Code:
Это вторая проблема. Интересуют способы решения. Условие: патчить ничего нельзя, ну в общем как обычно. ![]() |
|
Создано: 16 января 2011 13:00 · Личное сообщение · #2 |
|
Создано: 16 января 2011 13:26 · Поправил: Alchemistry · Личное сообщение · #3 |
|
Создано: 16 января 2011 15:01 · Личное сообщение · #4 |
|
Создано: 22 января 2011 14:01 · Поправил: sys_dev · Личное сообщение · #5 |
|
Создано: 22 января 2011 16:01 · Поправил: Модератор · Личное сообщение · #6 |
|
Создано: 22 января 2011 17:55 · Поправил: Модератор · Личное сообщение · #7 Это форум где собираются и общаются крякеры если ты есчо не понял. Главные слова здесь - общаются и крякеры. Ты не умеешь общаться и ты не крякер, не ходи сюда больше. От модератора: сообщение исправлено, оставлена основная мысль, заодно забанен на неделю за срач ![]() |
![]() |
eXeL@B —› Программирование —› LDT. |