如何从挂钩的C ++函数中调用C#委托

问题描述

我想做什么 我想从一个钩住的c ++函数调用c#委托

我找到了从c ++函数调用c#委托的链接,它工作正常。但是我想从一个钩子的c ++函数调用委托

我尝试了什么?

  1. 在c#中声明了一个委托

  2. 使用GetFunctionPointerForDelegate将委托转换为函数指针

  3. 函数指针传递给了c ++

  4. 在c ++库中,将指针保存在变量中

  5. 第3步中的函数将钩住“ LdrInitializeThunk”,这是在创建远程线程时都会调用的第一个方法。因此我们一直在关注这一点。 创建远程线程时,将触发LdrInitializeThunk的挂钩函数

  6. 在此挂钩方法中,我传递了在步骤2中创建的指针,将其转换为地址并调用委托。这会导致访问冲突

如果在步骤3中直接调用了回调函数,则可以正常工作。问题是何时从挂钩函数调用它。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)