Чтобы выполнить внешний обход ядра, вы делаете то же, что и в пользовательском режиме, за исключением того, что вместо WriteProcessMemory вы используете NtWriteVirtualMemory.
Проблема, к которой относится эта идея: куда вы переходите? Вы не можете запрыгнуть в ядро, поэтому у вас все еще остается проблема с получением кода в целевой процесс. Вы можете написать шеллкод, внедрить DLL и т. Д. c ...
Но вся цель использования драйвера - обойти механизмы защиты и обнаружения. Зрелое решение для обнаружения отладки обнаружит, что вы записываете прыжок и пишете свой шелл-код с помощью проверок целостности памяти.
Решение не такое простое, как «go kernel», вам нужно обнулить защиту и сначала механизм обнаружения в ядре.
Если вы аннулировали механизм обнаружения / защиты, вы можете также внедрить DLL и просто выполнить обычный обход пользовательского режима в этой точке.