Сейчас на форуме: -Sanchez- (+8 невидимых) |
eXeL@B —› Основной форум —› Дамп драйвера |
Посл.ответ | Сообщение |
|
Создано: 11 марта 2017 15:43 · Поправил: Boostyq · Личное сообщение · #1 Всем привет, Изучаю защиту, которая использует драйвер для скрытия процессов/доступа к ним Драйвер называется zwave1.sys и запускается по требованию шилда этой защиты Мне нужно получить этот драйвер как бинарник, чтобы изучить По информации из ProcessHacker2 драйвер лежит "\??\C:\Windows\zwave1.sys", но в папке, конечно, ничего нет - причем даже во время работы драйвера Известно, что он хукает SSDT, и ,по-видимому, как-то скрывает себя Под рукой 7x64 и XPx32 на виртуалке, работает везде, скрывается тоже и там и там Собственно, возможно ли как-то сдампить его, и может кто-нибудь объяснить механизм Спасибо ----- В облачке многоточия |
|
Создано: 11 марта 2017 16:24 · Поправил: dosprog · Личное сообщение · #2 Boostyq пишет: но в папке, конечно, ничего нет - причем даже во время работы драйвера Значит, он удаляется сразу после запуска. Boostyq пишет: и это вообще законно ли это??? Нет. Это незаконно, конечно же. Попытка вмешательства в алгоритм работы защищённого ПО. | Сообщение посчитали полезным: Boostyq |
|
Создано: 11 марта 2017 16:24 · Личное сообщение · #3 |
|
Создано: 11 марта 2017 16:30 · Поправил: dosprog · Личное сообщение · #4 |
|
Создано: 11 марта 2017 16:34 · Личное сообщение · #5 Jupiter пишет: Ставишь на виртуалку. Запускаешь, что нужно для работы драйвера. С хоста заходишь на файловую систему виртуалки и забираешь драйвер. А по-подробнее, как это сделать? Я запустила сейчас, попробовала GMER, действительно, он показывает, что есть такой драйвер в модулях, но сдампить не открывается контекстное меню. Так же он показал, что: Использую WinXP на VMware... ----- В облачке многоточия |
|
Создано: 11 марта 2017 16:45 · Личное сообщение · #6 |
|
Создано: 11 марта 2017 17:18 · Личное сообщение · #7 Boostyq пишет: XPx32 на виртуалке 0ea2_11.03.2017_EXELAB.rU.tgz - RkUnhooker 3.8.389.593 SR2.7z | Сообщение посчитали полезным: Boostyq |
|
Создано: 11 марта 2017 17:57 · Личное сообщение · #8 |
|
Создано: 11 марта 2017 18:04 · Личное сообщение · #9 |
|
Создано: 11 марта 2017 18:19 · Личное сообщение · #10 Jupiter Поэтому я спросил, что не понятно о чём речь. Модуль может удалиться, может скрываться, может он запакован - тогда образ будет иной чем на диске. Нет инфы никакой что бы обсуждать механизмы. Ничего нельзя извлечь из скрина выше. Пропатчены начала сервисов. Обычно это делается через сервисные таблицы. Чем больше изменений, тем больше мусора в ядре и соотвественно анстаб. Нужен хотя бы дизасм одного хэндлера для начала. ----- vx |
|
Создано: 11 марта 2017 18:25 · Поправил: Boostyq · Личное сообщение · #11 Так сдампить удалось, даже тремя методами: 1) Сделала снэпшот в vmware и в файле vmem по сигнатуре нашла загруженный драйвер в оперативной памяти, только их там около сотни было, но нужный выцепила 2) Через Kernel Detective, правда защита детектит это, но сдампить я успела 3) Самый простой вариант был через RkUnhooker, спасибо Gideon Vi, защита не реагирует на него Стало ясно, что дамп, это таки дамп, и таблицы импорта мне там не увидеть, но его, наверное, нечем восстановить? Буду пробовать перехватить оригинальный драйвер, до удаления Точно не уверена, есть ли какой-либо протектор, по дампу плохо ясно, если нет, то простой вариант - это оригинальный файл, а если есть то придется искать как восстановить импорт... хотя может дампа ntoskrnl хватит для изучения, если функции вызываются только его? Jupiter пишет: difexacaw Механизм дампа/антидампа/как сдампить этот дров. Кэп. Механизм антидампа, т.е. почему драйвер скрыт. Патчи функций ядра есть только пока драйвер запущен. ----- В облачке многоточия |
|
Создано: 11 марта 2017 19:50 · Личное сообщение · #12 |
|
Создано: 11 марта 2017 21:38 · Поправил: Boostyq · Личное сообщение · #13 difexacaw пишет: Может лучше опишите суть задачи, зачем вам этот дров нужен и что он вообще делает. Конечно q.q Это драйвер от защиты, она с ним связывается и передает ему команды по своему протоколу, он умеет скрывать процессы, защищать их от записи и чтения, даже от заморозки и все это время процесс находится под эгидой этого драйвера, так что мне нужно получить этот драйвер для изучения протокола Дамп сработал, но во-первых там нет таблицы импорта и я не знаю можно ли ее восстановить готовыми тулзами Кроме того, изучив его немного, я поняла, что скорее всего это лишь компонент, т.е. есть драйвер более высокого уровня, который как-бы распределяет какому драйверу запускаться на какой системе Так же я попробовала просканировать оперативную память снэпшота от vmware небольшим граббером, который только что написала, получилась фигня, мб в памяти все храниться по кусочкам, но ни одного валидного файла ----- В облачке многоточия |
|
Создано: 11 марта 2017 22:17 · Личное сообщение · #14 |
|
Создано: 11 марта 2017 22:30 · Личное сообщение · #15 Jupiter пишет: Boostyq А ты не пробовала найти драйвер до установки? Ведь можно его исследовать не только в виде дампа, но и в виде исходного драйвера. Пусть даже запакованного/под ВМ. Пробовала конечно. Файла просто нет. Я думаю внутри исполняемого файла (он накрыт вм) есть установка этого драйвера, его запуск и удаление, как он только загрузился. Или же сам драйвер умеет себя скрывать каким-либо образом... ----- В облачке многоточия |
|
Создано: 11 марта 2017 22:46 · Личное сообщение · #16 Боже, что я здесь читаю, о господи! Какой кошмар. ВМВаре, ага, нам нужно больше виртуалок. Давайте по порядку. 1. Как сделать дамп? Чтобы сделать дамп, нужно знать базу образа и размер. В нашем случае нужна база загрузки драйвера и его ImageSize. Как я понимаю, RkU это любезно показывает. Теперь нужно просто загрузить свой драйвер. Потом из него просто считать кусок памяти по указанному адресу (ImageBase) указанного размера (ImageSize). Результат сохранить в файл. Самый простой способ - передать через IOCTL запросы параметры, и принять в буфер результат. Детальнее 2. Как работают антируткиты, когда определяют скрытые модули/хуки и прочую лабуду? Алгоритмы разные, но в целом есть один простейший подход - вызов оригинальной Nt* функции в обход хуков. Это тема отдельного разговора, но в целом об этом уже писалось ранее. Стоит погуглить старые статьи Ms-Rem. 3. А не взять ли этот драйвер до момента его загрузки? Бинго, вариант попроще будет. В самом хардкорном случае берём ядерный дебаггер, ставим брейкпоинт на NtCreateFile, ждём. ----- Stuck to the plan, always think that we would stand up, never ran. | Сообщение посчитали полезным: Boostyq, gloom |
|
Создано: 11 марта 2017 22:51 · Личное сообщение · #17 |
|
Создано: 11 марта 2017 23:13 · Поправил: Boostyq · Личное сообщение · #18 Такс, разобралась Защита имеет собственный формат модулей (шифрованные dll без заголовков, сжатый lzo и шифрованный nspack алгоритмом) Вот почему я не могла найти контроллер драйвера, он не был под вм, его просто не было в списке модулей, т.к. был загружен кастомным лоадером. Я не стала мудрить и просто сняла дамп модуля во время его работы, до наложения обфускации. Итак, я получила чистую дллку, оказалось что она и хранила в ресурсах 3 драйвера (для старых ос, для новых 32-битных, и новый для 64-битных) Все три драйвера беззащитны, так что изучение протокола будет проще Всем спасибо, задача решена, пойду изучать ----- В облачке многоточия | Сообщение посчитали полезным: VodoleY, gloom |
eXeL@B —› Основной форум —› Дамп драйвера |
Эта тема закрыта. Ответы больше не принимаются. |