Есть такая идея, можно открывать ntdll.dll с диска. Получать указатель в ET. По определённомы смещению в Nt/Zw (не во всех) лежит индекс функции в системной таблицы. А потом использовать напрямую, через syscall.
А если функция перехвачена через SDT или непосредственно в ntoskrnl (что чаще и делается), что тогда? По моему, ntdll это не вариант
Ну вот, я тоже так думаю Следовательно для скрытия процесса с правкой SDT и физ. правкой ntoskrnl (если только не через PhysicalMemory) понадобится писать собственный драйвер.
так ты же сам пишешь: Уход от перехвата API из Ring0??? Так и говори: "перехват API из UserMode". А что про перехват API из Ring 0, так мат. часть. мы знаем прекрасно.
Как вариант для защиты от модификации ntdll, можно просто отображать ее самостоятельно в свое адресное пространство. И работать со своей копией. Тогда у этой копии скорее всего будет непропатченная таблица импорта и прологи функций.... Можно это делать по необходимости - отобразили, поработали, выгрузили... (чтобы в Вашем процессе не нашли сигнатуры)