原文:编译时MSIL注入--实践Mono Cecil(1) 紧接上两篇浅谈.NET编译时注入(C#-->IL)和浅谈VS编译自定义编译任务—MSBuild Task(csproject),在第一篇中我们简单研究了c#语法糖和PostSharp的MSIl注入,紧接第二篇中我们介绍了自定义MSBuild ...
分类:
其他好文 时间:
2016-06-08 06:52:07
阅读次数:
291
一:认识程序集 只要是使用VS就会和程序集打交道,我们通过编辑和生产可执行程序就会自动生成程序集。那么什么事程序集呢,.net中的dll与exe文件的都是程序集(Assembly)。 可以看做是一堆相关类打包的包,相当于java中的jar包(*); 程序集包含:类型元数据,程序集元数据,IL代码,资... ...
1.实例解析IL 作为C#程序员,IL的作用不言而喻,首先来看一个非常简单的程序和它的IL解释图,通过这个程序的IL指令来简单的了解常见的IL指令是什么意思。 class Program { static void Main(string[] args) { int i = 2; string st ...
1) 反汇编dll C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\ildasm.exe 打开dll文件,再转储。 2) 修改il文件 IL_0000: ldc.i4.1 IL_0001: ret相当于return true; 3) 编 ...
一前言 感谢 @冰麟轻武 指出文章的错误之处,现已更正 对于IL代码没了解之前总感觉很神奇,初一看完全不知所云,只听高手们说,了解IL代码你能更加清楚的知道你的代码是如何运行相互调用的,此言一出不明觉厉。 然后开始接触IL,了解了一段时后才发现原来读懂IL代码并不难。进入正题 1.1 什么是IL I ...
分类:
其他好文 时间:
2016-05-26 18:58:57
阅读次数:
174
一 前言 IL系列 第一篇写完后 得到高人指点,及时更正了文章中的错误,也使得我写这篇文章时更加谨慎,自己在了解相关知识点时,也更为细致。个人觉得既然做为文章写出来,就一定要保证比较高的质量,和正确率 。感谢 @冰麟轻武 的指点 你没有看第一篇? 点这里看第一篇 读懂IL代码就这么简单(一) IL指 ...
分类:
其他好文 时间:
2016-05-26 18:56:25
阅读次数:
344
2016-05-26 11:48:46 测试的WPF项目 MainWindow.xaml代码 MainWindow.xaml.cs 代码 在学习WPF的时候,想验证:删除MainWindow.xaml.cs文件中的 InitializeComponent();。使用ILDisassembler查看项 ...
分类:
其他好文 时间:
2016-05-26 13:03:33
阅读次数:
161
用以上代码读取一个包含中文的txt文件时,在正确地读取并打印了六百多行之后,print str(i)+": "+line这一行报错: UnicodeEncodeError: 'gbk' codec can't encode character u'\u200b' in position 99: il ...
分类:
编程语言 时间:
2016-05-24 20:51:18
阅读次数:
1406
本文涉及到一些JVM原理和Java的字节码指令,推荐感兴趣的读者阅读一本有关JVM的经典书籍《深入Java虚拟机(第2版)》,将它与我在《.NET 4.0面向对象编程漫谈》中介绍的CLR原理与IL汇编指令作个对比,相信读者会有一定的启发。而仔细对比两个类似事物的异同,是很有效的学习方法之一。 1 奇 ...
分类:
编程语言 时间:
2016-05-23 17:26:57
阅读次数:
229
这里说析构函数,其实并不准确,应该叫Finalize函数,Finalize函数形式上和c++的析构函数很像 ,都是(~ClassName)的形式,但是功能上完全不一样。析构函数编译成il语言后会变成一个Finalize的函数,他是重写的object的Finalize虚函数,标题上用析构函数,主要是我 ...
分类:
Web程序 时间:
2016-05-22 16:37:59
阅读次数:
254