有没有人知道可以挂钩Dotnet方法的钩子/绕道库?

时间:2012-04-27 16:09:41

标签: .net hook

有人知道可以挂钩Dotnet方法的挂钩/绕道库吗? 我知道鼹鼠可以在运行单元测试的环境中做到这一点。但是它使用了探查器,并且实际上不适合或设计用于您自己的库中,而且您无法使用它来挂钩内部方法或静态。

2 个答案:

答案 0 :(得分:1)

不,我知道。在我的公司里,我自己创造了一个。您必须使用分析器来执行此操作。此外,请注意,如果存在本机dll,您将无法检测该功能,否则您必须删除它或执行其他操作,例如使用loadlibrary hook来绕行。

最后,当前的处理方法是自己编辑功能或完全替换它。出于稳定性原因,这是非常危险的事情。有更复杂的方法,但首先你必须从基础开始。 IIRC我用这个来了解我开始时的分析: http://msdn.microsoft.com/en-us/magazine/cc188743.aspx

当我了解到这一点时,关于本机vs字节代码的内容是我所遗漏的,所以你可以免于这种特殊的头痛。

答案 1 :(得分:0)

今天至少存在这两个不使用分析api的框架(当然,它们使用.NET内部模型嘲笑,这可能非常脆弱)

  • Harmony:麻省理工学院许可。似乎实际上已经在一些游戏模块中成功使用,同时支持.NET和Mono。
  • Deviare In Process Instrumentation Engine:GPLv3和商业版。 .NET支持目前标记为实验性的,但另一方面却具有商业支持的优势。