![]() |
|
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]()
|
|
| Riply |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Комодератор Сообщений: 572 Регистрация: 27.3.2007 Где: St. Petersburg Репутация: 21 Всего: 32 |
Здравствуйте !
Попрбую обрисовать ситуацию. WinXP SP2 (компьютер не мой) Внешнее проявление: Среди модулей, возвращаемых ZwQuerySystemInformation(SystemModuleInformation, ...) имеется один, имя которого "затерто" пробелами. Сторонние утилиты (например ProcessExplorere) тоже не могут корректно отобразить имя. Подскажите, пожалуйста, как можно получить "настоящее имя" этого чуда природы ? Хотелось бы познакимится с ним поближе, ну и прибить гада Алгоритм решения может быть как для user mode, так и для kernel mode. На данный момент: Умеем получать PsLoadedModuleList и бегать по нему. (Правда, и то и другое без "блокировки", но пока ладно) Соответственно, находить нашего подопечного. Если точнее, находим такие структуры, ему соответствующие: (Названия структур собственнолапные и чуть-чуть не стыкуются с MSDN, но заполняются при пробежке по PsLoadedModuleList корректно)
(Имена подопечного, как и ожидалось, затерты пробелами) Как имея на руках перечисленные данные, получить сам объект ? Т.е. если это драйвер, то как получить PDRIVER_OBJECT ? Вообщем нужно вытащить как можно больше информации. Например имя ключа реестра ему соответствующее или имя файла из которого он загружался. (Если таковые имеются конечно) Еще есть возможность побегать по SYSTEM-ому HANDLE_TABLE, посмотреть существующие Handle`ы и их "имена". P.S. Может надо парсить какие-то другие таблицы или LIST_ENTRY - ы ? P.P.S. Хотелось бы это сделать своими руками, а не при помощи сторонних утилит. (Их буду использовать если самолапно не смогу решить задачку) P.P.P.S. При работе ожидаем от подопечного любых гадостей (перехвата чего-то, правкии и т.д.) Это сообщение отредактировал(а) Riply - 5.7.2009, 17:14 |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 13 Всего: 146 |
я бы попробовал AVZ (хотя это стороний продукт
хотя бы посмотреть что перехвачено и чем .... а уж после в потроха лезьть ИМХО -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| Riply |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Комодератор Сообщений: 572 Регистрация: 27.3.2007 Где: St. Petersburg Репутация: 21 Всего: 32 |
Такая проверка производилась. Кроме того, что он (AVZ) мужественно поместил черепашку (SVN) в карантин, ничего найдено не было. В его отчете тоже не нашлось ничего подозрительного. |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 13 Всего: 146 |
хммм прикольно .... он же в нулевом кольце копается ....
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| Riply |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Комодератор Сообщений: 572 Регистрация: 27.3.2007 Где: St. Petersburg Репутация: 21 Всего: 32 |
Если не ошибаюсь, то получать PDRIVER_OBJECT, соответствующий "элементу" PsLoadedModuleList, я научилась. Способ не очень кузявый и годится не для всех объектов, но для начала (и для начинающей) сойдет Теперь встает следующий вопрос: как, имея на руках PDRIVER_OBJECT, получить максимум информации о нем ? Посмотрела какие поля содержат DRIVER_OBJECT и его подструктуры. Ничего уж очень интересного не нашла, разве что DRIVER_OBJECT.DriverExtension.ServiceKeyName А если не удастся "считать" то что нам нужно из DRIVER_OBJECT и ее содержимого, то может можно сделать так, чтобы наш подопечный сам нам все рассказал ? Т.е. устроить ему допрос с пристрастием ? |
|||
|
||||
| Riply |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Комодератор Сообщений: 572 Регистрация: 27.3.2007 Где: St. Petersburg Репутация: 21 Всего: 32 |
Если кому интересно:
Что-то поймано Ни мышонок, ни лягушка, а atapi.sys это Во всяком случае его образ загружен по искомому адресу. Так же он отсутствует в "легальном" списке драйверов. На вопросы типа: почему имя затерто, зачем и кем, ваша покорная слуга ответить не в состоянии. Точнее: пока не в состоянии |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 13 Всего: 146 |
у мя данный драйвер легализован IDE/ATAPI Port Driver © Microsoft Corporation. All rights reserved. -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 21 Всего: 88 |
На сабжевой системе тоже. И совпадает с файлом из дистрибутива. Но после загрузки системы его имени нет в списке, вместо него - пробелы
-------------------- Обижено школьников: 8 |
|||
|
||||
![]()
|
| Правила форума "Delphi: WinAPI и системное программирование" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |