eXeLab
eXeL@B DVD 2017 !

Видеокурс программиста и крэкера 5D 2O17
(актуальность: октябрь 2O17)
Свежие инструменты, новые видеоуроки!

  • 400+ видеоуроков
  • 800 инструментов
  • 100+ свежих книг и статей

УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: SaNX (+1 невидимый пользователь)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Основной форум —› Дамп драйвера
Посл.ответ Сообщение
Boostyq

Ранг: 14.9 (новичок)
Статус: Участник

Создано: 11 марта 2017 15:43 · Поправил: Boostyq New!
· Личное сообщение · #1

Всем привет,
Изучаю защиту, которая использует драйвер для скрытия процессов/доступа к ним
Драйвер называется zwave1.sys и запускается по требованию шилда этой защиты
Мне нужно получить этот драйвер как бинарник, чтобы изучить
По информации из ProcessHacker2 драйвер лежит "\??\C:\Windows\zwave1.sys", но в папке, конечно, ничего нет - причем даже во время работы драйвера
Известно, что он хукает SSDT, и ,по-видимому, как-то скрывает себя
Под рукой 7x64 и XPx32 на виртуалке, работает везде, скрывается тоже и там и там
Собственно, возможно ли как-то сдампить его, и может кто-нибудь объяснить механизм, и это вообще законно ли это???
Спасибо
dosprog

Ранг: 293.2 (наставник)
Статус: Участник

Создано: 11 марта 2017 16:24 · Поправил: dosprog New!
· Личное сообщение · #2

Boostyq пишет:
но в папке, конечно, ничего нет - причем даже во время работы драйвера

Значит, он удаляется сразу после запуска.

Boostyq пишет:
и это вообще законно ли это???

Нет. Это незаконно, конечно же. Попытка вмешательства в алгоритм работы защищённого ПО.

| Сообщение посчитали полезным: Boostyq

Jupiter


Ранг: 522.0 (!)
Статус: Модератор
Research & Development

Создано: 11 марта 2017 16:24 New!
· Личное сообщение · #3

Ставишь на виртуалку. Запускаешь, что нужно для работы драйвера. С хоста заходишь на файловую систему виртуалки и забираешь драйвер.
dosprog

Ранг: 293.2 (наставник)
Статус: Участник

Создано: 11 марта 2017 16:30 · Поправил: dosprog New!
· Личное сообщение · #4

)
.. Кстати, имеются такие утилитки, которые умеют восстанавливать удалённые файлы.
Типо "энуреза" из нортон-утилит для доса.

Хотя, то ещё вопрос, в какой способ файл удалён. Иногда и "энурез" не поможет.

Boostyq

Ранг: 14.9 (новичок)
Статус: Участник

Создано: 11 марта 2017 16:34 New!
· Личное сообщение · #5

Jupiter пишет:
Ставишь на виртуалку. Запускаешь, что нужно для работы драйвера. С хоста заходишь на файловую систему виртуалки и забираешь драйвер.

А по-подробнее, как это сделать?
Я запустила сейчас, попробовала GMER, действительно, он показывает, что есть такой драйвер в модулях, но сдампить не открывается контекстное меню.
Так же он показал, что:

Использую WinXP на VMware...
Jupiter


Ранг: 522.0 (!)
Статус: Модератор
Research & Development

Создано: 11 марта 2017 16:45 New!
· Личное сообщение · #6

Boostyq
Либо через Shared Folders, если Online.
Либо через VMware-mount из Virtual Disk Development Kit (VDDK) и чтение файла VMDK (Virtual Machine Disk), если Offline.
Gideon Vi


Ранг: 1039.5 (!!!!)
Статус: Участник

Создано: 11 марта 2017 17:18 New!
· Личное сообщение · #7

Boostyq пишет:
XPx32 на виртуалке



{ Атач доступен только для участников форума } - RkUnhooker 3.8.389.593 SR2.7z

