Я экспериментирую с инъекцией кода, чтобы попытаться рассказать о том, как его использовать.Как определить адрес памяти неэкспортируемой функции в исполняемом процессе Windows?
В настоящее время у меня есть исполняемый файл, который я разработал как цель для ввода кода. У меня также есть dll, который содержит код, который я хочу ввести, и процесс инжектора, который обрабатывает вставку dll в процесс целевого исполняемого файла.
То, что я пытаюсь сделать специально, - это перехватить функцию (которая не была экспортирована) в процессе целевого исполняемого файла, используя фреймворк mhook.
Мой инжекторный процесс работает очень хорошо, и я могу проверить, правильно ли вставлена моя dll в целевой исполняемый процесс.
Задача, с которой я сейчас сталкиваюсь, состоит в том, чтобы определить, какой адрес передать в mhook как целевое местоположение функции, которую я пытаюсь подключить. Поскольку это не экспортированная функция, я не могу использовать типичный подход вызова GetProcAddress(), и мне трудно понять, как его найти.
Я декомпилировал целевой исполняемый файл в IDA и знаю, где функция находится в исполняемом файле (смещение 0x1770), но когда я передаю это в mhook, он не вызывает мою функцию батута, то есть мой крючок не работает , Я попытался найти начальную ячейку памяти модуля во время его работы и добавить это смещение, но это тоже не работает.
У меня, кажется, отсутствует что-то основное в моем понимании инъекции кода, но я не могу понять, что это такое. Google не помог мне, хотя я уже занимался этим уже более недели.
Пожалуйста, помогите мне выяснить, какое значение я должен передать в mhook.
Спасибо и пожалуйста, дайте мне знать, blargfoot
Если вышеприведенный «ответ» на ваш вопрос, вы должны ответить на свой вопрос (не забудьте принять его!). Таким образом, на самом деле это появляется при ответе на вопросы :). Если у вас нет порога репутации, прежде чем вы сможете это сделать, и в этом случае игнорировать меня – kornman00