Как можно защитить в своей программе форму (или хотя бы некоторые поля ввода) от удаленного управления через VNC, RAdmin и проч? Пробовал делать ввод через DirectInput, все равно через VNC без проблем вбрасываются нажатия. Судя по исходникам VNC он для этого использует ф-цию keybd_event, можно как-то от этого защититься? Программа должна работать под правами обычного пользователя (XP/Vista/7). Например в оснастке Касперского это реализовано, через VNC внутри его окна нельзя ничего сделать. В каком хоть направлении копать?
При таких требованиях абстрактная цель защиты недостижима, т.к. всегда можно на уровне клавиатурного стека сгенерировать нажатие на клавишу, которое никак не получится отличить от настоящего. Самое простое в этом случае - сделать список известных приложение (VNC RAdmin и проч) и не запускаться, когда запущены они. Если это не устраивает, то отказываться от требования про обычного пользователя
сделал пока через хук на WH_KEYBOARD_LL (раньше про него не знал) в VNC и через терминал действительно ввод отвалился это самое совместимое решение которое нашел к сожалению от кейлоггеров оно сильно не спасет через directinput было неплохо в этом плане видимо придется комбинировать эти 2 метода: где-то ввод через DirectInput, где-то хук чтобы нельзя было юзать программу удаленно
100gold На уровне IRP устанавливаются фильтры, там же и кейлоггеры. Так что надёжнее и проще эмулить ввод на уровне шадова(RIT), либо на уровне GUI-апи в приложении.