Показать сообщение отдельно

  #30  
Старый 16.04.2010, 12:07
slesh
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
С нами: 10097606

Репутация: 3349


По умолчанию

Кстати вообще когда-то была идея по изменению кода, которая могла заменять до 4 килобайт кода сразу и без разницы скольки ядерная система была. Без запрета прерываний и тому подобных вещей. Но что-то руки не дошли попробовать реализовать. А идея такая:
1) выделяешь себе одну страницу не выгружаемой памяти (4096 байт)
2) в неё копируешь страницу памяти в которой нужно сделать изменения
3) в своей копии ты делаешь изменения.
4) для своей копии ты получаешь адрес физической страницы закрепленной за ней.
5) в PTE подменяешь адрес физической страницы для виртуальной страницы в которой нужно было сделать изменения. И заменяш этот адрес на свою физ страницу.
Таким образом не трогая виртуальную страницу, ты просто подменяешь для неё физическую. И это будет мгновенно, но должно быть условие: код подменяемой виртуальной страницы не должен выполняться в момент подмены.
 
Ответить с цитированием