Как использовать Easyhook с неуправляемым исполняемым файлом - PullRequest
0 голосов
/ 25 ноября 2010

Я пытаюсь подключиться к c # (я бы предпочел не использовать Detours или c ++), поэтому я использую EasyHook.

http://easyhook.codeplex.com/

Однако, когда я делаю это

Config.Register( "This description can be anything.", @"SomePathToAnExecutable.exe", "MyInjectionDll.dll");

Я получаю ошибку:

Произошла ошибка при подключении к цель: System.BadImageFormatException: невозможно загрузить данную сборку [SomePathToAnExecutable.exe] для отражение.

Это допустимая сборка NET? ---> System.BadImageFormatException: может не загружать файл или сборку [SomePathToAnExecutable.exe] или один из его зависимости. Модуль был как ожидается, будет содержать сборку манифест.

Вопрос 1) Правильно ли я считаю, что SomePathToAnExecutable - это процесс, к которому вы хотите подключиться ???

Вопрос 2) Должен ли исполняемый файл быть управляемым кодом? ?? 1019 *

Я также спрашивал на сайте проекта codeplex, но не получил ответа.

http://easyhook.codeplex.com/Thread/View.aspx?ThreadId=235616

1 Ответ

1 голос
/ 03 декабря 2010

Ответ 1) Нет. Config.Register регистрирует управляемых сборок с GAC .Таким образом вы регистрируете все сборки, участвующие из вашего кода.Это включает dll, который вы хотите внедрить, и сборку, которая предоставляет общий интерфейс для IPCServer.Для моего это выглядит, например, следующим образом:

        Config.Register("MyHook",
            Path.Combine(startupPath, "HookManager.dll"), 
            Path.Combine(startupPath, "NetworkIncomingHook.dll"),
            Path.Combine(startupPath, "NetworkOutgoingHook.dll")
        );

HookManager.dll содержит интерфейс, который я использую для создания IPCServer (и куда все сообщения отправляются из перехваченных функций)NetworkIncomingHook.dll и NetworkOutgoingHook.dll - это библиотеки, которые я внедряю в свою программу.Это делается с помощью RemoteHooking.Inject.

2) Нет. Вы также можете подключить неуправляемые сборки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...