2015-07-03 3 views
0

Я только начал использовать библиотеку ms Detours, и я хотел бы знать, как ее можно использовать для подключения EXE-файла. Я получил смещение функции от IDA Pro, однако я не знаю, к какому адресу нужно подключиться. Он дает access violation, если я подключаюсь к смещению с помощью инструмента withdll.exe. Может ли кто-нибудь показать мне пример подключения exe, если это возможно?Как подключить exe-функцию с помощью Detours?

+0

Вы попробовали смещение за вычетом смещения основания изображения? – fassl

+0

@fassl Нет, я этого не делал. Как мне это получить? Если, получив текущий процесс и наведя его на указатель пустоты, я не могу его вычесть. –

+0

Вы можете увидеть смещение базы изображения в сводке рассмотренного файла, прежде всего, перед любым кодом в представлении IDA. Вы можете отправить его в DWORD или QWORD и добавить смещение функции минус imagebase. Также убедитесь, что вы переписываете материал (я не знаю, как обходные пути подключаются), чтобы подготовить адрес с помощью VirtualProtect, например, разрешить запись или выполнение диапазона памяти. Возможно, и обходные пути делают это для вас, я не знаю, просто давая подсказку. – fassl

ответ

0

Авария StackHash происходит из-за того, что вы, вероятно, пытаетесь выполнить код со страницы, на которой нет доступа EXECUTE. Вы можете отключить DEP только для того, чтобы убедиться, что это причина сбоя. Впоследствии, если это действительно так, вы должны использовать VirtualProtect или VirtualProtectEx, чтобы изменить защиту страницы, используя одну из констант защиты, которые включают EXECUTE-доступ (вы можете увидеть список констант here). В соответствии с расчетом адреса/смещения я не вижу никаких проблем с этим в вашем описании.

Ниже приведены инструкции о том, как отключить DEP:

  1. Нажмите на меню Пуск, а затем перейдите в панель управления.
  2. Нажмите «Обслуживание системы», а затем «Система».
  3. Выберите Дополнительные настройки системы.
  4. В разделе «Свойства системы» выберите «Настройки» в разделе «Производительность» вверху.
  5. Перейдите на вкладку Предотвращение выполнения данных.
  6. Выберите «Включить DEP для всех программ и сервисов, кроме тех, которые я выбираю».
  7. Найти исполняемый файл приложения, который вызвал ошибку.
  8. Выберите приложение, вызывающее ошибку, и нажмите «Открыть», чтобы добавить его в список исключений DEP.
  9. Нажмите «ОК», чтобы сохранить новые настройки.

Надеюсь, это поможет.

Смежные вопросы