Подключение стандартных функций WinAPI относительно безопасно, поскольку в ближайшем будущем они не сильно изменятся, если вообще будут, так как это делает Microsoft
Лучше всего поддерживать WinAPI обратно совместимым между версиями.
Я бы сказал, что стандартное перехватывание WinAPI обычно стабильно и безопасно.
Сцепление чего-либо еще, как и во внутренних частях целевой программы, - это отдельная история.
Независимо от целевой программы, перехват сам по себе обычно является солидной практикой. Самым слабым звеном процесса обычно является нахождение правильного места,
и держась за него.
Наименьшее изменение в приложении может и будет изменять адреса функций, не говоря уже о динамических библиотеках и т. Д.
В GameHacking, где перехватывание является стандартной практикой, это было в некоторой степени побеждено с помощью «sigscanning», методики, впервые разработанной LanceVorgin для несколько позорной
Платы MPC. Он работает путем сканирования исполняемого изображения для статических частей функции, фактические байты инструкции, которые не изменятся, если только
действие функции изменено.
Sigscanning, очевидно, лучше, чем использование статических адресных таблиц, но в конечном итоге он также потерпит неудачу, когда целевое приложение будет достаточно изменено.
Пример реализации sigscanning в c ++ можно найти здесь .