Сейчас на форуме: vasilevradislav, Magister Yoda, site-pro, Rio (+6 невидимых) |
eXeL@B —› Крэки, обсуждения —› Обход PatchGuard'a |
. 1 . 2 . >> |
Посл.ответ | Сообщение |
|
Создано: 03 июня 2011 17:54 · Личное сообщение · #1 Как поставить хук на sysenter(syscall) безпалева пг? Два простых действия, хард.бряк по команде на IA32_SYSENTER_EIP. Плюс бряк на чтение первых 8 или 16 байт хэндлера инт1, оригинальный хэндлер сплайсим. при проверке начала хэндлера возвращаем оригинальные значения. Итого нужны 2(3) из 4-х dr'ов. Критикуйте) |
|
Создано: 03 июня 2011 18:18 · Личное сообщение · #2 spinz пишет: Критикуйте) Бряки не сработают потому что код PatchGuard'a очищает отладочные регистры перед проверкой и восстанавливает после. Если хочется сделать универсально - делайте через VT-X. ----- PGP key |
|
Создано: 03 июня 2011 18:34 · Личное сообщение · #3 |
|
Создано: 03 июня 2011 18:51 · Личное сообщение · #4 |
|
Создано: 03 июня 2011 19:09 · Личное сообщение · #5 spinz пишет: Кто мешает защитить др'ы по GD? Пробуйте. Какой смысл спорить если вы даже не пробовали. spinz пишет: Реально вт-х не роляет, если он задизаблен в биосе. Можно разрешить его через прямую запись в cmos, но надо занть нужные биты. я этот путь откинул. Зачем такие сложности, попросите пользователя включить VT-X при установке вашей программы. ----- PGP key |
|
Создано: 03 июня 2011 19:20 · Личное сообщение · #6 |
|
Создано: 03 июня 2011 20:00 · Личное сообщение · #7 |
|
Создано: 03 июня 2011 20:15 · Личное сообщение · #8 ага, первое правильное возражение. Теоретически конечно можно попробовать эмулить чужие хардварные брекпойнты через #PF, однако при правильной расстановке бряков со стороны защиты это гиблое занятие. я могу еще штук 5 привести вариантов, которые обламывают упомянутый подход. типа переноса идт, создания алиаса для физ.адреса,записи в первые байты хэндлера и пр. речь о другом. если говорить о руткитах - многие юзеры пользуют софт,который юзает др'ы? |
|
Создано: 03 июня 2011 20:25 · Личное сообщение · #9 Если возражать в контексте того что PatchGuard может научиться делать после очередного апдейта (а не умеет делать сейчас), то загрузка своей idt на время проверки обломает подобный метод даже без всякой самотрассировки. Если говорить о практической применимости, то проще содрать код отключения PatchGuard с uninformed.org чем изобретать что-то свое, что закроют в следующем обновлении PatchGuard. Скажу сразу - я PatchGuard не отключал, как-то не было такой надобности, и не вкурсе что сработает а что нет. Кому надо тот пусть и пробует. ----- PGP key | Сообщение посчитали полезным: Abraham |
|
Создано: 03 июня 2011 20:41 · Личное сообщение · #10 Давайте говорить от том, что пг умеет сейчас. В теории он может научиться многому, в т.ч. и вт-х, но седня не его день. йо, мну плакоть или смеяться? хак от униформы универсален ? ЗЫ. родилась мысля. запретить lidt банальным переводом ядра в ринг1. к ядерной памяти ринг1 доступ имеет, к привилегированным командам нет. i/o можно эмулить. мысль моментальная, и видимо нерабочая. но подумать можно. самая засада - любой код может определить CPL |
|
Создано: 03 июня 2011 21:43 · Личное сообщение · #11 |
|
Создано: 03 июня 2011 22:12 · Личное сообщение · #12 туча проверок не страшно. test cs,3 даст один рез-т и при р0, и при р1 ))) насчет самотрассировки нек-рых протекторов - лехко можно эмулить, если брейк по команде, либо TF Брейк по данным - жопа, если нехватает др'ов - надо что-то мутить через #PF. А тут наступает глобальный геморрой. Покрошить страницы на 4кб еще можно, но когда брейк по данным лежит в одной странице с хэндлером инт1 - тут надо основательно поизъебыв..ся |
|
Создано: 03 июня 2011 22:36 · Личное сообщение · #13 С протами не всё так просто, там и проверок целостности хватает, чтобы бряков не наставили, и VirtualProtect, чтобы рубить биты страниц для фолтов. И я не вижу тут нормального способа мулить самотрассировку на ДР. test cs,3 даст один рез-т и при р0, и при р1 Есть сомнения, что test 0,3 и test 1,3 одинаковым образом выставят ZF. |
|
Создано: 04 июня 2011 05:10 · Личное сообщение · #14 |
|
Создано: 17 июня 2013 21:56 · Личное сообщение · #15 Продолжу тему, давно я к вам не заглядывал. Недавно на китайских форумах было упоминание о новой технике. При вызове кернела делаются хитрые манипуляции с дескрипторами и каталогами страниц. В результате кернел выполняется в ринг3, при этом CS.CPL = 0 (такие дела, да-да, не удивляйтесь, кетайцы суки хитрые). Но при этом кернел из-за правильной настройки каталогов страниц не имеет доступа к чтению IDT и GDT(там u/s=0), сохраняя доступ к всей ядерной памяти. Таким образом, кернел не может проверить целостность IDT и GDT, и не может выполнить привилегированные инструкции, которые, понятно, эмулируются. Как то так. Есть у нас один маркетолог, говорит что тема теоретически рабочая. Имхо, лажовка это. На IOPL можно поймать, хотя пока неясно как |
|
Создано: 17 июня 2013 22:16 · Личное сообщение · #16 Если CS ядерный, что тогда подразумевается под тем, что он работает в ринг3? Ну и да, эмулить привилегированные несколько геморно, гипервизор нарисовать сравнимо, по-моему, и меньше шанс, что отвалится. | Сообщение посчитали полезным: Abraham |
|
Создано: 17 июня 2013 22:49 · Личное сообщение · #17 |
|
Создано: 17 июня 2013 23:34 · Личное сообщение · #18 |
|
Создано: 18 июня 2013 09:56 · Личное сообщение · #19 Во-первых, я несколько не улавливаю, каким образом эта братия рассинхронизировала CS.CPL и DPL из шадова. Ибо CS.CPL обновляется из DPL при каждой перезагрузке CS. Как говорится, пруф или не было. Во-вторых, не совсем понятно, откуда сохраняется доступ к всей ядерной памяти, коль реальный CPL там юзермодный. Если они шарят весь кернел для ринг3, в топку такой обход. И в-третьих, я погляжу, что на это действо скажет SMEP в 8 винде (да-да, он не совсем для этого, но всё же). |
|
Создано: 18 июня 2013 10:41 · Личное сообщение · #20 1) SMEP здесь не при делах. Ядерный код фактически выполняется с ринг3 привилегиями. Просто в селекторе CS.CPL = 0 2)Доступ к памяти сохраняется, действительно. При передаче управления ядру, эксепшн,инт, либо sysenter, это ловится и загружается новый CR3, где для кернельных страниц u/s=1. При возврате обратно в юзермод кернельные страницы опять становятся привилегированными 3)Рассинхронизация, как я понял, сделана через SMM. Процу пофиг что в дескрипторе, а что в селекторе, он тупо грузит при возврате из SMM в шадов и селектор значения из SMRAM |
|
Создано: 18 июня 2013 11:03 · Поправил: connect6 · Личное сообщение · #21 |
|
Создано: 18 июня 2013 12:35 · Личное сообщение · #22 |
|
Создано: 18 июня 2013 18:04 · Личное сообщение · #23 |
|
Создано: 18 июня 2013 19:16 · Личное сообщение · #24 |
|
Создано: 18 июня 2013 19:28 · Личное сообщение · #25 |
|
Создано: 18 июня 2013 20:17 · Личное сообщение · #26 |
|
Создано: 18 июня 2013 20:43 · Личное сообщение · #27 |
|
Создано: 18 июня 2013 21:23 · Личное сообщение · #28 |
|
Создано: 20 июня 2013 02:02 · Поправил: Dr0p · Личное сообщение · #29 spinz > мне весьма лениво на каждом форуме искать местные фичи. Сия метода известна со вримён виртека(2008 год) и является единственным годным методом сокрытия перехватов(вредоносный патч уже давно не приемлим), вдобавок был не так давно глобальный апдейт мотора(тока x86, 64 не поддерживает LDT, посему нужен полный дизасм, а пилить его есно не стоит). Если вы не знакомы с сим, то вы отстали и совсем не в теме. Да и справку искать не нужно, в шапке есть FAQ. Короче мозги у вас разжижены, хотя есчо не факт что ты не бот. > я не понимаю как это ловить в принципе, если принципс все же работает Это были не опята ? О чём вы говорите не понятно. SMM - безполезная хуйня. |
|
Создано: 21 июня 2013 01:42 · Личное сообщение · #30 клеркус, это снова ты? продолжай, от таких клоунов у нас возникает легкая эрекция | Сообщение посчитали полезным: DenCoder |
. 1 . 2 . >> |
eXeL@B —› Крэки, обсуждения —› Обход PatchGuard'a |