楔子
.Net 7 跟 .Net 6其实是一个差距很大的版本,微软温水煮青蛙的模式进行更新。当你发现的时候,已经很难跟上了。
如果要深入学习,这里需要一些学习.Net 7的一些工具。本篇看下。
For Example
.Net 7最大的一个变化就是把底层AOT编译器ILC重写了,独立项目合并进了Runtime里面去了。跟原来的CLR调用的RyuJIT编译有极大的不同,托管与非托管混搞,要研究这些,必须借助外部工具。
工具
1.托管类型工具
一:DnspyEx,由于Dnspy这个项目停止了。DnspyEx接班前者,非官方的延续项目。这个个人推荐为托管分析工具第一首选。
二:ILSpy,反编译工具
三:ILDASM,微软官方查看MSIL代码的工具
四:JetBrains公司的DotPeek
2.Native型工具
一:UltraEdit,这个工具国内大部分你所看到的破解软件,绿色版本软件,注册机都是用它来研究的。
二:Die,Win PE查看器。
三:IDA64 Proc,汇编代码分析器
四:WinHex,二进制分析器
五:CFF Explorer,PE分析工具
六:X64dbg,动态分析工具
七:Windbg,微软官方的调试工具
八:Cheat Engine,这个是游戏里面的寻找内存的工具,可以作为Native程序内存寻找工具,很方便。
前者是主要应对.Net 7上面传统的.Net技术类型。比如从CLR分支编译的.Net项目
后者则是应对Native Code技术类型,比如ILC,因为是二进制文件,所以跟C/C++比较相似型的研究工具。
解构
.Net 7之后其实越来越复杂,当然如果只是做托管代码层面的东西。基本上还是比较容易的,而且升级项目也比较简单。
高级进阶,则需要更深入的了解。
结尾
作者:江湖评谈