Прочитал, что патчинк SDT не будет работать на SMP машинах (протестировать нет возможности, иначе не было бы вопроса). Вопрос, правда ли это? Если да, то с чем это связано (не могу понять связь)? Тот же вопрос про x64? Второй вопрос - адреса не эксортируемых ядром функций(например ZwWriteProcessMemory) можно получить только через SDT, или еще как - то?
Братец, ты чо болеешь ? Н акой тебе отменять прерывания ? поднимись на уровень, где нет свитчинга задач и оттуда всё делай. как один из вариантов встать в DPC - очередь на всех процессорах.
имеешь ввиду IRQL? Не заметил, что k3internal это и написал, тогда приведу пример: Код (Text): pDpcAr = (PKDPC)ExAllocatePool(NonPagedPool, KeNumberProcessors * sizeof(KDPC)); if (!pDpcAr) return ; for (i = 0; i < KeNumberProcessors; i++){ KeInitializeDpc(&pDpcAr[i], pFunction, NULL); KeSetTargetProcessorDpc(&pDpcAr[i], i); KeInsertQueueDpc(&pDpcAr[i], NULL, NULL); }
Гы, если патч указателя происходит в одну ассемблерную инструкцию накой лочить проц? И в догонку, как насчет lock cmpxchg8b ? 8 байт попатчить можно. Для SDT этого и не надо.