使用IMetaDataEmit :: Save(/ ToMemory / ToStream)创建PE文件

时间:2019-04-22 11:43:21

标签: winapi clr cil clrprofiler

我正在编写一个本地的CLR Profiler,它会进行大量的IL重写。开发新功能时,有时会遇到CLR验证错误。对于小型方法,可以比较前后的字节,查看各种元素(大部分是方法标头,签名,局部变量,代码和异常表)并查找错误,这很容易。有时,这可能采用巨大的方法,并且该过程可能需要一段时间。我试图将当前模块转储到文件中,以便轻松运行peverify.exe(和https://github.com/dotnet/corert/tree/master/src/ILVerify)。 我发现IMetaDataEmit :: Save在纸上看起来很完美(我们一直在使用IMetaDataEmit来执行IL重写)。我可以转储模块,在十六进制查看器中打开它,然后查看所做的更改。但是,它仅转储模块(PE内的.Net目录)。如何通过此模块(最好是通过编程)创建完整的PE(dll / exe)?

0 个答案:

没有答案