- 18
- 0
- 约1.51万字
- 约 16页
- 2019-01-03 发布于天津
- 举报
比较类型方法字段等
.NET 模块/汇编读取器/编写库,为 HYPERLINK /0xd4d/de4dot/ de4dot 编写。
dnlib是创建的,因为de4dot需要一个健壮的.NET 程序集库,可以以处理所有。 de4dot使用 Mono.Cecil 但由于 Mono.Cecil 不能处理混淆的程序集,不完全支持混合模式程序集,因此不像 HYPERLINK /wiki/Common_Language_Runtime 程序集那样读取. NET 程序集,因此需要 dnlib 。 这个API很相似,因为它使de4dot移植到dnlib更容易。
对于使用dnlib的其他应用程序,请参见 HYPERLINK /0xd4d/dnSpy dnSpy 和 HYPERLINK /yck1509/ConfuserEx/ ConfuserEx ( 一个. NET 混淆器) 。 它们使用了dnlib的许多更高级的特性。 查看ConfuserEx编写程序代码,该代码在编写程序集过程中被执行。
想要感谢点击页面顶部的星星。
HYPERLINK \l compiling 编译
v3.0需要 VS2017 ( c#7.2 ) 或者更高版本才能生成它。 参见下面的从 2.1到 3.0的重大更改
可以使用老的v2.1分支插件来构建旧版本的版本。 这里分支将不获取任何新更新。
有两个项目文件,一个用于. NET 框架 3.5或者更多的( src/dnlib.csproj ),另一个是 netstandard 2.0 ( src/standard.csproj ) 。
HYPERLINK \l v30-breaking-changes v3.0中断更改
VS2017,C# 7.2需要编译它
它目标. NET 框架 3.5或者更高版本,netstandard 2.0或者更高版本的(.NET 框架 2.0和 3.0不支持
*MetaData* - *MetaData*
IMetaData 接口是一个抽象类 Metadata
_32Bit* - Bit32*
IAssemblyResolver 只有 Resolve 方法。 其他方法仍由默认程序集解析器( AssemblyResolver ) 实现
原始表格行,例如 RawMethodRow
它们是不可变的结构,并且读取它们的方法已经从。 ReadMethodRow - TryReadMethodRow
索引器替换它的Read() 方法
IRawRow 接口已经被删除
Constant 表信息( TableInfo ) 有一个额外的填充字节列
ModuleWriterOptionsBase.Listener 已经过时,请使用新事件 ModuleWriterOptionsBase.WriterEvent 改为改为
当前进程相关的模块编写器事件已经被删除。 使用新事件 ModuleWriterOptionsBase.ProgressUpdated 改为改为
StrongNameKey,PublicKey,PublicKeyToken 是不可变的类
RidList 是一个结构
IBinaryReader,IImageStream 已经被移除并替换为新类
MemoryImageStream - ByteArrayDataReaderFactory
它有两个 static 工厂方法,Create 和 CreateReader
BinaryReaderChunk - DataReaderChunk
要获取读取器,请在 IPEImage 。DataReaderFactory 或者 #Blob 流上调用 CreateReader
读取器是一个名为 DataReader的结构,它不是一次性的。
阅读器有 Slice 方法来获取另一个阅读器( 替换旧的Create 方法
由于读取器是结构,如果在方法返回时应该更新方法的位置,请通过引用传递它。
现在 DataReader.Position 是 uint 而不是 long,因此,long的表达式现在可以是 uint,可能是溢出/下溢
reader.Position + 0xFFFFFFFF
reader.Position + someRandomValue
var pos = reader.Position; -- pos 是一个 uint,而不是 long
DataReader.Position 只接受有效值,如果将它的设置为无效的位置,则会引发( IOException )
FileOffset 是 uint,用于 long
MethodBodyWriterBase 使用 ArrayWriter 而不是 BinaryWriter ( 所有虚方法)
ModuleWriter 和 Nati
原创力文档

文档评论(0)