Я работаю над тем, чтобы перехватить любой вызов API, чтобы выполнить некоторую проверку функции. (Я создаю SandBox)
Первый способ, о котором я думаю, - это использование регистрационного ключа и реализация нашей собственной библиотеки DLL в MicrosoftNT, чтобы иметь возможность перенаправить любой определенный системный вызов. https://www.apriorit.com/dev-blog/160-apihooks. Проблема? работает только на 32-битной, и если бинарник загружает User32.dll, так что это проблема abig.
Второй способ - внедрить dll в процесс? Простой, но невозможный, большинство программ защищено от этих инъекций, поэтому это невозможно.
Последний способ, который я думаю, заключался в том, чтобы изменить SSDT, чтобы изменить адрес функции по моему и перенаправить на оригинал, создав драйвер,Или по InlineHook и просто измените первый байт каждого адреса, который я хочу. Проблема, работающая только на 32 битах, потому что окна добавляют PatchGuard в ядро, поэтому мы не можем этого сделать. Мы можем удалить de PatchGuard, но anticheat заметит технику.
Для Песочницы я думаю, что удалить PatchGuard не составит проблемы.
Основная проблема - анализ в реальном времени. Я понятия не имею, как я могу подключить каждый вызов API, который я хочу, в любой ОС Windows. Я имею в виду на 32 и 62 бит. Я новичок в этой области, которую я начал на этой неделе, поэтому я открыт для любых предложений.