以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 Dot NET,C#,ASP,VB 』  (http://bbs.xml.org.cn/list.asp?boardid=43)
----  管窥.net-----IL  (http://bbs.xml.org.cn/dispbbs.asp?boardid=43&rootid=&id=11855)


--  作者:admin
--  发布时间:11/9/2004 2:26:00 AM

--  管窥.net-----IL


发信人: walts (小天堂), 信区: DotNET        
标  题: 管窥.net-----IL
发信站: BBS 水木清华站 (Wed May  9 10:47:10 2001)

怎样保护代码不会被从IL指令反向分析出来?
ilasm又一个命令行选项/owner,可以用于实现这个目的。但是,不能够保证其它人自己写出一个与ilasm具有一样功能的反编译程序,这样你的代码就一样不是安全的。  
另外,.Net编译器并不支持/owner选项,所以如果用C#或者VB.Net,就需要按照如下的方法去做:  

csc helloworld.cs  
ilasm /out=temp.il helloworld.exe  
ilasm /owner temp.il

是否可以直接自己编写IL指令程序?

是的,完全可以,请看下面这个例子:
.assembly MyAssembly {}
.class MyApp {
  .method static void Main() {
    .entrypoint
    ldstr      "Hello, IL!"
    call       void System.Console::WriteLine(class System.Object)
    ret
  }
}
把上面的代码放到文件hello.il中,然后执行ildasm hello.il,  
这样就会产生一个EXE配件了。

在IL中能做C#中不能实现的动作吗?
是的,能够。比如:可以引发不是从System.Exception中派生出来的异常,
也可以使用不是从0开始下标的数组。



--

※ 来源:·BBS 水木清华站 smth.org·[FROM: 166.111.142.76]
上一篇
返回上一页
回到目录
回到页首
下一篇



W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
109.375ms