Ⅰ 如何反编译C#等net软件类库源代码
这个需要看对方有没有混淆,如果混淆了基本上反编译出来都不便于阅读。
1)如果没有混淆且没有加壳用Reflector.exe来反编译;
2)如果没有混淆但加了壳则用de4dot.exe来脱壳,脱壳后再用ILPsy.exe或Reflector.exe反编译;
3)如果对方使用付费版且是最新版的Dotfuscator 来混淆,就算你反编译后基本上阅读不了。
Ⅱ 如何安装C#在asp.net语言支持
这句话本身是有毛病的,其实.net是哪门语言都不支持,支持的是中间语言IL,也就是说不管你使用的那种语言编写的程序,最终都是会编译成IL的。所以没有任何语言会被.net支持。
而你所谓的C#支持指的是其编译环境。也就是说如何将C#编译成IL,那么你可以直接使用.net framework的编译环境,注意的是编译环境,而不是,net的运行环境,其运行环境指的是将IL进行执行,而编译环境指的是将上层不同的语言(VB,C#,CPP)等编译成为IL.而当前使用不错的就是VS软件。安装这个软件后可以将不同的语言编成为IL。界面处理就是选择C#开发环境,点击编译就可以了,否则可以使用CS编指令直接对其进行编译的,该指令在VS目录下,也可以直接找到CSC.exe文件,运行它可以将C#源码进行编译,如果不想安装VS,那么安装CSC.EXE也是一个不错的选择——用记事本写完程序,然后用CSC进行编译,然后就可以进行执行了!
Ⅲ aspnet和javaweb的代码一样嘛
代码不一样。
1、Java有源代码的参考,asp没有参考。
2、Java的语言没有封装,asp的代码有封装协议,用着更方便。ASP是.NET的一部分,作为战略产品,为ASP设计了这样一些策略:易于写出结构清晰的代码,代码易于重用和共享,可用编译类语言编写_鹊龋康氖侨迷备菀椎目⒊_EB_τ茫慵扑阆_EB_频恼铰苑较虻男枰JAVA这种语言,偶然成为了当前Web计算的主要语言,获得了广泛的业界支持,它portable,良好的oo属性,是互连网计算的强大的粘合剂。
Ⅳ asp.net(C#) 预编译文件
如果要改逻辑代码的话,没有源码是不行的,但是如果只需改页面代码只需要改aspx的文件,
Ⅳ 关于VS2003编译出现的几种常见难点
选择最佳的VS2003编译选项要由具体的情况和需要决定,但VS2003编译模型要有灵活性。即使选择使用 \app_code 目录来存储代码隐藏文件,您仍可以使用完整的编译方法来部署应用程序。ASP.NET 1.x中的编译ASP.NET1.x 中的主要编译模型会导致一个应用程序程序集(包含所有的已编译代码隐藏文件和其他的源代码)和一个为每个被请求的 ASPX 页而创建的临时程序集。在有些情况下,编译器优化(例如批处理)会引起将临时 ASPX 页编译到同一个程序集中。在任一种情况下,每个 ASPX 页都编译到一个临时程序集中,这样它可以加载到 ASP.NET 运行库。虽然这种模型有优点,但它也有两个主要缺点。首先,ASPX 页必须要以人们可以阅读的形式部署到 Web 站点。如果开发人员使用代码内联 模型,这意味着,一些(或所有)的业务逻辑也可以部署在生产服务器上。虽然没有将 IIS 和 ASP.NET 配置为公开原始的 ASPX 页,但聪明的攻击者仍可以通过任何攻击(该攻击打开到 Web 服务器的通道)来访问这些文件。其次,第一次有人请求某 Web 页时,响应速度将比正常速度慢一些,原因在于 ASP.NET 运行库必须编译 ASPX 页。这整个过程中,开发人员拥有的唯一控制权是决定是否批编译 ASPX 页。在 ASP.NET 1.x 中,可以通过修改 标记在 web.config 文件中配置批编译。ASP.NET 2.0 中的编译ASP.NET 2.0 为 Web 应用程序提供三种不同的VS2003编译模型:普通(ASP.NET 1.x) — 在一个普通的 ASP.NET Web 应用程序中,代码隐藏文件被编译到一个程序集并存储在 /bin 目录中。根据要求编译 Web 页 (ASPX)。该模型对大多数 Web 站点都运行得不错。但是,编译过程使得第一次请求 ASP.NET 页时的速度比随后的请求速度缓慢。ASP.NET 2.0 继续支持这种编译模型。部署预编译 — ASP.NET 2.0 的一种新功能,允许在部署前对项目进行完整编译。在完整编译中,所有的代码隐藏文件、ASPX 页面、HTML、图形资源以及其他的后端代码都被编译到一个或多个可执行程序集中,这取决于应用程序的大小和编译设置。这些程序集包含所有的已编译 Web 站点代码,而资源文件和配置文件被复制,没有做修改。这种编译方法以牺牲修改部署后 Web 站点的能力为代价,提供了最好的性能和安全性。如果您使用高可见或高安全的 Web 站点,这种选项是最终部署的最好选择。但是,如果您正在构建一个运行局部 Intranet 的小站点,并且更改站点非常频繁,那么完整预编译可能有点过分。 ASP.NET 2.0 编译模型也允许预编译应用程序的所有代码隐藏文件并且仍可以更新代码。可以将代码隐藏文件和原始的 .ASPX 文件(都是局部类)编译到一个预编译类中(页面的基类)。如果选择在运行时编辑 .ASPX 文件,只需重新编译页面即可。完整的运行时编译 — 在部署预编译的另一个极端,ASP.NET 2.0 提供一种在运行时编译整个应用程序的新机制。也就是说,可以将未编译的代码隐藏文件和其他相关的代码放在 \app_code 目录中,并让 ASP.NET 2.0 创建并维护对程序集的引用,这些引用将在运行时根据这些文件生成。这种选项以在服务器上存储未编译代码为代价,在更改 Web 站点内容方面提供了最大的灵活性。 选择最佳的编译选项要由具体的情况和需要决定,但编译模型要有灵活性。即使选择使用 \app_code 目录来存储代码隐藏文件,您仍可以使用完整的编译方法来部署应用程序。VS2003编译批编译在ASP.NET 2.0 中,可以利用单个 URL 请求来批编译任何应用程序。如同 ASP.NET 1.x 一样,批编译消除了第一次页面请求的延时,但造成了更长的启动周期。另外,批编译还要求在部署前编译代码隐藏文件。Web.config 批编译设置在 ASP.NET 2.0 中仍起作用。批编译的优点是,第一个用户可以立即使用页面,而且在批编译期间可以检测到 ASPX 页中的任何错误。但是,批编译的确增加了应用程序启动的延时,并且必须要内置在 Web.config 文件中。应当注意,如果某个文件出现了问题,则该批将不会接收它。部署预VS2003编译部署预编译允许创建一个或多个程序集,这些程序集是 Web 站点的可执行版本。所获得的程序集包含 Web 站点的已编译代码。HTML 页面、资源、配置文件和 ASPX 页面被单独复制。部署预编译要求使用一个称为 ASPnet_compiler.exe 的命令行实用程序。该实用程序创建一个目标部署目录,该目录包含一个含有程序集的 /bin 目录和各种 ASPX 页的 stub 文件。该实用程序还用来在原地进行预编译,类似于调用"魔术页"的行为。stub 文件共享 ASPX 页的名称,但是包含调用已编译程序集的简单代码。换句话说,ASPX 页只是空壳而不是填满的功能页。通过为部署预编译 Web 站点,您可以获得增强的安全性,因为只有进行反编译程序集才能访问您的代码。为了增强保护,可以弄乱所得到的程序集,使您的 Web 应用程序更加安全。部署预编译的主要缺点是,在部署前必须执行这些步骤,并且在部署后不能更改 Web 站点。如果想进行更改,就必须重新编译该 Web 站点并重新部署它。对于大多数主要的 Web 应用程序,部署预编译选项将是部署的首选机制源码天空,因为它减少了在 Web 服务器上部署的原始代码数量,并提供了最佳的安全性。这个增加的进程可以内置于通常的开发/测试/部署周期中,而工作效率并不会有多大损失。
Ⅵ C#源代码编译成为本地代码的编译过程
很有兴趣的话,可以去阅读下JeffreyRitchie的《ClrviaC#》,目前出到第三版,英文好的话强烈推荐看英文版的,而且我有该电子书和实体书。
下面讲下我的理解:大致上不会出什么差错的,细节部分你可以参照上面的书籍!
1.首先,c#源码经过c#编译器被编译成托管模块(IL中间代码、元数据(Metadata))
2.然后,使用C#编译器以及程序集链接器(AssemblyLinker----AL.exe)将上述托管模块以及项目的资源文件Combine(整合)成一个程序集(Assembly)
上述程序集就是你所看到的exe文件或者dll文件等等,程序集中包含了manifest描述文件,是该程序集内容以及关系的一个清单,具体的内容你可以参见JR的书跟Java中的类似!
双击该exe运行的时候:
3.最后,运行时,CLR装载对应的程序集,使用内部的三个即时编译器(常用的为JIT),再去根据本机的环境去进行相应的优化(针对CPU优化等等),即时的翻译成本地机器指令去执行。
还有一个本地化代码生成工具,NGen.exe~~
这个最好能去看看那本JR的神作!细节不是我三言两语能讲清的~~
Ⅶ 请问一些用asp.net c#开发的网站系统,它们通常只有.aspx文件,而没有.aspx.cs文件。
我来给你详细解释一下,记得给分
1 所有.aspx.cs文件,会被编译到dll里去,实际上你也可以自己写类和.aspx关联起来,也就是说不要.aspx.cs文件了,也行。
2 发布的时候,不需要.aspx.cs文件
3 如果别人能得到你c#编译出来的.dll文件,也能反编译看到你的c#源码,这里要说一下,c#编译出的dll和传统的比如vc++(非托管c++)编译的win32 dll不一样,c#的dll从概念上说更类似java编译出来的.class文件
4 如果你要让c#代码保密,那一般的方式是用混淆加密,类似java的方式,让对方从你的dll里反编译时看到的代码很难读(比如变量名都被替换成短的甚至无效的),这种方式只能说大大提高对方的解读时间成本,不能从根本上保密
5 如果要保密,可以用vc++开发那种传统c++和托管c++混合的代码,这样对方除非反汇编后读了。但这点c#做不到。
其实如果不是很重要的代码,不会有人反编译的,或者用4里说的就足够了
Ⅷ c#动态编译winform代码
break;
case "深圳":
this.dropdownlist2.Items.Add("龙岗区");
this.dropdownlist2.Items.Add("罗湖区");
this.dropdownlist2.Items.Add("福田区");
break;
case "佛山":
this.dropdownlist2.Items.Add("禅城区");
this.dropdownlist2.Items.Add("南海区");
this.dropdownlist2.Items.Add("顺德区");
break;
case "东莞":
break;
}
}
Ⅸ 编译器错误消息: ASPNET: 请确保此代码文件中定义的类与“inherits”特性匹配,并且该类扩展的基类
修改对应的aspx文件,找到开头的地方,修改成:<%@ Page Language="C#" AutoEventWireup="true" CodeFile="shop_proct_type
aspx.cs" Inherits="shop_proct_type" %>
其中CodeFile=后面的是哪个aspx.cs文件就写哪个,如实写。