· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› Можно ли из dll писать в файл в памяти?

Посл.отвђт Сообщенiе


Дата: Июл 20, 2003 02:58:08

Имеется test.exe, который в импорте имеет testdll.dll.
Можно ли из этой Dll пропатчить файл test в памяти?


Дата: Июл 20, 2003 15:07:43 · Поправил: Asterix

Уже проверил, можно!, но у меня получается сделать это
только командой mov. Почему-то не хотят работать функции ReadProcessMemory & WriteProcessMemory.

Добавлено: мля, и mov работает только под отладчиком, что за фигня...


Дата: Июл 20, 2003 18:48:15 · Поправил: Quantum

А что говорят IsBadWritePtr и IsBadCodePtr? Может нужно флаг в секции пофиксить?

ЗЫ: Это я мудрствую лукаво после Володиной статьи :-)


Дата: Июл 20, 2003 19:34:17

Действительно, оно не читало память по нужному адресу,
проверил с помощью IsBadWritePtr(Thanks, Quantum!), читало
только под OllyDbg, что меня и смутило, пофиксил флаг,
и всё заработало.
А ведь у меня раньше была такая же ситуация, но только всё
улетало прямо под дебаггером, а тут работало, там тоже дело
было во флаге секции.

Интересно будет ли это работать под 2k/XP..., я проверял под 98.


Дата: Июл 20, 2003 21:15:11

Проверил... В XP тоже работает (!)


Дата: Июл 21, 2003 14:24:40

Asterix
???
И как вы это объясняете?


Дата: Июл 21, 2003 15:26:21

Не понял суть проблемы...
В нормальном exe секция кода имеет read-only.
Изменить атрибут через VirtualProtect(Ex) и можно патчить все что угодно


Дата: Июл 21, 2003 15:29:30

Max
Тогда конечно


Дата: Июл 21, 2003 16:52:58

Max

То что собираюсь патчить я имеет атрибут C0000040 :-), поэтому никакой
VirtualProtect(Ex) юзать не требуется :-)

[ Edmond: И как вы это объясняете?]

О, это во множественном числе? Что объясняем? Что оно работало
под дебаггером?


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.059