Assembly Manipulation and C# / VB.NET Code Injection

Latest Releases最新发布

You can always get the latest Reflexil releases here .你总是可以得到Reflexil 这里的最新Reflexil版本。

Introduction介绍

Reflector and JustDecompile are great tools for doing an in-depth examination of various types of assemblies and also for disassembling IL code towards a supported .NET language. 反射JustDecompile是伟大的工具,做一个深入的研究,也为各类组件拆卸IL代码朝着支持。NET语言。 However, they are unable to modify either the structure or the IL code of assemblies. Reflexil allows such modifications by using the powerfulMono.Cecil library written by Jb EVAIN . Reflexil runs as a plug-in and is directed especially towards IL code handling.然而,他们无法修改的结构或组件的IL代码。 Reflexil的使用由JB EVAIN的书面的的强大的Reflexil Mono.Cecil库允许这样的修改。 Reflexil作为插件运行,特别是对处理IL代码。 It accomplishes this by proposing a complete instruction editor and by allowing C#/VB.NET code injection, as we will see in the following two examples.它通过提出一个完整的指令编辑器,允许C#/ VB.NET代码注入,我们将看到在下面的两个例子。

Demo Application演示应用

Let's use a very simple application that is able to add two numbers:让我们用一个非常简单的应用程序,能够将两个数字相加:

 using System; 使用系统;
using System.Windows.Forms; 使用 System.Windows.Forms;

namespace ReflexilDemo 命名空间 ReflexilDemo中
{ {
    public partial class DemoForm : Form 公共部分类 DemoForm:表格
    { {
        public DemoForm() 公共 DemoForm()
        { {
            InitializeComponent();在InitializeComponent();
        } }

        private void ComputeAndDisplay( decimal x, decimal y) 私人的无效 ComputeAndDisplay( 十进制 X, 进制y)
        { {
            MessageBox.Show( String .Format( " {0}+{1}={2}" , x, y, x + y)); MessageBox.Show( 字符串格式(“{0} + {1} = {2}”,X,Y,X + Y));
        } }

        private void DisplayResultButton_Click( object sender, EventArgs e) 私人的无效 DisplayResultButton_Click( 对象发件人,EventArgs五)
        { {
            ComputeAndDisplay(LeftOperand.Value, RightOperand.Value); ComputeAndDisplay(LeftOperand.Value,RightOperand.Value);
        } }
    } }
} } 

Reflexil的演示

导致

Using Instruction Editor使用说明编辑器

Using the instruction editor, let's update the ComputeAndDisplay method body by calling the overloaded method MessageBox.Show , which takes a title as a second parameter for the modal window displaying the result.使用指令编辑器,让我们更新的ComputeAndDisplay方法体调用重载方法MessageBox.Show模态窗口显示的结果作为第二个参数,这需要一个标题。 In order to do so, we have to initially put a string parameter on the stack with ldstr opcode:为了做到这一点,我们必须首先把一个string参数在栈上ldstr操作码:

法编辑器

创建新的指令

Then we have to update the "call" instruction to use the overloaded methodMessageBox.Show , which uses the previously created parameter:然后,我们有更新的“呼叫”指令使用重载方法MessageBox.Show ,它使用以前创建的参数:

法编辑器

编辑现有的指令

选择一种方法

It is time to save our work and to test our patched assembly:现在是时候来拯救我们的工作,并测试我们的补丁装配:

截图 -  reflexil08new.png的

Our assembly is now using the overloaded method and the suitable parameter:现在我们的组件使用重载的方法和合适的参数:

导致

Instruction Editor Features指令编辑器功能

The instruction editor supports all opcodes defined in Mono.Cecil .指令编辑器支持所有定义在Mono.Cecil操作码。 The following operands are supported:支持以下操作数:

  • Primitive types: byte, sbyte, int32, int64, single, double原始类型:字节,SBYTE,INT32,int64类型,单,双
  • String
  • Instruction reference指令参考
  • Multiple instructions references (switch)多指令引用(开关)
  • Parameter or variable reference参数或变量参考
  • Internal generic type reference内部的泛型类型参考
  • Type, field or method reference using a browser for selecting the suitable element.类型,字段或方法引用,使用浏览器选择合适的元素。 This browser is like the reflector's one (lazy loading, icons, etc.)此浏览器就像是反射的(懒加载,图标等)