| Сообщение посчитали полезным: Boostyq

difexacaw

Ранг: 138.2 (ветеран)
Статус: Участник

Создано: 11 марта 2017 17:57 New!
· Личное сообщение · #8

Boostyq

> может кто-нибудь объяснить механизм

Какой механизм ?
Jupiter


Ранг: 522.0 (!)
Статус: Модератор
Research & Development

Создано: 11 марта 2017 18:04 New!
· Личное сообщение · #9

difexacaw
Механизм дампа/антидампа/как сдампить этот дров. Кэп.
difexacaw

Ранг: 138.2 (ветеран)
Статус: Участник

Создано: 11 марта 2017 18:19 New!
· Личное сообщение · #10

Jupiter

Поэтому я спросил, что не понятно о чём речь. Модуль может удалиться, может скрываться, может он запакован - тогда образ будет иной чем на диске. Нет инфы никакой что бы обсуждать механизмы.

Ничего нельзя извлечь из скрина выше. Пропатчены начала сервисов. Обычно это делается через сервисные таблицы. Чем больше изменений, тем больше мусора в ядре и соотвественно анстаб. Нужен хотя бы дизасм одного хэндлера для начала.
Boostyq

Ранг: 14.9 (новичок)
Статус: Участник

Создано: 11 марта 2017 18:25 · Поправил: Boostyq New!
· Личное сообщение · #11

Так сдампить удалось, даже тремя методами:
1) Сделала снэпшот в vmware и в файле vmem по сигнатуре нашла загруженный драйвер в оперативной памяти, только их там около сотни было, но нужный выцепила
2) Через Kernel Detective, правда защита детектит это, но сдампить я успела
3) Самый простой вариант был через RkUnhooker, спасибо Gideon Vi, защита не реагирует на него
Стало ясно, что дамп, это таки дамп, и таблицы импорта мне там не увидеть, но его, наверное, нечем восстановить?
Буду пробовать перехватить оригинальный драйвер, до удаления
Точно не уверена, есть ли какой-либо протектор, по дампу плохо ясно, если нет, то простой вариант - это оригинальный файл, а если есть то придется искать как восстановить импорт... хотя может дампа ntoskrnl хватит для изучения, если функции вызываются только его?

Jupiter пишет:
difexacaw
Механизм дампа/антидампа/как сдампить этот дров. Кэп.

Механизм антидампа, т.е. почему драйвер скрыт.
Патчи функций ядра есть только пока драйвер запущен.
difexacaw

Ранг: 138.2 (ветеран)
Статус: Участник

Создано: 11 марта 2017 19:50 New!
· Личное сообщение · #12

Boostyq

Может лучше опишите суть задачи, зачем вам этот дров нужен и что он вообще делает.
Boostyq

Ранг: 14.9 (новичок)
Статус: Участник

Создано: 11 марта 2017 21:38 · Поправил: Boostyq New!
· Личное сообщение · #13

difexacaw пишет:
Может лучше опишите суть задачи, зачем вам этот дров нужен и что он вообще делает.

Конечно q.q
Это драйвер от защиты, она с ним связывается и передает ему команды по своему протоколу, он умеет скрывать процессы, защищать их от записи и чтения, даже от заморозки и все это время процесс находится под эгидой этого драйвера, так что мне нужно получить этот драйвер для изучения протокола
Дамп сработал, но во-первых там нет таблицы импорта и я не знаю можно ли ее восстановить готовыми тулзами
Кроме того, изучив его немного, я поняла, что скорее всего это лишь компонент, т.е. есть драйвер более высокого уровня, который как-бы распределяет какому драйверу запускаться на какой системе
Так же я попробовала просканировать оперативную память снэпшота от vmware небольшим граббером, который только что написала, получилась фигня, мб в памяти все храниться по кусочкам, но ни одного валидного файла
Jupiter


Ранг: 522.0 (!)
Статус: Модератор
Research & Development

