当前位置:  开发笔记 > 编程语言 > 正文

有没有办法欺骗.net JIT编译器运行另一个方法?

如何解决《有没有办法欺骗.netJIT编译器运行另一个方法?》经验,为你挑选了2个好方法。

好的,假设我的应用程序向内存发出(x86)指令,使页面可执行等等.有没有办法改变un-JITted方法的方法存根指向我发出的指令流?

例如:

假设我在内存中创建了一个x86指令流,它可以执行任意操作.现在,进一步假设我有一个方法'int Target()'.我还没有打电话,所以还没有编译.有没有办法:

    获取指向Target的存根的指针

    使它指向我发出的指令流.

我意识到.Net的几乎每一个安全功能都是为了防止像这样的劫持.但是,通过托管API可以实现吗?



1> leppie..:

这可以通过Profiling API实现.我从未使用它,但它在TypeMock中用于类似的目的.

编辑:我认为在MSDN博客上有一个很好的帖子,将去寻找它.

编辑2:Doh,第一次击中!



2> Kuldip Saini..:

是的,你可以做到!

mscorjit的钩子getJit方法.每当有任何方法需要Jitting时,你都会被问到.你可以通过你想要的任何东西.一些.net保护器就像这样工作.

推荐阅读
小白也坚强_177
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有