title: Does the same .NET dll compile to the same runtime assembly code on different machines?
body: <p>I wonder if I can hook class methods using standart JMP hooks. If hook signatures are the same on different machines like for standart compiled PE files?</p>
  <p><strong>UPDATE</strong>: I mean CIL to machine code compilation. I need to understand if this machine code are the same for one .NET DLL loaded on three different OS with the same architecture (like Windows 7/8/10 x64).</p>
  <p><strong>UPDATE2</strong>: Let me explain in a little more detail what I need to get as a result.</p>
  <p>I have third party .NET DLL with class &quot;A&quot;, which has method &quot;M&quot; and variable &quot;V&quot;. Method &quot;M&quot; just show the value of &quot;V&quot; variable.</p>
  <p>My <em>goal</em> is to change variable &quot;V&quot; from inside method &quot;M&quot;. So, when method &quot;V&quot; is called, it will show a new data.</p>
  <p>One of the usual methods which I perform for saying C++ is to get function signature (first function bytes), find them in memory and setting hook which JMPs to my DLL. However, because of JIT here, it will generate different machine code. So I can not create function signature, thus I cant find it in memory and can not set hook.</p>
  <p>How does hook here?</p>