Создано: 11 марта 2017 22:17 New!
· Личное сообщение · #14

Boostyq
А ты не пробовала найти драйвер до установки?
Ведь можно его исследовать не только в виде дампа, но и в виде исходного драйвера. Пусть даже запакованного/под ВМ.

difexacaw
Насколько я понимаю задачи тс, она хочет изучить процесс взаимодействия защиты и защищаемой программы.
Boostyq

Ранг: 14.9 (новичок)
Статус: Участник

Создано: 11 марта 2017 22:30 New!
· Личное сообщение · #15

Jupiter пишет:
Boostyq
А ты не пробовала найти драйвер до установки?
Ведь можно его исследовать не только в виде дампа, но и в виде исходного драйвера. Пусть даже запакованного/под ВМ.

Пробовала конечно. Файла просто нет. Я думаю внутри исполняемого файла (он накрыт вм) есть установка этого драйвера, его запуск и удаление, как он только загрузился. Или же сам драйвер умеет себя скрывать каким-либо образом...
ARCHANGEL


Ранг: 630.3 (!)
Статус: Участник
ALIEN Hack Team

Создано: 11 марта 2017 22:46 New!
· Личное сообщение · #16

Боже, что я здесь читаю, о господи! Какой кошмар. ВМВаре, ага, нам нужно больше виртуалок.

Давайте по порядку.
1. Как сделать дамп?
Чтобы сделать дамп, нужно знать базу образа и размер. В нашем случае нужна база загрузки драйвера и его ImageSize. Как я понимаю, RkU это любезно показывает. Теперь нужно просто загрузить свой драйвер. Потом из него просто считать кусок памяти по указанному адресу (ImageBase) указанного размера (ImageSize). Результат сохранить в файл. Самый простой способ - передать через IOCTL запросы параметры, и принять в буфер результат.

Детальнее --> Здесь <--

2. Как работают антируткиты, когда определяют скрытые модули/хуки и прочую лабуду?
Алгоритмы разные, но в целом есть один простейший подход - вызов оригинальной Nt* функции в обход хуков. Это тема отдельного разговора, но в целом об этом уже писалось ранее. Стоит погуглить старые статьи Ms-Rem.

3. А не взять ли этот драйвер до момента его загрузки?
Бинго, вариант попроще будет. В самом хардкорном случае берём ядерный дебаггер, ставим брейкпоинт на NtCreateFile, ждём.

| Сообщение посчитали полезным: Boostyq, gloom

Jupiter


Ранг: 522.0 (!)
Статус: Модератор
Research & Development

Создано: 11 марта 2017 22:51 New!
· Личное сообщение · #17

Boostyq
Имеет смысл отлавливать как раз установку драйвера, пока он ещё не получил управление, но уже распакован.
Для этого нужно хукать SetupAPI, OpenSCManager.
Boostyq

Ранг: 14.9 (новичок)
Статус: Участник

Создано: 11 марта 2017 23:13 · Поправил: Boostyq New!
· Личное сообщение · #18

Такс, разобралась
Защита имеет собственный формат модулей (шифрованные dll без заголовков, сжатый lzo и шифрованный nspack алгоритмом)
Вот почему я не могла найти контроллер драйвера, он не был под вм, его просто не было в списке модулей, т.к. был загружен кастомным лоадером. Я не стала мудрить и просто сняла дамп модуля во время его работы, до наложения обфускации.
Итак, я получила чистую дллку, оказалось что она и хранила в ресурсах 3 драйвера (для старых ос, для новых 32-битных, и новый для 64-битных)
Все три драйвера беззащитны, так что изучение протокола будет проще
Всем спасибо, задача решена, пойду изучать

| Сообщение посчитали полезным: VodoleY, gloom

 eXeL@B —› Основной форум —› Дамп драйвера
Эта тема закрыта. Ответы больше не принимаются.

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS