Я пытаюсь внедрить обходной Cll DLL с помощью приложения C # с помощью шприца.
Вот что у меня так далеко:
-DLL, чтобы ввести, какой хук и recv / send от wsock32.dll, и записать сообщение (http://pastebin.com/JvnmYuz0)
-Загрузчик C ++, который запускает целевое приложение, а затем загружает в него dll (pastebin. Com / mX68nTnx) // Извините, я не могу опубликовать более 2 ссылок
-Приложение C #, которое внедряет dll в любой процесс (http://pastebin.com/FLRj45YF)
Но у меня есть некоторые проблемы:
1 — Я не хочу использовать загрузчик c ++ для запуска приложения, затем внедрить dll, я использую его только для проверки перехвата dll, и он работает хорошо, он перехватывает и регистрирует файл для передачи сообщения
2 — Я хочу внедрить DLL c ++ (в любой процесс, который я хочу), используя приложение c # (используя Syringe). Я могу ввести его без проблем, но он не перехватывает функции recv / send, как это происходит при запуске с загрузчиком c ++, однако, он говорит, что все было успешно присоединено, но ничего не записывает в файл, даже позвоните MyRecv / MySend. Однажды я получил ошибку 8 (ERROR_NOT_ENOUGH_MEMORY) от DetourTransactionCommit () при обходе функций send / recv, но теперь он говорит, что ошибки нет
3- После того, как я смог обработать соединение с помощью MySend / MyRecv, я хочу отправить сообщение обратно в приложение C #, а затем выполнить работу там.
Я очень новичок в C ++ и DLL инъекций, но у меня есть некоторый опыт работы с C #.
Нет необходимости использовать метод шприца для инъекций.
Я пытался использовать EasyHook без успеха.
Любой метод внедрения будет хорош, пока я могу внедрить dll в любой процесс, а затем обработать коммуникацию в приложении C #. Я не хочу делать работу над DLL C ++, потому что я очень плохо знаком с C ++, и, кажется, очень и очень трудно делать простые вещи, кривая обучения не очень дружелюбна
Спасибо
PS: я не хочу ничего взламывать / кого-либо, я просто хочу создать инструмент Ultima Online
Задача ещё не решена.
Других решений пока нет …