In a quite comprehensible way, the Reflector and Reflexil object models are not synchronous: updates made on the IL code will not impact the disassemble window of Reflector . Reflexil and Mono.Cecil do not perform any checks of the emitted code.在一个完全可以理解的方式,的ReflectorReflexil对象模型是不同步的IL代码的更新不会影响Reflector拆机窗口。 Reflexil Mono.Cecil发出的代码不执行任何检查。 The only constraint is about coherence between the operand type used for a given opcode.唯一的限制是用于给定的操作码的操作数的类型之间的一致性。 For those who find IL manipulation difficult, the following example shows how to update a method body with C# or VB.NET.对于那些谁发现IL操控困难,下面的例子说明如何更新方法体与C#或VB.NET。

Using C#/VB.NET Code Injection使用C#/ VB.NET代码注入

You can choose your preferred injection language and input/display bases (binary, octal, decimal, and hexadecimal) with the configuration form:你可以选择你首选的注射语言和输入/显示基地(二进制,八进制,十进制和十六进制)的配置形式:

组态

Let's use the "Replace all with code" feature on the body of the ComputeAndDisplaymethod:让我们用“替换所有的代码”功能,对身体的ComputeAndDisplay方法:

更换所有的代码

A compile window enables us to view the resulting IL code.编译窗口,使我们能够查看生成的IL代码。 A basic support for intellisense/insight is provided:提供一个基本的支持的intellisense /有识之士的是:

注射C#

We can do it again with VB.NET language.我们可以做到这一点再次用VB.NET语言。Note that in this simple case, we obtain an identical IL code (it is not always the case):请注意,在这个简单的例子中,我们得到一个相同的IL代码(它并不总是如此):

注射VB.NET

Let's save and test our patched assembly:让的保存和测试我们的补丁装配:

导致

C#/VB.NET Code Injection Features C#/ VB.NET代码注入特点

The code is compiled using System.CodeDom in a separate AppDomain for a correct resource release.代码被编译使用正确的资源释放在一个单独的System.CodeDom AppDomainSystem.CodeDom 。 Once compiled, instructions are extracted and then reinserted in the original method body.编译后,指令提取,然后重新插入原来的方法体。 Parameters, variables, methods, fields and types references are adjusted to match the original assembly.调整参数,变量,方法,字段和类型引用以匹配原始组件。 Code injection is limited: it is not possible to refer either to the fields or to the methods defined in ancestral types of the owner type of the original method.代码注入的是有限的:指字段或雇主的祖先类型的不同的原来的方法中定义的方法,这是不可能的。 You can choose the target framework used by the compilation process.您可以选择编译过程中所使用的目标框架。

Method Attributes Editor方法属性编辑器

You can easily update a method signature or change his visibility scope.您可以轻松地更新方法签名或改变他的可视范围。 You are also able to change the return type:你也可以改变返回类型:

方法属性编辑器

Method parameters (and variables) are also editable.方法参数(变量)都还可以。Reflexil can load symbols (MDB and PDB files are supported) to display original variable names: Reflexil的可以加载符号(MDB和PDB文件都支持),以显示原始变量名:

参数属性编辑器

Exception Handlers异常处理

Reflexil allows to add/update/delete exception handlers associated with a method body. Reflexil允许添加/更新/删除相关的异常处理程序与方法体。 The following types are supported:支持以下类型:

  • Catch
  • Filter (the VB.NET Where clause in Try / Catch blocks) Filter (VB.NET Where子句的Try / Catch块中)
  • Finally
  • Fault

编辑异常处理程序

Type Attributes Editor类型属性编辑器

Like methods, you can change any type visibility scope.方法一样,您可以更改任何类型的可见范围。 So you can expose a previously private type to the world:所以,你可以揭露以前private型向世界宣布:

类型属性编辑器

Member manipulation会员操作

Reflexil is able to rename, delete or inject class, interface, struct, enum, event, field, method, constructor, property or assembly reference. Reflexil是能够重命名,删除或注入类,接口,结构,枚举,事件,字段,方法,构造函数,财产或程序集的引用。

注射

Smart injection : injecting a new property will generate a field, getter/setter methods and IL code.智能注入:注入了新的属性将产生一个字段,getter / setter方法??和IL代码。

