快捷搜索:

C# 简单又神奇的代码,懂汇编的一看就明白

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace Test

{

unsafe class Program

{

static void Main(string[] args)

{

byte p = 0;//-0x40

byte* pp = &p;//-0x45

byte* pp1 = &p;//-16

A a = new A("123");//-0x4C

A b = new A("456");//-0x50

pp = pp -0xc;

pp1 = pp1 -0x10;

*pp = *pp1;

a.Abc();

}

}

class A

{

string str = string.Empty;

public A(string str)

{

this.str = str;

}

public void Abc()

{

Console.WriteLine(str);

}

}

}

输出结果是:456

不是123 嘿嘿

必须是Debug版本的 Release版本不一样.不能打开代码优化 由于打开后内存布局会发生变更,

编译的话必要设置容许不安然代码,项目属性里边 .

您可能还会对下面的文章感兴趣: