下载啦:请放心下载,安全无病毒!

软件提交最近更新 热门排行
您现在的位置: 下载啦 > 编程开发 > 编程软件 > Dotnet IL Editor(.NET调试器) v0.2.6 汉化版
Dotnet IL Editor(.NET调试器) v0.2.6 汉化版
0%
0%

Dotnet IL Editor(.NET调试器) v0.2.6 汉化版

  • 软件介绍
  • 软件截图
  • 相关下载
  • 相关文章

Dotnet IL Editor简称DILE,是一款.NET平台反编译工具,可以反编译.NET程序集文件为IL代码,并且可直接执行,调试反编译后生成IL代码,可以进行重新编译和代码的调试,在编程中比较常用的一款软件。

Dotnet IL Editor(.NET调试器) v0.2.6 汉化版

使用教程

先建立一个C#控制台项目,设计一个数字相加的方法,并在Main方法中调用它

Dotnet IL Editor(.NET调试器) v0.2.6 汉化版

程序总共不到10行,把数字1和2相加,输出到控制台。

public class TestEditor

{

public static int Sum(int a, int b)

{

return a + b;

}

public static void Main(string [] args)

{

Console.WriteLine(Sum(1,2));

Console.ReadLine();

}

}

执行程序Dile.exe, 新建一个项目,在项目浏览器中点右键添加程序集,一层层的展开该程序集,如下图所示

Dotnet IL Editor(.NET调试器) v0.2.6 汉化版

Visual Studio的解决方案浏览器相似,它按照命名空间展开,列出了程序集中的方法,双击该方法,可以在编辑器中打开IL源代码,IL编辑器窗口是只读的。

探索.NET代码的奥秘

记得.NET教材中有一条原理知识,类型默认继承自object类,当没有为类型定义构造方法(ctor)时,.NET编译器会为它生成一个默认的构造方法,该方法不带参数。如果在阻止默认生成的构造方法,只需要为类型定义一个方法,即可阻止编译器的这个行为。

为什么不现在就试一下这条原理是否正缺,或是有什么遗漏的地方。于是修改类型定义的方法,给它加上一个带参数的构造方法,该方法为一个空方法,带参数以区别是.NET生成还是我们手动添加的。源代码是这样的

public class TestEditor

{

public TestEditor(string str)

{

}

public static int Sum(int a, int b)

{

return a + b;

}

public static void Main(string [] args)

{

Console.WriteLine(Sum(1,2));

Console.ReadLine();

}

}

TestEditor类型现在有一个自定义的构造方法,带一个字符串参数。再次到IL Editor中打开,看看它生成的IL代码

Dotnet IL Editor(.NET调试器) v0.2.6 汉化版

果然如此,生成的IL代码中,没有默认的构造方法,取而代之的是我们定义的构造方法。

再来验证一条知识点,const常量会被以常量的形式编译到程序集中,因而它的效率很高。再修改C#源代码,编译,IL Editor中打开,C#的源代码现在看起来是这样的

public class TestEditor

{

public const string ProductName="Enterprise Solution";

public TestEditor(string str)

{

}

public static int Sum(int a, int b)

{

return a + b;

}

public static void Main(string [] args)

{

string productionName = ProductName;

Console.WriteLine(productionName);

Console.WriteLine(Sum(1,2));

Console.ReadLine();

}

}

再来看生成的IL代码,它显示的结果如下

Dotnet IL Editor(.NET调试器) v0.2.6 汉化版

反编译后的结果与我们曾看到过的知识点一样,验证所学无误。

在源代码中,控制台主方法中,它调用1+2求和的方法,也是以常量的形式编译进程序集。

Console.WriteLine(Sum(1,2));

对应的.NET IL代码是

ldc.i4.1

ldc.i4.2

call int32 ILEditorLibrary.TestEditor::Sum(int32, int32)

call void [mscorlib]System.Console::WriteLine(int32)

