Проблемы при инжекте EasyHook (инжект 32б dll в 32б PE, под 64б вин)

Тема в разделе "WASM.X64", создана пользователем Arisu, 1 апр 2011.

  1. Arisu

    Arisu Алиса Селезнёва

    Публикаций:
    0
    Регистрация:
    10 апр 2007
    Сообщения:
    89
    Есть либа предоставляющая API для инжекта DLL в другие процессы - EasyHook (исходники http://easyhook.codeplex.com/SourceControl/changeset/changes/54229#).

    Столкнулся с проблемой: при попытке инжекта 32 битной DLL в 32 битный процесс под 64-битной виндой с помощью этой тулзы - инжектнутый загрузчик (HookSpecific_x86.asm) завершает сам себя без объяснения причин.

    ( Инжект 64 битной длл в 64 битный pe прокатывает, инжект 32 в 32 под 32 виндой - тоже прокатывает. )

    Инжектируемый асм код (входящий в утилиту загрузчик) выходит из своего треда, возвращая ошибку "Unknown error in injected assembler code." (992 строка файла thread.c). Что очень странно.

    На сайте тулзы есть тикет про эту ошибку (http://easyhook.codeplex.com/workitem/18017) но разраб забил на её решение.

    Я к сожалению не супер знаток асма и отличий PE64 от PE32, и единственный вариант сейчас вижу: под отладчиком прокатать инжектируемый код после передачи в него управления в надежде понять, что вызывает ошибку.

    Может есть какое-то известное решение?
     
  2. paralvic

    paralvic Пархоменко Александр Викторович

    Публикаций:
    0
    Регистрация:
    20 ноя 2010
    Сообщения:
    294
    Адрес:
    Нижний Новгород
    Нельзя в 64х битной системе устанавливать 32х битные драйверы.
     
  3. Arisu

    Arisu Алиса Селезнёва

    Публикаций:
    0
    Регистрация:
    10 апр 2007
    Сообщения:
    89
    не понял при чём здесь это. объясни пожалуйста