Подскажите, пожалуйста: Под winnt 2000/xp необходимо при старте системы изменить нескольк обайт в диапазоне адресов 00с0000-00схххх. Так чтобы при чтении через \\device\physicalmemory изменения были видны... Как можно это реализовать???
А разве нельзя писать через \\device\physicalmemory?(не момню точно) Можно оформит свой драйвер, который эти данные запишет.
Дело в том, что я пытался писать через драйвер, но это адрес участка видеопамяти, может быть его нельзя менять??? пробовал в Delphi через tvichHW32 6.0 версии, вілетает с ошибкой. Доступ разрешен, сижу под админом в NT 2000 server...
Так у меня работало: mov edi,100h invoke MmMapIoSpace, dword 0c0000h, dword 0,edi,dword 0 mov dword[eax],0h invoke MmUnmapIoSpace,eax,edi
Спасибо, попробую.. Ну это я для примера взял, Из дельфей можно асм вставкой енто вызвать???? или через АПИ? а вообще, обращение к device\physicalmemory перехватить как нибудь???
1)Можно запустить драйвер через api, если у тебя привелегии админа. 2)Либо перехватывать API(create/read/write/open)? либо патчить драйвер.
Что-то данные по адресу 0c0000h не пишутся... странно. P.s. может кто из гуру прольёт свет на этот вопрос.
У меня вообше нет не какой ошибки, просто байт востанавливается. Кстати SoftICE тоже не может изменить эти байты. Там, если я прав, находится не видио память а ПРОШИВКа видио-карты.
SOUZ Если не секрет что за необходимость писать именно в c0000h ? Там распологается прошивка видеокарты, ты хочешь перепрошить ее ? Если надо Вывести текст на экран при загруке то это совсем другой вопрос. P.S. sorry пока писал вопрос появился ответ
У меня программа читает из этой области данные и к ним привязывается. Мне надо подставить туда минимум 2 байта других данных.
>>Да, вот ее чтение и надо перехватить.... >>туда минимум 2 байта других данных. Так перехватить или ПРОПИСАТЬ? Прописать я думаю не получится, т.к. там находится не образ прошивки а сама прошивка, просто обрашение к этим адресам идёт не в оперативку а на видиокарту. p.s. могу и ошибатся.
NtMapViewOfSection тут не поможет. А перехватить и вернуть нужные получится??? Это уже можно. 1)Поставить бряк на это место. и соответственно делать всё, что хочется. 2)если прога, которую необходимо обмануть использует только device\physicalmemory, то можно попробовать поправить сам драйвер.
да . прога читает блок памяти оп этому адресу, и из него вычисляет хеш..... Патчить прогу нельзя. А вот передать нужные данные видимо можно. Используется только эта процедура чтения... Как можно все-таки обойти это? Кка драйвер поправить, какой? А нужно это чтобы прогуотучить привязываться к железу.. Можно конечно прошивку видяхи поправить... ))