我有这个CIL代码序列,我通过使用注入Mono.Cecil.但是,修改后的.NET C#应用程序将无法运行.
目标:从堆栈中手动加载和弹出值以显示 Console.WriteLine
for (int i = 0; i < 3; i++)
{
int z = some value popped manually from stack;
Console.WriteLine(z);
}
Run Code Online (Sandbox Code Playgroud)
这是我修改的简单main()程序:
.method private hidebysig static void Main(string[] args) cil managed
{
.entrypoint
.maxstack 5
.locals init (
[0] int32 num,
[1] int32 num2)
L_0000: ldc.i4.6 //manually push value 6 to stack
L_0001: ldc.i4.5 //manually push value 5 to stack
L_0002: ldc.i4.4 //manually push value 4 to stack
L_0003: ldc.i4.0 //push int i initial …Run Code Online (Sandbox Code Playgroud)