在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
直接进入试验:
我现在有一个很简单的类(文件名:Test.cs): public class Test { private string s; public Test(string some) { s = some; } }
从代码上看我们无法直接访问私有数据s。 编译:csc /t:library Test.cs 生成Test.dll文件。 现在我们反编译:ildasm /tok /byt Test.dll /out=Test.il (中间代码文件Test,il) 在中间代码中找到 private string s;那一段。修改修饰符private 为public后保存 文件。 现在我们开始编译中间代码生成dll文件:ilasm /dll Test.il
现在我们使用刚才修改后编译的dll。文件名:mainclass.cs using System; class Mainclass { public static void Main() { Test t = new Test(“Hello”); Console.WriteLine(t.s); } }
编译:csc /r:test.dll mainclass.cs
输出结果:C:\Test\1>mainclass Hello
经过上面的修改,我们很容易看到很多私有信息,.Net下的中间代码还安全吗? |
请发表评论