因胸联盟 发表于 2015-1-16 22:29:23

ASP.NET网站制作之mscorwks.dll在.Net中的位置及代码回护...

我实在想不明白java的机制,为什么非要那么蛋疼,在同一个平台下重复编译。  mscorwks.dll是dotNet的中心文件,特别是在net2.0中,之前分离的功效都会合到了这个dll中。net1.1中,另有一个文件mscorsvr.dll和mscorwks.dll是一律位置的。它们分离对应于windowsservice程序和desktop程序。在net2.0中,它们都一致到了mscorwks。dll中。同时在net2.0中mscorsn.dll的功效也兼并到了mscorwks.dll中。
它就是dotnet运转库的中心。
  DotNet的实行引擎(ee),外部工具的完成都在这个dll内里。
  在我们用reflector检察dotnet类库源代码时常常会碰到一些函数看不到源代码,只是标志成外部完成。这些函数基础上实践完成的代码就在这个dll内里,是native完成的。如反射功效的相干工具和完成就是这内里。
  net程序的实行次要由它来完成,另有别的一个主要的文件mscorjit.dll被它所挪用。
  如今我们把mscorwks.dll分红两个区A和B
  A是次要实行引擎(ee)和native完成。
  B是ee挪用jit的处置部分。
  net2.0的反射功效是在A区完成的。加密壳假如要完成完善的兼容性(即不损坏DotNet自己的任何功效和特征)就应当在A区挂进其内核。
  在A区有一个函数完成猎取办法体的内容,ee层必要获得办法体内容是经由过程这个函数来取得的。因而完善的办法就是交换这个函数,用加密壳的内核完成这个函数。
  如许的最年夜弱点就是反射毛病,由于反射也是挪用这个函数获得办法体的。
  在这个基本上要要损坏反射有甚么举措呢?在反射是必要挪用Method的成员函数GetMethodBody,这个函数是native完成的,就在mscorwks。dll中,因而加密壳能够hook这个函数做一些防备处置。
  可是效果不睬想,破解者能够恢复这个函数的原始完成。
  另有一个办法,不是完善,可是无效,即不间接交换猎取办法体的函数,而是只交换编译前猎取办法体的中央。如许只在要编译办法时才供应内核解密服务。
  效果怎样?也不太幻想,破解这能够修正反射的完成函数,间接jmp到加密壳的内核服务。这类体例就是DNGuardv1.0接纳的办法,仿佛也是某壳今朝版本的办法。
  固然,DNGuard1.0还复杂的到场了放内存修正,不外这个效果也能太悲观,破解者也可以把这部分屏障失落。由于反射在A区完成,假如壳的内核也挂接A区,反射就对照简单修复。
  在我做DNGuard2.0之前,我曾想过一种办法,能使反射有效,乃至难于修复。即同时在内核挂接在A区,和B区。
  先来先容一下一个函数要被实行是是怎样个流程。
  起首,EE会反省函数是不是编译?编译了就间接挪用了。没有编译就举行编译。由一个prestub完成。然后EE获得办法体,对办法头和SEHTAble举行复杂剖析,转换成布局。(这些在A区完成),进进B区挪用Jit举行编译。在A区ee只干系办法头和sehtable,而B区挪用jit时il字节码才有实践意义。以是能够将内核分离挂接这两个区,A区中只供应header和seh,B区中供应il字节码。
  不外在我入手下手做DNGuardv2.0后就保持了这个设法,由于如许仍是不平安。
  不论内核是在A区仍是B区,假如一个加密壳的内核只限于在mscorwks.dll举行挂接完成。那末都没法脱逃jit层脱壳机的脱壳。我在写文章“深切Jit,完成dotNet代码的加解密”时已举行过测试了。

我见过java运行在手机上,包括很廉价的山寨手机,但是却暂时没发现.net在手机上有什么作为。wp7可能是个转机,但是按照《Java的跨平台就是一句谎言。那.net的跨平台也当之无愧是一句谎言。

简单生活 发表于 2015-1-24 13:40:32

微软又推出ASP.NET。这不是ASP的简单升级,而是全新一代的动态网页实现系统,用于一台WEB服务器建立强大的应用程序。是微软发展的新体系结构.NET的一部分,是ASP和.NET技术的结合。

莫相离 发表于 2015-2-1 16:11:30

最强的技术支持WebService,而且有.NET的所有library做后盾。而且ASP.NET在.NET3.5中还有微软专门为AJAX开发的功能--ASP.NETAJAX。

变相怪杰 发表于 2015-2-7 07:58:21

asp.net空间的支持有:ASP.NET1.1/虚拟目录/MicrosoftFrontPage2000扩展/CDONTS,同时他的网站上也提供了Asp.net的使用详解和程序源代码,相信对使用ASP.NET编程的程序员来说会非常有用哦!

精灵巫婆 发表于 2015-2-21 04:27:22

这也就是最近几年来随着各种新的后台技术的诞生,CGI应用在Internet上越来越少的原因。CGI方式不适合大访问量的应用。

飘灵儿 发表于 2015-3-6 19:40:20

Asp.net脚本的出现,为ASP空间带来了更高的稳定性,同时也为程序员建站提供更高环境!

admin 发表于 2015-3-13 07:08:19

如今主流的Web服务器软件主要由IIS或Apache组成。IIS支持ASP且只能运行在Windows平台下,Apache支持PHP,CGI,JSP且可运行于多种平台,虽然Apache是世界使用排名第一的Web服务器平台。

山那边是海 发表于 2015-3-20 16:02:50

网页从开始简单的hmtl到复杂的服务语言,走过了10多个年头,各种技术层出不穷,单个的主流技术也在不断翻新的版本,现在分析下各种语言的区别、优势、劣势、开发注意事项!
页: [1]
查看完整版本: ASP.NET网站制作之mscorwks.dll在.Net中的位置及代码回护...