Есть драйвер, который грузится в boot time, нужно прочитать его образ.
Возникает проблема при нахождении полного пути к файлу(C:\Windows\System32\drivers).
\SystemRoot на этом этапе указывает на ArcName\multi(0)disk(0)rdisk(0)partition(1), которая еще не создана.
Попробовал резолвить ссылку Global??\C: и прилепить оставшийся путь из SharedUserData->NtSystemRoot — работает только на XP, в 7-ке к этому моменту нет ссылки \Global??\C:
Подскажите как в windows 7 решить эту проблему? Желательно способом, который будет работать и в xp.
Спасибо.
А>Есть драйвер, который грузится в boot time, нужно прочитать его образ. А>Возникает проблема при нахождении полного пути к файлу(C:\Windows\System32\drivers). А>\SystemRoot на этом этапе указывает на ArcName\multi(0)disk(0)rdisk(0)partition(1), которая еще не создана. А>Попробовал резолвить ссылку Global??\C: и прилепить оставшийся путь из SharedUserData->NtSystemRoot — работает только на XP, в 7-ке к этому моменту нет ссылки \Global??\C: А>Подскажите как в windows 7 решить эту проблему? Желательно способом, который будет работать и в xp. А>Спасибо.
Забудьте про C:, D: etc в ядре. Вспоминайте про них лишь в случае крайней необходимости.
Скармливайте в NtCreateFile именно путь в виде "\\SystemRoot\\System32\\Drivers\\YOURDRIVER.SYS".
Запрашивайте права тока на чтение.
Как много веселых ребят, и все делают велосипед...
Re[2]: Прочитать образ драйвера
От:
Аноним
Дата:
10.07.14 12:33
Оценка:
Здравствуйте, ononim, Вы писали:
O>Забудьте про C:, D: etc в ядре. Вспоминайте про них лишь в случае крайней необходимости. O>Скармливайте в NtCreateFile именно путь в виде "\\SystemRoot\\System32\\Drivers\\YOURDRIVER.SYS". O>Запрашивайте права тока на чтение.
Я же говорю \SystemRoot указывает на ArcName\multi(0)disk(0)rdisk(0)partition(1), в этот момент еще нет никаких multi(0)disk(0)rdisk(0)partition(1)
Более того в win7 нету даже \Device\HarddiskVolume1 и т.д. Кто бы мне сказал, как при таком раскладе достучаться до моего драйвера.
Именно из файла надо? А то есть поля DriverStart и DriverSize в объекте.
JID: x64j@jabber.ru
Re[2]: Прочитать образ драйвера
От:
Аноним
Дата:
11.07.14 06:53
Оценка:
Здравствуйте, x64, Вы писали:
x64>Именно из файла надо? А то есть поля DriverStart и DriverSize в объекте.
Боюсь, что не подойдет. Мне нужен весь файл драйвера
С трудом понял, что тебе надо найти СВОЙ файл, СВОЕГО драйвера, в СВОЕМ коде момент его загрузки в 'boot'.
Самый простой способо, ИМХА это — В точке входа, читать свою память куда тебя загрузили. Там весь твой файл и есть. Точнее та часть которая подлежит загрузке бутовым загрузчиком. Он просто мэпирует файл на память. Немного не так как это делаеться в мемори-мэппед, но по сути разницы там не много.
Если нужны какие-то особые ресурсы из файла или там кусок твоего вируса, то ИМХА тебе лучше дождаться не бут времени и уже читать там что тебе надо.
Не все кто уехал, предал Россию.
Re[2]: Прочитать образ драйвера
От:
Аноним
Дата:
11.07.14 10:26
Оценка:
Здравствуйте, Andrew.W Worobow, Вы писали:
AWW>С трудом понял, что тебе надо найти СВОЙ файл, СВОЕГО драйвера, в СВОЕМ коде момент его загрузки в 'boot'.
прошу прощения, в следующий раз постараюсь расписать всю картину подробнее
AWW>Самый простой способо, ИМХА это — В точке входа, читать свою память куда тебя загрузили. Там весь твой файл и есть. Точнее та часть которая подлежит загрузке бутовым загрузчиком. Он просто мэпирует файл на память.
так стало быть не весь
AWW>Если нужны какие-то особые ресурсы из файла или там кусок твоего вируса, то ИМХА тебе лучше дождаться не бут времени и уже читать там что тебе надо.
Так есть шанс в boot time прочитать файл с диска или нет?
Здравствуйте, Аноним, Вы писали:
А>так стало быть не весь
Скажем так — в общем случае весь.
AWW>>Если нужны какие-то особые ресурсы из файла или там кусок твоего вируса, то ИМХА тебе лучше дождаться не бут времени и уже читать там что тебе надо. А>Так есть шанс в boot time прочитать файл с диска или нет?
Можно. Но трудно, в смысле длинно, да и с версионностью придеться много возиться. Мелких подробностей уже не очень хорошо помню — но там отдельный код для всего этого. И он не доступен, вот так "на раз-два".
AWW>>Если нужны какие-то особые ресурсы из файла или там кусок твоего вируса, то ИМХА тебе лучше дождаться не бут времени и уже читать там что тебе надо. А>Так есть шанс в boot time прочитать файл с диска или нет?
Можно подумать над инвариантом — распарсить файловую систему самостоятельно.
Можно даже какую-нибудь подсказку в реестр записать заранее (если он доступен в этом месте)