读书--编写高质量代码 改善C#程序的157个建议
2013-10-21 22:49
316 查看
最近读了陆敏技写的一本书<<编写高质量代码 改善C#程序的157个建议>>书写的很好.我还看了他的博客http://www.cnblogs.com/luminji .
前面部分选择什么,该怎么用我没有怎么消化.看了他写的一篇关于自动化测试的工具,能够录下人的操作,然后可以在多台机器上调用,因为是windows开发的,我没有亲手实验,先记录在这里,以后要用可以找,"Code UI Automation"
文中大量都是通过对比IL代码,来区分哪个方案更好。我在看《你必须知道的.net》的时候就试过反编译工具,这次多看了下,有三个工具可以查看IL代码
第一个ildasm,这个是安装VS自带的,在Visual Studio Tool下面 --命令行提示,打开后在命令行中输入ildasm,就会打开一个窗口,加载.dll,就可以看到IL码了
第二个是.net reflector ,这个以前用的人多,后来要收费了,用的人就少了。我下了个试用版,很强大,直接加载.dll文件就能看到源代码。因为要收费,没有细看
第三个ILSpy,因为reflector,有人推荐了开源的这个工具,同样非常强大,把我以前写的.dll,拿过来就可以反编译成源代码
接着我想,破解软件的流程应该是把dll 变成IL code,修改IL code 后,再编译成dll,完成破解。
试了下,用ildasm可以导出为IL,但修改IL我不熟悉,摸索了半天,没有搞定,改好后用ilasm编译为dll,老是不成功。没有继续玩下去,先记在这里,以后再玩
前面部分选择什么,该怎么用我没有怎么消化.看了他写的一篇关于自动化测试的工具,能够录下人的操作,然后可以在多台机器上调用,因为是windows开发的,我没有亲手实验,先记录在这里,以后要用可以找,"Code UI Automation"
文中大量都是通过对比IL代码,来区分哪个方案更好。我在看《你必须知道的.net》的时候就试过反编译工具,这次多看了下,有三个工具可以查看IL代码
第一个ildasm,这个是安装VS自带的,在Visual Studio Tool下面 --命令行提示,打开后在命令行中输入ildasm,就会打开一个窗口,加载.dll,就可以看到IL码了
第二个是.net reflector ,这个以前用的人多,后来要收费了,用的人就少了。我下了个试用版,很强大,直接加载.dll文件就能看到源代码。因为要收费,没有细看
第三个ILSpy,因为reflector,有人推荐了开源的这个工具,同样非常强大,把我以前写的.dll,拿过来就可以反编译成源代码
接着我想,破解软件的流程应该是把dll 变成IL code,修改IL code 后,再编译成dll,完成破解。
试了下,用ildasm可以导出为IL,但修改IL我不熟悉,摸索了半天,没有搞定,改好后用ilasm编译为dll,老是不成功。没有继续玩下去,先记在这里,以后再玩
相关文章推荐
- 读书--编写高质量代码 改善C#程序的157个建议2
- 编写高质量代码改善C#程序的157个建议——建议79:使用ThreadPool或BackgroundWorker代替Thread
- 编写高质量代码改善C#程序的157个建议——建议89:在并行方法体中谨慎使用锁
- 编写高质量代码改善C#程序的157个建议——建议107:区分静态类和单例
- 编写高质量代码改善C#程序的157个建议——建议126:用名词和名词组给类型命名
- 编写高质量代码改善C#程序的157个建议——建议140:使用默认的访问修饰符
- 编写高质量代码改善C#程序的157个建议——建议151:使用事件访问器替换公开的事件成员变量
- 编写高质量代码改善C#程序的157个建议——建议18:foreach不能代替for
- 编写高质量代码改善C#程序的157个建议——建议46:显式释放资源需继承接口IDisposable
- 编写高质量代码改善C#程序的157个建议——建议58:用抛出异常代替返回错误代码
- 编写高质量代码:改善C#程序的157个建议
- 编写高质量代码改善C#程序的157个建议——建议67:慎用自定义异常
- 编写高质量代码改善C#程序的157个建议——建议70:避免在调用栈较低的位置记录异常
- 编写高质量代码改善C#程序的157个建议——建议127:用形容词组给接口命名
- 编写高质量代码改善C#程序的157个建议——建议136:优先使用后缀表示已有类型的新版本
- 编写高质量代码改善C#程序的157个建议[1-3]
- 编写高质量代码改善C#程序的157个建议[IEnumerable<T>和IQueryable<T>、LINQ避免迭代、LINQ替代迭代]
- 编写高质量代码改善C#程序的157个建议——建议9: 习惯重载运算符
- 编写高质量代码改善C#程序的157个建议——建议28:理解延迟求值和主动求值之间的区别
- 编写高质量代码改善C#程序的157个建议[为泛型指定初始值、使用委托声明、使用Lambda替代方法和匿名方法]