Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Низкоуровневый доступ к файлу [D6, WinXP]


Страницы:   1 2

TGX ©   (2006-06-10 17:44:00) 

Здрвсте! Мне надо в файле (dll библиотека) изменить программно по адресу 0x53ea байт с 0x74 на 0xEB. Как это сделать?


TGX   (2006-06-12 21:18:00) [21]

мне патч надо сделать, т.е. что работала нормально прога нужно в библиотеке изменить пару байт! Ну вот хочетьсяч написать прогу! А как?


Ihor Osov'yak   (2006-06-11 01:58:00) [22]

эта....

действительно ли в файле, или уже в ВАП некоего процесса, который подгрузил эту длл?
и если в файле, то каково "состояние"  этого файла - файл "свободен" или "залочен" по причине подгруки его в ВАП некоего процесса?

и вообще.. Зачем такое странное желание?


Loginov Dmitry   (2006-06-10 18:18:00) [23]

Проверь следующие варианты:
1)

with TFileStream.Create(YourFileName, fmOpenReadWrite) do
begin
 Seek($53, 0);
 B := $EB;  // B - Byte
 Write(B, SizeOf(B));
 Free;
end;


2)

with TMemoryStream.Create do
begin
 LoadFromFile(YourFileName);
 if PByteArray(Memory)[$53] = $74 then
   if PByteArray(Memory)[$53] = $EB;
 SaveToFile(YourFileName);
end;


3)

begin
 HFile := FileOpen(YourFileName, fmOpenReadWrite);
 HMap := CreateFileMapping(HFile, nil, PAGE_READWRITE, 0, 0, nil);
 Bytes := MapViewOfFile(HMap, FILE_MAP_WRITE, 0, 0, 0);
 if Bytes = nil then
   raise Exception.Create('Ошибка открытия файла!');

 if Bytes[$53] = $74 then Bytes[$53] := $EB;

 UnmapViewOfFile(Bytes);
 CloseHandle(HMap);
 CloseHandle(HFile);
end;


Rial   (2006-06-10 18:11:00) [24]

А в чем тут заключается "низкоуровневость" доступа ?
Насколько я понял из вопрос, здесь можно обойтись
обычными
FileOpen
FileSeek
FileWrite
FileClose

А реально низкоуровневый доступ в защищенном режиме не
прокактит. Не любит видна intr 21h.

Возможно, я что то не так понял.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо