我正在尝试挂钩这个“接收回调”函数,并且可以设法挂钩该函数。然而,当“新函数”应该返回给它的调用者时,它反而返回到堆栈中的某个地方,导致在执行操作码时发生访问冲突,这些操作码实际上是堆栈上的一些数据。
我一直试图调试这个几个小时,但一无所获。如果有人确实遇到过类似的问题并且可以向我指出可能的解决方案,我将不胜感激。
如果您知道可能是什么问题的线索并需要有关任何事情的更多信息,请告诉我,我会尽力提供最好的。
更新 1
还需要指出我可以使用以下方法调用原始函数(非挂钩):
on_recv((char*)buf, ARRAYSIZE(buf), 0, 0x0018F7AC);
还尝试将 myOnRecv 更改为 __cdecl 和 __fastcall 但也没有运气。
更新 2
在进一步调试后,我认为该函数正在返回作为第 4 个(最后一个)参数传递的任何内容。这可能是什么原因?

