Старые антиотладочные приемы на новый лад


         

простейший (но ненадежный) алгоритм трансляции адресов


Его можно встретить в некоторых вирусах и root-kit'ов (когда вы столкнетесь с ним при дизассемблировании вы будете знать, что это такое), однако, в легальных программах (особенно коммерческих!) его использование категорически недопустимо и потому необходимо либо все-таки писать свой драйвер, вызывающий MmGetPhysicalAddress из режима ядра, либо воспользовавшись тем фактом, что адреса из диапазона 80000000h: 877EF000h транслируются однозначно, внедрить в операционную систему специальный "жучок". То есть, фактически создать в ней свой собственный call-gate, позволяющий вызывать ядерные функции с прикладного уровня. Один из вариантов его реализации приведен в вышеупомянутой статье, однако, он не свободен от ошибок и на многопроцессорных машинах (которыми, в частности, являются все машины с материнской платой и процессором Pentium-4 с технологией Hyper-Threading, не говоря уже о многоядерных AMD), возможны "синие экраны смерти", которые опять-таки недопустимы...

Означает ли это, что данный антиотладочный прием полностью бесполезен? Вовсе нет! Трудности создания устойчивой и надежно работающей программы на его основе носят технический характер и вполне преодолимы. Если не трогать трансляцию, то никаких проблем вообще не возникает!



Содержание  Назад  Вперед





Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий