Tenho um método .NET que está marcado como "Chamada interna", o que significa que é implementado dentro do próprio CLR. Existe alguma maneira de localizar o código e / ou descompilar tal método?
Tenho um método .NET que está marcado como "Chamada interna", o que significa que é implementado dentro do próprio CLR. Existe alguma maneira de localizar o código e / ou descompilar tal método?
Se você usar a extensão windbg sos, poderá entrar nas chamadas internas - que são códigos não gerenciados. A documentação para usar o sos é um pouco complicada de resolver IMO. Este link é útil para aprender os comandos sos: http://msdn.microsoft.com/en-us/library/bb190764(v=vs.110).aspx. Para carregar o SOS eu uso:
.loadby sos clr; para .NET 4 e superior.loadby sos mscorwks; para .NET 2
No entanto, você tem que esperar até que as DLLs do .NET tenham sido carregadas antes que esses comandos funcionem, então você deve definir um ponto de interrupção ou certificar-se de que o código gerenciado tem algum tipo de esperar (por entrada ou outra coisa) para permitir que o processo carregue as DLLs .NET.