Comments 12
Минималистичный код, да. Но так и не понял, почему не использовать WinAPI?
Хотел спросить «А что насчет совместимости с Win8», но зашел на сайт проэкта и прочитал:
madCodeHook offers everything you need to hook code (mostly APIs) in all 32 and 64 bit Windows operating systems from Windows 95 to Windows 8.1
OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);
Неужто для того, чтобы заинжектить код в удалённый процесс, необходимо открыть этот самый процесс со всеми возможными привилегиями?
Ну смотрите, нам точно нужны PROCESS_VM_WRITE и PROCESS_VM_READ (чтобы забросить туда свой код и иметь доступ к нему). SYNCHRONIZE тоже нужен, поскольку неплохо бы знать завершен процесс или нет. PROCESS_VM_OPERATION нужен чтобы иметь возможность сделать VirtualProtectEx (разрешить выполнение кода в определённом блоке памяти). PROCESS_CREATE_THREAD тоже нужен, ведь создание в удалённом процессе своего потока — нужная в 90% случаев функциональность.
В общем, из указанных тут 14 прав штук 10 видятся мне необходимыми. Какой при этом толк отключать оставшиеся 4?
В общем, из указанных тут 14 прав штук 10 видятся мне необходимыми. Какой при этом толк отключать оставшиеся 4?
Какой при этом толк отключать оставшиеся 4?
Толк в том, что однажды обязательно наступит момент, когда Ваш код перестанет работать из-за того, что система не выдала ему привилегии, которые вообще не нужны для выполнения поставленной задачи. Это плохой тон программирования.
В целом, Вы, конечно, правы — надо просить только то, что нужно. Но вот в чём беда — кода самой библиотеки madCodeHook я не видел, поэтому точно знать, какие права ей нужны, я не могу. А в официальном примере из документации — процесс открывается именно так.
Sign up to leave a comment.
Хуки — это просто (часть 2)