智能注射

Resources Editor资源编辑器

You can inject and alter embedded resources, linked resources and assembly linked resources.你可以注入和改变嵌入的资源,链接资源和装配资源链接。 A complete hex editor is provided to update, export or import files.一个完整的十六进制编辑器提供更新,导出或导入文件。

资源编辑器

Custom attributes Editor自定义属性编辑器

Custom attributes are fully supported.完全支持自定义属性。

资源编辑器

Assembly and Assembly Reference Editor大会和大会参考编辑

With the assembly editor, you can use a different entry point:装配编辑器,你可以使用不同的入口点:

大会编辑

You can also update all information regarding identification: version, public key, name and culture.您还可以更新有关的所有信息识别版本,公钥,名称和文化。 Note that you can also alter any referenced assembly so you can use a different version:请注意,您还可以改变任何引用的程序集,所以你可以使用不同的版本:

大会编辑

Module Editor模块编辑器

With the module editor, you can simply change the kind of your application (transform an executable assembly to a DLL library for instance):随着模块的编辑器,你可以简单地改变你的应用程序(例如可执行程序集转换到一个DLL库)的那种:

模块编辑器

Signed Assemblies Support签名的程序集支持

When saving a signed assembly, the resulting assembly is placed in the "delay signed" state. Reflexil can use SDK tools to fix it.节省签名的程序集时,产生的组件被放置在“延迟签名”状态。 Reflexil可以使用SDK工具来修复它。

签署的组件

Reflexil is able to remove assembly strong name and update referencing assemblies.Reflexil是能够删除程序集强名称和更新引用程序集。 You can also do it by yourself with the assembly editor: remove the public key and set the HasPublicKey flag tofalse .你也可以做自己组装编辑器:去除公钥和的HasPublicKey标志false 。

签署的组件

Deobfuscation Support反混淆技术支持

Reflexil is able to remove obfuscated code thanks to de4dot . Reflexil是能够去除混淆代码感谢de4dot 。

混淆搜索

Babel NET, CliSecure, CodeFort, CodeVeil, CodeWall, CryptoObfuscator, DeepSea, Dotfuscator, dotNET Reactor, Eazfuscator NET, Goliath NET, ILProtector, MaxtoCode, MPRESS, Rummage, Skater NET, SmartAssembly, Spices Net and Xenocode are supported.通天NET,CliSecure,CodeFort,CodeVeil,CodeWall,CryptoObfuscator,深海,Dotfuscator的,dotNET的反应堆,NET Eazfuscator,巨人网,ILProtector,MaxtoCode,MPRESS,临检,溜冰NET,SmartAssembly,香料网和Xenocode的支持。

混淆发现
混淆清洗

Assembly Verifier大会验证

With the assembly verifier (using peverify.exe from .NET SDK), you can determine whether the IL code and associated metadata meet type safety requirements.装配验证(使用peverify.exe。NET SDK),你可以决定的IL代码和相关元数据是否满足类型安全要求。

大会验证
大会验证

Conclusion结论

Reflexil is completely based on Mono.Cecil .是完全基于Mono.Cecil Reflexil 。 The interesting thing is that Mono.Cecil can load assemblies without the help of the runtime, so there is no resource release constraint and AppDomain isolation for example.有趣的是, Mono.Cecil可以加载程序集运行没有帮助,所以不存在资源释放约束和例如AppDomain隔离。 There is no relation between System.Type andMono.Cecil.TypeDefinition , whereas they both materialize the .NET type concept.没有关系之间System.Type Mono.Cecil.TypeDefinition ,而他们都实现了。NET类型的概念。If we want to programmatically reproduce our first example ( Show overload), we can write it very easily, thanks to Mono.Cecil .如果我们想以编程方式重现我们的第一个例子(Show过载),我们可以写很容易,感谢Mono.Cecil 。

Change Log更改日志

 //////////////////////////////////////////////////////////////////////////////// / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
