使用反序列化将IL方法转换为C#代码

时间:2018-10-24 12:55:22

标签: c# dynamicmethod

可能是转储问题,因为我不熟悉DynamicMethod,所以请指导我。

我有在二进制文件中序列化的C#方法存储。以这种方式存储数据。

Token: 6000196 // Meta Token
Flags: 2
MaxStack: 8
LocalVarsSig: null
Code: 00 02 72 ED 0C 00 70 28 72 00 00 06 73 98 01 00 06 28 81 01 00 06 00 02 72 3F 0D 00 70 28 72 00 00 06 73 9F 01 00 06 28 83 01 00 06 00 2A
TokenPosArray: 3 8 D 12 19 1E 23 28
Exceptions: null

我正在使用DynamicILInfo从此信息生成DynamicMethod。我想知道如何从这种IL方法编解码器信息中获得人类可读的C#代码?

[编辑]

好,所以我能够从此信息中构造DynamicMethod并使用https://github.com/drewnoakes/il-visualizer所示的ILVisulizer获得IL代码

在发送IL进行监视时,我得到以下与此相似的指令代码

IL_0000: nop        
IL_0001: nop        
IL_0002: ldstr      "SampleString"
IL_0007: call       System.String smethod_4(System.String)/GClass3+GClass6
IL_000c: newobj     Void.ctor(System.String)
IL_0011: stloc.0    
IL_0012: ldloc.0    
IL_0013: callvirt   Boolean get_FirstInstance()
IL_0018: stloc.3    
IL_0019: ldloc.3    
IL_001a: brtrue.s   IL_0033
IL_001c: nop        

现在想知道如何使用编程将该代码反编译为c#吗?

0 个答案:

没有答案