我正在尝试使用使用 Syringe 的 C# 应用程序注入 C++ detour dll。这是我到目前为止所拥有的:
- 一个 dll 来注入从 wsock32.dll 接收/发送的钩子并记录通信(http://pastebin.com/JvnmYuz0)
- 启动目标应用程序然后将 dll 加载到它的 C++ 加载程序(pastebin.com/mX68nTnx)//对不起,我不能发布超过 2 个链接
-AC# 在任何进程中注入 dll 的应用程序 ( http://pastebin.com/FLRj45YF )
但我遇到了一些问题:
1-我不想使用 c++ 加载程序来启动应用程序然后注入 dll,我只用它来测试 dll 挂钩,它工作得很好,它确实挂钩并记录了通信文件
2-我想使用 ac# 应用程序(使用 Syringe)注入 c++ dll(在我想要的任何进程中)。我可以毫无问题地注入它,但它不会像使用 c++ 加载程序启动时那样挂钩接收/发送功能,但是,它说一切都已成功附加,但它没有将任何内容记录到文件中,甚至没有调用 MyRecv/MySend。我曾经在绕过发送/接收函数时收到来自 DetourTransactionCommit() 的错误 8 (ERROR_NOT_ENOUGH_MEMORY),但现在它说没有错误
3- 在能够使用 MySend/MyRecv 处理通信之后,我想将通信发送回 C# 应用程序,然后在那里进行工作。
我对 c++ 和 dll 注入非常陌生,但我对 c# 有一些经验。无需使用注射器方法注射。我尝试使用 EasyHook 没有成功。任何注入方法都会很棒,只要我可以将 dll 注入任何进程,然后在 C# 应用程序上进行通信。我不想做 C++ dll 的工作,因为我对 C++ 很陌生,而且做简单的事情似乎非常非常困难,学习曲线不是很友好
谢谢
PS:我不想破解任何东西/任何人,我只想创建一个 Ultima Online 工具