// v1.6 - 17/01/2013 /////////////////////////////////////////////////////////// / / V1.6  -  17/01/2013 / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
//////////////////////////////////////////////////////////////////////////////// / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /

  news:新闻:
    - Optional ILMerged version to prevent unexpected Mono.Cecil assemblies. - 可选ILMerged的版本,以防止意想不到的Mono.Cecil组件。
	  
  upgrades:升级:
    - de4dot 1.9.0 update. -  de4dot 1.9.0更新。 New deobfuscation support for CodeFort, CodeWall,新的反混淆技术支持为CodeFort CodeWall
      ILProtector, MPRESS, Rummage. ILProtector,临检MPRESS。
    - Mono.Cecil 0.9.5.4 update. -  Mono.Cecil 0.9.5.4更新。
    - ARM, WindowsRuntime and Module characteristics support. -  ARM,WindowsRuntime和模块特性的支持。
        
  bugfixes:错误修正:
    - Check customized Mono.Cecil assembly - 检查的定制Mono.Cecil总成

//////////////////////////////////////////////////////////////////////////////// / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
// v1.5 - 16/04/2012 /////////////////////////////////////////////////////////// / / V1.5  -  16/04/2012 / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
//////////////////////////////////////////////////////////////////////////////// / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /

  news:新闻:
    - deobfuscation support for Babel NET, CliSecure, CodeVeil, CryptoObfuscator - 支持为通天NET,CliSecure,CodeVeil,CryptoObfuscator反混淆
      DeepSea, Dotfuscator, dotNET Reactor, Eazfuscator NET, Goliath NET,深海,Dotfuscator的dotNET的的反应堆,Eazfuscator NET,巨人NET,
      MaxtoCode, Skater NET, SmartAssembly, Spices Net and Xenocode. MaxtoCode,溜冰NET,SmartAssembly,香料净Xenocode的。
      Thanks to de4dot by 0xd4d!感谢de4dot由0xd4d!
	  
  upgrades:升级:
    - Mono.Cecil update. - 更新Mono.Cecil。
        
  bugfixes:错误修正:
    - bugfix for "register for verification skipping" and delay signed assembly. - 修正为“注册验证跳过”延迟签名的程序集。
    - bugfix for "resign" and delay signed assembly. - 修正错误的“辞职”,并拖延签署的组件。
      
//////////////////////////////////////////////////////////////////////////////// / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
// v1.4 - 27/01/2012 /////////////////////////////////////////////////////////// / / V1.4  -  27/01/2012 / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
//////////////////////////////////////////////////////////////////////////////// / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /

  news:新闻:
    - custom attributes support. - 自定义属性的支持。
    - assembly/module renaming. - 组件/模块命名。
    
  upgrades:升级:
    - search the type tree with a regex like ^SerializableAttribute$. - 搜索类型树这样一个正则表达式^ SerializableAttribute $。
    
  bugfixes:错误修正:
    - fixed drag&drop issues with column headers. - 固定列标题拖放问题。
    - fixed broken ExceptionHandler editor after Mono.Cecil 0.9.x migration. - 固定破碎的ExceptionHandler编辑后Mono.Cecil 0.9.x版本迁移。
    - fixed broken Variable editor after Mono.Cecil 0.9.x migration. - 固定破碎变量编辑后Mono.Cecil 0.9.x版本迁移。
    - fixed assembly resolution issues, thanks to Douglas Drinka. - 固定大会决议问题,感谢道格拉斯Drinka。
  
//////////////////////////////////////////////////////////////////////////////// / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
// v1.3 - 24/08/2011 /////////////////////////////////////////////////////////// / / V1.3  -  24/08/2011 / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
//////////////////////////////////////////////////////////////////////////////// / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /

  news:新闻:
    - resource support (injection and alteration): Embedded resources, linked - 资源支持(注入和改建):嵌入式资源链接
      resources and assembly linked resources.资源和集会链接资源。 Complete hex editor to update,完整的十六进制编辑器更新,
      export or import files.导出或导入文件。
    
  upgrades:升级:
    - works both on Reflector 6.x and Reflector 7.x. - 工程上反射6.x和反射7.x版本
    
  bugfixes:错误修正:
    - fixed assembly loading errors when using symbols and pdb file is not - 固定程序集加载错误时使用的符号和pdb文件 
      available.可用。

