Я экспериментирую с внедрением кода, чтобы попытаться понять, как его следует использовать.
В настоящее время у меня есть исполняемый файл, который я разработал как цель для внедрения кода. У меня также есть dll, содержащая код, который я хочу внедрить, и процесс инжектора, который обрабатывает вставку dll в процесс целевого исполняемого файла.
Что я конкретно пытаюсь сделать, так это перехватить функцию (которая не была экспортирована) в процессе целевого исполняемого файла, используя структуру mhook.
Мой процесс инжектора работает очень хорошо, и я могу убедиться, что моя dll правильно вставляется в целевой исполняемый процесс.
Проблема, с которой я сейчас сталкиваюсь, заключается в попытке определить, какой адрес передать в mhook в качестве целевого местоположения функции, которую я пытаюсь перехватить. Поскольку это не экспортируемая функция, я не могу использовать типичный подход вызова GetProcAddress() и не могу понять, как ее найти.
Я декомпилировал целевой исполняемый файл в IDA и знаю, где находится функция в исполняемом файле (смещение 0x1770), но когда я передаю это в mhook, он не вызывает мою функцию батута, т.е. мой хук не работает. Я попытался найти начальную ячейку памяти модуля во время его работы и добавить к нему это смещение, но это тоже не работает.
Кажется, мне не хватает чего-то базового в моем понимании внедрения кода, но я не могу понять, что это такое. Google мне тоже не помог, хотя я изучаю это уже более недели.
Пожалуйста, помогите мне понять, какое значение я должен передать в mhook.
Спасибо, и, пожалуйста, дайте мне знать, болван