Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Получение "имени" загруженного модуля System 
:(
    Опции темы
Riply
Дата 5.7.2009, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Комодератор
Сообщений: 572
Регистрация: 27.3.2007
Где: St. Petersburg

Репутация: 21
Всего: 32



Здравствуйте !

Попрбую обрисовать ситуацию.
WinXP SP2 (компьютер не мой) 
Внешнее проявление:
Среди модулей, возвращаемых ZwQuerySystemInformation(SystemModuleInformation, ...)
имеется один, имя которого "затерто" пробелами.
Сторонние утилиты (например ProcessExplorere) тоже не могут корректно отобразить имя.

Подскажите, пожалуйста, как можно получить "настоящее имя" этого чуда природы ?
Хотелось бы познакимится с ним поближе, ну и прибить гада smile
Алгоритм решения может быть как для user mode, так и для kernel mode.

На данный момент:
Умеем получать PsLoadedModuleList и бегать по нему.
(Правда, и то и другое без "блокировки", но пока ладно)
Соответственно, находить нашего подопечного.
Если точнее, находим такие структуры, ему соответствующие:
(Названия структур собственнолапные и чуть-чуть не стыкуются с MSDN,
но заполняются при пробежке по PsLoadedModuleList корректно)
Код

 LDR_DATA_TABLE_ENTRY = packed record  
  InLoadOrderLinks : _LIST_ENTRY;
  InMemoryOrderLinks : _LIST_ENTRY;
  InInitializationOrderLinks : _LIST_ENTRY;
  ModuleInfoData: _LDR_MODULE_INFO;
 end;
 
Где ModuleInfoData имеет такой вид:
_LDR_MODULE_INFO = packed record
    BaseAddress      : PVOID;
    EntryPoint       : PVOID;
    SizeOfImage      : ULONG;
    FullDllName      : UNICODE_STRING;
    BaseDllName      : UNICODE_STRING;
    Flags            : ULONG;
    LoadCount        : USHORT;
    TlsIndex         : USHORT;
    HashLinks        : _LIST_ENTRY;  //???
    SectionPointer   : PVOID;
    CheckSum         : ULONG;
    TimeDateStamp    : ULONG;
    LoadedImports    : PVOID;
    EntryPointActivationContext : PVOID;
  end;


(Имена подопечного, как и ожидалось, затерты пробелами)
Как имея на руках перечисленные данные, получить сам объект ?

Т.е. если это драйвер, то как получить PDRIVER_OBJECT ?
Вообщем нужно вытащить как можно больше информации.
Например имя ключа реестра ему соответствующее или имя файла из которого он загружался.
(Если таковые имеются конечно)

Еще есть возможность побегать по SYSTEM-ому HANDLE_TABLE,
посмотреть существующие Handle`ы и их "имена".

P.S.
 Может надо парсить какие-то другие таблицы или LIST_ENTRY - ы ?

P.P.S.
 Хотелось бы это сделать своими руками, а не при помощи сторонних утилит.
 (Их буду использовать если самолапно не смогу решить задачку)

P.P.P.S.
 При работе ожидаем от подопечного любых гадостей smile
 (перехвата чего-то, правкии и т.д.)


Это сообщение отредактировал(а) Riply - 5.7.2009, 17:14
PM MAIL   Вверх
Romikgy
Дата 5.7.2009, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 13
Всего: 146



я бы попробовал AVZ (хотя это стороний продукт  smile )
хотя бы посмотреть что перехвачено и чем .... а уж после в потроха лезьть ИМХО


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Riply
Дата 5.7.2009, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Комодератор
Сообщений: 572
Регистрация: 27.3.2007
Где: St. Petersburg

Репутация: 21
Всего: 32



Цитата(Romikgy @  5.7.2009,  17:24 Найти цитируемый пост)
я бы попробовал AVZ (хотя это стороний продукт   )
хотя бы посмотреть что перехвачено и чем .... а уж после в потроха лезьть ИМХО 


Такая проверка производилась.
Кроме того, что он (AVZ) мужественно поместил черепашку (SVN) в карантин, smile
ничего найдено не было.
В его отчете тоже не нашлось ничего подозрительного.
PM MAIL   Вверх
Romikgy
Дата 5.7.2009, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 13
Всего: 146



хммм прикольно .... он же в нулевом кольце копается ....


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Riply
Дата 8.7.2009, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Комодератор
Сообщений: 572
Регистрация: 27.3.2007
Где: St. Petersburg

Репутация: 21
Всего: 32



Цитата(Riply @  5.7.2009,  17:13 Найти цитируемый пост)
Как имея на руках перечисленные данные, получить сам объект ?
Т.е. если это драйвер, то как получить PDRIVER_OBJECT ?


Если не ошибаюсь, то получать  PDRIVER_OBJECT, соответствующий "элементу" PsLoadedModuleList,
я научилась.
Способ не очень кузявый и годится не для всех объектов, но для начала (и для начинающей) сойдет smile

Теперь встает следующий вопрос: как, имея на руках PDRIVER_OBJECT,
получить максимум информации о нем ?
Посмотрела какие поля содержат DRIVER_OBJECT и его подструктуры.
Ничего уж очень интересного не нашла, разве что DRIVER_OBJECT.DriverExtension.ServiceKeyName

А если не удастся "считать" то что нам нужно из DRIVER_OBJECT и ее содержимого,
то может можно сделать так, чтобы наш подопечный сам нам все рассказал ?
Т.е. устроить ему допрос с пристрастием ? smile

PM MAIL   Вверх
Riply
Дата 9.7.2009, 05:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Комодератор
Сообщений: 572
Регистрация: 27.3.2007
Где: St. Petersburg

Репутация: 21
Всего: 32



Если кому интересно:
Что-то поймано smile
Ни мышонок, ни лягушка, а atapi.sys это smile
Во всяком случае его образ загружен по искомому адресу.
Так же он отсутствует в "легальном" списке драйверов.

На вопросы типа: почему имя затерто, зачем и кем,
ваша покорная слуга ответить не в состоянии.
Точнее: пока не в состоянии smile
PM MAIL   Вверх
Romikgy
Дата 9.7.2009, 09:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 13
Всего: 146



Цитата(Riply @  9.7.2009,  04:06 Найти цитируемый пост)
atapi.sys

у мя данный драйвер легализован IDE/ATAPI Port Driver © Microsoft Corporation. All rights reserved.


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
bems
Дата 9.7.2009, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 21
Всего: 88



Цитата(Romikgy @  9.7.2009,  09:39 Найти цитируемый пост)
у мя данный драйвер легализован
На сабжевой системе тоже. И совпадает с файлом из дистрибутива. Но после загрузки системы его имени нет в списке, вместо него - пробелы



--------------------
Обижено школьников: 8
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0562 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.