小编Ron*_*Ron的帖子

.NET CIL操作评估堆栈

我有这个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)

.net c# cil mono.cecil

5
推荐指数
1
解决办法
1575
查看次数

标签 统计

.net ×1

c# ×1

cil ×1

mono.cecil ×1