//////////////////////////////////////////////////////////////////////////////// / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
// v1.2 - 07/03/2011 /////////////////////////////////////////////////////////// / / V1.2  -  07/03/2011 / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
//////////////////////////////////////////////////////////////////////////////// / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /

  news:新闻:
    - Reflexil is now MIT/X11 licensed -  Reflexil的是现在MIT/X11行货
    - technical update: using customized Mono.Cecil/Light 0.9.x - 技术更新:使用的定制Mono.Cecil /轻0.9.x版本
    - technical update: using customized ICSharpCode.SharpDevelop.Dom.dll - 技术更新:使用自定义ICSharpCode.SharpDevelop.Dom.dll
    - technical update: using customized ICSharpCode.TextEditor.dll - 技术更新:使用自定义ICSharpCode.TextEditor.dll
    - technical update: using customized ICSharpCode.NRefactory.dll - 技术更新:使用定制ICSharpCode.NRefactory.dll
    
  upgrades:升级:
    - moved "Kind" and "Target Runtime" from Assembly to Module handler - 提出“好心肠”,“目标运行时模块处理程序”从大会
    - better support for pdb and mdb files and strong name assemblies - 更好地支持PDB和mdb文件和强名称组件
    - complete support for PE32+ assemblies -  PE32 +组件的完整支持
    - less memory consumption - 更少的内存消耗
    - lazy loading of every metadata element - 懒加载的每一个元数据元素
    - speed and optimizations - 速度和优化
    - you can enable/disable cache settings for intellisense - 您可以启用/禁用缓存设置智能感知 
    - injection/compilation with version control: v2.0, v3.5, v4.0 - 注塑/编译版本控制:V2.0,V3.5,V4.0
    - new injection import process - 注入新进口过程
    - added architecture support (I386, AMD64, IA64) in module definition - 增值模块定义架构的支持(I386,IA64,AMD64)
    - new attributes grouping - 新属性分组
    
  bugfixes:错误修正:
    - fixed PointerType/ArrayType/ReferenceType Cecil/Reflector code matching - 固定PointerType /数组类型/ ReferenceType的的塞西尔/反射代码匹配 
      (No data shown for methods with "ref" array parameters) (没有数据显示的方法与“裁判”数组参数)
    - fixed crashes when attempting to replace all with code - 固定崩溃时尝试更换所有的代码
      (Could not find a part of the path) (找不到路径的一部分)
    - fixed type import when updating field, method, property or event - 更新字段,方法,属性或事件时,固定式进口
    - fixed extra random assembly reference when injecting/compiling - 固定的额外随机装配时参考注入/编译

//////////////////////////////////////////////////////////////////////////////// / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
// v1.1 - 28/04/2010 /////////////////////////////////////////////////////////// / / V1.1  -  28/04/2010 / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
//////////////////////////////////////////////////////////////////////////////// / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /

  news:新闻:
    - rename, delete or inject class/interface/struct/enum/event/field/method/ - 重命名,删除或注射类/接口/结构/枚举/事件/场/方法/
      constructor/property/assembly reference构造函数/属性/程序集的引用
    - smart injection : injecting a new property will generate a field, - 智能注射:注射会产生一个新的属性字段, 
      getter/setter methods and IL code.的getter / setter方法??和IL代码。
    - open architecture: Reflexil is now able to be used with Reflector, - 开放式体系结构:Reflexil的是现在能够被用来与反射,
      Cecil.Studio or anything able to convert an object model to Mono.Cecil Cecil.Studio或任何能够转换对象模型来Mono.Cecil的
    - property editor (attributes, type, constant) - 属性编辑器(属性,类型,常量)
    - field editor (attributes, type, constant) - 字段编辑器(属性,类型,恒)
    - event editor (attributes, type) - 事件编辑器(属性,类型)
    - assembly verifier (using peverify.exe from .NET SDK) - 装配验证(使用peverify.exe。NET SDK)
    
  upgrades:升级:
    - interfaces and base type selection for type editor - 接口和基类型编辑器类型的选择
    - Reflector/Mono.Cecil method matching - 反射/ Mono.Cecil的方法匹配

  bugfixes:错误修正:
    - fixed framework version detection for Mono, initial patch by Robin Herbots - 固定的框架由罗宾·贺伯特为单声道,初始补丁版本检测
    - fixed constant handling with parameters - 固定不变的参数处理
    - fixed InitLocals initialization for method bodies - 固定InitLocals的初始化方法体
    - fixed branch to self causes stack overflow, patch by Brien Sourceforge - 固定分支自我导致堆栈溢出,奥布莱恩Sourceforge上的补丁
    - fixed crash with unsupported assemblies - 固定与不支持的组件崩溃
    - fixed grid refresh for method overrides - 定格刷新方法重写 
    - fixed offset compute after code injection - 固定偏移计算代码注入后
    - fixed code injection/type matching with nested types - 固定代码注入/嵌套类型的类型匹配
    - fixed const handling with parameters, fields and properties - 固定常量处理参数,字段和属性

