|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Июн 3, 2004 18:01:27 подскажите плз, как организовывается запрет на доступ к памяти программам? как действует драйвер? ведь для этого надо каждое обращение к памяти отслеживать. |
|
|
Дата: Июн 3, 2004 18:06:55 на этом сайте есть раздел "статьи", где эти вопросы прекрасно освещены. |
|
|
Дата: Июн 4, 2004 17:28:38 cworm почитай статьи БрокенСворда, а лучше интелловские мануалы |
|
|
Дата: Июн 5, 2004 16:30:10 > подскажите плз, как организовывается запрет на доступ к > памяти программам? как действует драйвер? ведь для > этого надо каждое обращение к памяти отслеживать. ты конкретнее скажи, что тебе надо ;) ведь можно поставить и точку останова, и задисаблить страницу и (из драйвера) подправить каталог страниц так, что винда (и дамперы) вообще забудут о том, что здесь что-то есть. тебя вообще какой уровень интересует: аппаратный (как это релизовано в кремнии) или программный (как можно использовать то, что реализовано в кремнии), а если программный то какой - прикладного или драйверного уровня? "как работает драйвер" - он просто вращается на нулевом кольце и потому всюду может совать свой нос. например, изменит DPL сегмента кода/данных с 3 на 0 и при каждом обращении к ним будет ловить эксепшен, который будет обрабатывать. |
|
|
Дата: Июн 5, 2004 17:05:40 спасибо тебе, kaspersky, что ответил. а как это "подправить каталог страниц" и где этот каталог находится? я насколько понял, можно забанить отдельный адрес и целый блок адресов, в системе, наверно, лучше встроить все это в ядро. мне бы желательно на самом низком уровне :) Спасибо. |
|
|
Дата: Июн 5, 2004 19:02:59 > а как это "подправить каталог страниц" и где этот каталог находится? каталог страниц/таблица страниц (PDE/PTE) это то, с помощью чего обеспечивается виртуализация адресного пространства, т.е. связь между виртуальными и физическими адресами. CR3 указывает на текущую PDE специфичную для данного процесса, структура PDE/PTE описана в любой нормальной книжке по асму от 386 и выше. драйвер может туда залезть и закрепить виртуальную страницу за другой физической страницей, если мы отобразим одну физическую страницу на две и более виртуальных, тогда при записи в страницу А, данные мгновенно появится в страницах Б и С, а на этом можно сыграть! еще можно изменить атрибуты страниц (ну там присуствтует ли она в памяти, каких привилегий требует) или же загадить PDE/PTE, но делать это следует очень осторожно, иначе системе может сильно поплохеть. |
|
|
Дата: Июн 5, 2004 19:08:45 > я насколько понял, можно забанить отдельный адрес и > целый блок адресов, в системе, наверно, лучше встроить > все это в ядро. мне бы желательно на самом низком уровне :) а это смотря для чего ;) если для защиты от непреднамеренного достпуа (например, ты хочешь защитить критические данные от удара по памяти), то лучше VirtualProtect ничего нет, если же для защиты от ломателей - то ломать драйвер еще проще. другое дело, что на уровне драйвера можно перехватывать обращения дамперов - и если вызов идет из ReadMemory, подсовывать всякую хрень вместо полезный данных. так же можно расположить мины-ловушки (впрочем, мины можно поствить и на прикладном уровне) - страницы к которым при нормальном развитии событий программа никогда не обращается, а коль скоро такое обращение произошло, значит, нас дампят и тогда мы... либо вешает систему, либо делаем "заподло", либо подсовываем мусор вместо актуального кода, либо же просто "выкусываем" из кода процедуру защиты - там чтобы программа не заводилась, но внешне выглядело все нормально. |
|
|
Дата: Июн 6, 2004 11:18:21 Kaspersky, ты настоящий друг. Спасибо. |
|
|
Дата: Июн 7, 2004 15:34:08 > Kaspersky, ты настоящий друг. Спасибо. если будут какие трудности с реализаций - обращайся |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.061 |