Вот интересная вещь. Когда мы юзаем аллокатор памяти, он, прежде чем дать нам адрес нового блока затирает прошлое содержимое чем-нибудь вроде 0xBAADFOOD или просто нолями. Так вот вопрос: если убить в ядре функцию "затирания" то теоретически мы можем получить чужие данные? Спрашиваю потому что в ядре я нуб.
Именно так. Поэтому для обеспечения безопасности и производится затирание. Хотя, понятное дело, это отрицательно влияет на производительность.
А какими примерно путями можно убить затирание? И если убивать то учитывать флаги GPTR(GlobalAlloc) LPTR(LocalAlloc) и им подобные в функциях МП, т.к. другие приложения использующие МП будут ожидать обнулённые блоки?
DoctorWho Заполнит указанным вами значением, либо нулями. В ядре не нужно обходить никакие функции затирания, там читается всё что нужно напрямую.
Но в посте №4 вы сказали, что в ядре ничего обходить не надо, а мне бы хотелось, чтобы ничего не затиралось вовсе. Исключая случаи когда приложение уровня пользователя просит заранее обнулённые блоки.
DoctorWho Ага, как ты представляеш такую защиту? пропатчил у себя в процессе, и читай ядро "сколько угодно" (выделяй много памяти и ищи по сигнатурам то что нужно)