IL是基于堆栈的语言,先压入值1,再压入值2,再对二者求和,最后调用方法显示到控制台上。

调试IL代码

IL Editor的调试功能是它的亮点之一,可以在打开的IL代码中直接设置断点(F9, Toogle breakpoint),然后点击工具栏中的Run,启动调试。调试程序的几个要点,看堆栈Stack, 看变量值Watch,IL Editor都可以做到。

IL堆栈窗口

Dotnet IL Editor(.NET调试器) v0.2.6 汉化版

IL参数窗口,可显示当前被调用的方法的传入参数

Dotnet IL Editor(.NET调试器) v0.2.6 汉化版

IL Watch窗口

Dotnet IL Editor(.NET调试器) v0.2.6 汉化版

表达式可以支持自定义的表达式,这个功能与VS中的即时窗口类似,输入表量或表达式,右边计算出结果。

IL Editor的作者列举出了一些经过测试,演示的表达式代码,他们是

5 * -6

1 + 2 * 3 - 10 / 5 * 5

(1 + 2 * 3 - 10 / 5 * 5).ToString()

(-5).ToString()

new object() + "a"

"abc".Length.ToString()

System.Type.GetType("System.String").GUID.ToByteArray()

TestApplication.DebugTest.CreateOperatorTest4("op1") | true

TestApplication.DebugTest.ParamsTest2()

TestApplication.DebugTest.ParamsTest2(5, 6)

System.String.Format("{0}{1}{2}{3}{4}", "a", "b", "c", "d", "e")

new object[] {4, "a", 5}

((System.Exception){exception}).Message

TestApplication.GenericClass.StaticMethod("test")

new TestApplication.TestClass[] {new TestApplication.TestClass(1, "one")}

TestApplication.GenericClass.NestedGenericClass.StaticMixedMethod(System.DateTime.Now, 5, null)

是的,你可以直接在窗口中输入,IL会对表达式求值,返回结果显示到右边。

最后看到执行结果

Dotnet IL Editor(.NET调试器) v0.2.6 汉化版

控制上显示输出值,与在VS中调试C#源代码的体验完全相同。

汉化过程:

1.用de4dot-2.0.3(脱壳.net)

2.用DNH反编译(分合);

3.用XNR加图标;

4.用R2 翻译字符串 str #US =>保存全部=>构建全部(生成的.net不规范);

5.为使编译规范再重复第2步;(不能加压加密不可运行).

更新日志:

·加入调试全力支持泛型(类型参数的表达式可以评估对象查看器也将正确显示这些值)

·支持·支持创建嵌套类数组表达式求值表达式求值创建嵌套类

·加入支持评估表达式包含枚举·添加元数据(类事件被收集在“工程资源管理器类似的”事件“节点下属性)

·解析事件的正确读数NET2.0格式的权限集。

  • Dotnet IL Editor(.NET调试器)v0.2.6 汉化版(1)
  • Dotnet IL Editor(.NET调试器)v0.2.6 汉化版(2)
  • Dotnet IL Editor(.NET调试器)v0.2.6 汉化版(3)
  • Dotnet IL Editor(.NET调试器)v0.2.6 汉化版(4)
  • Dotnet IL Editor(.NET调试器)v0.2.6 汉化版(5)
  • Dotnet IL Editor(.NET调试器)v0.2.6 汉化版(6)
  • Dotnet IL Editor(.NET调试器)v0.2.6 汉化版(7)
  • Dotnet IL Editor(.NET调试器)v0.2.6 汉化版(8)
  • Dotnet IL Editor(.NET调试器)v0.2.6 汉化版(9)

下载地址

  • Pc版

Dotnet IL Editor(.NET调试器) v0.2.6 汉化版

软件评论 您的评论需要经过审核才能显示

请自觉遵守互联网相关政策法规,评论内容只代表网友观点,与本站立场无关!
网友评论

热门精选