Я пишу программу A, которая запускает процесс B и ждет, пока он завершится. При этом она должна следить за тем, чтобы процесс B не вызвал функцию foo() из библиотеки Windows. Если такая ситуация возникает, программа A должна убить процесс. Функция foo не должна выполниться.
Возможно ли такое сделать? Глобальные хуки не подойдут, т.к. это пошло. Мне на stackoverflow посоветовали копать в сторону создания процесса с флагом DEBUG_ONLY_THIS_PROCES, но я ничего интересного тут не увидел.
Есть какие-то идеи?
Спасибо.
Re: как запретитить exe-файлу вызовы системной функции?
Здравствуйте, wotker, Вы писали:
W>Я пишу программу A, которая запускает процесс B и ждет, пока он завершится. При этом она должна следить за тем, чтобы процесс B не вызвал функцию foo() из библиотеки Windows. Если такая ситуация возникает, программа A должна убить процесс. Функция foo не должна выполниться.
W>Возможно ли такое сделать? Глобальные хуки не подойдут, т.к. это пошло. Мне на stackoverflow посоветовали копать в сторону создания процесса с флагом DEBUG_ONLY_THIS_PROCES, но я ничего интересного тут не увидел.
W>Есть какие-то идеи? W>Спасибо.
Здравствуйте, wotker, Вы писали:
W>Я пишу программу A, которая запускает процесс B и ждет, пока он завершится. При этом она должна следить за тем, чтобы процесс B не вызвал функцию foo() из библиотеки Windows. Если такая ситуация возникает, программа A должна убить процесс. Функция foo не должна выполниться.
W>Возможно ли такое сделать? Глобальные хуки не подойдут, т.к. это пошло.
Зачем хуки ? Нужно запустить дочерний процесс с флагом DEBUG_ONLY_THIS_PROCESS и поймать
момент, когда он загружает нужную dll-ку Windows, а потом пропатчить ее таблицу экспорта,
подменяя тело запрещенной функции.