运行时方法在Mono中挂钩

时间:2014-07-01 04:12:49

标签: reflection mono jit code-injection

我有一个闭源的现有应用程序,并附带自己的Mono 3.5版本。我想改变应用程序的行为;具体来说,我想换一个新的内置类。

通常情况下,Mono.Cecil就是这样。但是,在我的情况下,应用程序组件是从只读卷加载的,这使得修改程序集本身非常棘手(它涉及硬件黑客以产生新卷)。但是,我可以通过官方支持的机制来加载任意DLL,理论上我可以在运行时使用它来修改程序集。

有许多资源可以通过.NET Framework实现运行时代码注入/函数挂钩,但它们都在Mono下失败。我见过的方法包括:

参见相关问题:

我知道这是一个非常可怕的计划。但是,由于我没有源代码并且修改磁盘上的程序集比执行某种脏运行时hack更加糟糕,所以这是我迄今为止生成的最佳替代方法。

0 个答案:

没有答案