//////////////////////////////////////////////////////////////////////////////// / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
// v1.0 - 23/10/2009 /////////////////////////////////////////////////////////// / / 1.0  -  23/10/2009 / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
//////////////////////////////////////////////////////////////////////////////// / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /

  news:新闻:
    - proper configuration for code injection with .NET 3.5 compiled files - 正确的配置代码注入。NET 3.5编译的文件
    - using up to date Mono.Cecil.Pdb (now fully managed) - 使用最多日期Mono.Cecil.Pdb的(现已全面管理)

  bugfixes:错误修正:
    - fixed ArgumentOutOfRange with some compile errors (replace all with code) - 固定ArgumentOutOfRange这样的一些编译错误(取代所有的代码)
    - fixed error CS0006: Metadata file '...' - 固定错误CS0006:元数据文件'......“ could not be found无法找到    
    
//////////////////////////////////////////////////////////////////////////////// / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
// v0.9.1 - 30/04/2009 ///////////////////////////////////////////////////////// / / v0.9.1  -  30/04/2009 / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
//////////////////////////////////////////////////////////////////////////////// / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /

  news:新闻:
    - check if .NET Framework v3.5 is installed - 检查是否安装NET框架V3.5

  bugfixes:错误修正:
    - some debug code was left, causing errors to users without "c:" drive. - 留下一些调试代码,导致用户没有错误“C:”驱动器。
    
  misc:杂项:
    - source code cleanup - 源代码清理
  
//////////////////////////////////////////////////////////////////////////////// / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
// v0.9 - 28/01/2009 /////////////////////////////////////////////////////////// / / V0.9  -  28/01/2009 / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
//////////////////////////////////////////////////////////////////////////////// / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /

  news:新闻:
    - instruction offset column - 指令偏移列
    - code editor intellisense - 代码编辑器的智能感知 
    - region folding - 区域折叠
    - insight window - 洞察力窗口
    
  bugfixes:错误修正:
    - assembly browser was only listening to mouse events - 组装浏览器只是听鼠标事件
    - fix combobox rendering errors without visual themes - 修复组合框渲染错误,而视觉主题
    
  misc:杂项:
    - source code cleanup - 源代码清理
  
//////////////////////////////////////////////////////////////////////////////// / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
// v0.8 - 25/05/2008 /////////////////////////////////////////////////////////// / / V0.8  -  25/05/2008 / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
//////////////////////////////////////////////////////////////////////////////// / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /

  news:新闻:
    - assembly reference editor (name, version, public key, token, hash) - 程序集的引用编辑器(名称,版本,公钥令牌,哈希) 
    - assembly name editor (entry point, assembly kind, framework version, name, - 组件名称编辑器(入口点,装配类,框架版本,名称,
      version, public key, token)版本,公钥令牌) 
    
  upgrades:升级:
    - 'unsafe' code generation support - “不安全”的代码生成支持
    - reflector item handler - 反射项处理程序
    
  bugfixes:错误修正:
    - field reference fix after code injection - 字段引用代码注入后修复
    - forms tabindexes - 形式tabindexes的
  
//////////////////////////////////////////////////////////////////////////////// / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
// v0.7 - 17/01/2008 /////////////////////////////////////////////////////////// / / V0.7  -  17/01/2008 / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
//////////////////////////////////////////////////////////////////////////////// / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /

  news:新闻:
    - type attributes editor (sealed, semantic, layout, string format, - 类型的属性编辑器(密封,语义,布局,字符串格式,
      visibility, ...)能见度,...) 
    - strong name remover - 强劲名卸妆

  upgrades:升级:
    - sn.exe registry keys with framework 3.5 -  SN.EXE的框架3.5注册表键
    - C# / VB.NET code generator
				

 

posted @ 2014-02-11 14:24  Develop  阅读(1356)  评论(0编辑  收藏  举报