在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → C#读取和写入.NET程序集和模块(dnlib)

C#读取和写入.NET程序集和模块(dnlib)

一般编程问题

下载此实例
  • 开发语言:Others
  • 实例大小:0.70M
  • 下载次数:2
  • 浏览次数:11
  • 发布时间:2024-05-02
  • 实例类别:一般编程问题
  • 发 布 人:chenxiaolan
  • 文件格式:.zip
  • 所需积分:2
 相关标签:

实例介绍

【实例简介】

dnlib是一个.NET模块/程序集的读取和写入库。

首先,重要的命名空间是dnlib.DotNet和dnlib.DotNet.Emit。如果您打算读取/写入方法体,则只需要dnlib.DotNet.Emit。以下所有示例都假定您在每个源文件的顶部有适当的using语句:

using dnlib.DotNet;
using dnlib.DotNet.Emit;

当您打开.NET模块时,会创建ModuleDefMD类。它有几个Load()方法将创建一个ModuleDefMD实例。如果不是.NET模块/程序集,则会抛出BadImageFormatException。

从文件中读取.NET模块:

// 创建一个默认的程序集解析器和类型解析器并将其传递给Load()。
// 如果它是一个.NET Core程序集,则需要禁用GAC加载并添加.NET Core参考程序集搜索路径。
ModuleContext modCtx = ModuleDef.CreateModuleContext();
ModuleDefMD module = ModuleDefMD.Load(@"C:\path\to\file.exe", modCtx);

从字节数组中读取.NET模块:

byte[] data = System.IO.File.ReadAllBytes(@"C:\path\of\file.dll");
【实例截图】
【核心代码】
 文件清单
└── dnlib-0b2dc951e3a74cd31e177fae62cc56dab676583e
    ├── build.ps1
    ├── dnlib.sln
    ├── dnlib.snk
    ├── Examples
    │   ├── Example1.cs
    │   ├── Example2.cs
    │   ├── Example3.cs
    │   ├── Example4.cs
    │   ├── Example5.cs
    │   ├── Example6.cs
    │   ├── Example7.cs
    │   ├── Examples.csproj
    │   └── Program.cs
    ├── LICENSE.txt
    ├── README.md
    └── src
        ├── DefaultDllImportSearchPathsAttribute.cs
        ├── dnlib.csproj
        ├── DotNet
        │   ├── AllTypesHelper.cs
        │   ├── AssemblyAttributes.cs
        │   ├── AssemblyDef.cs
        │   ├── AssemblyHashAlgorithm.cs
        │   ├── AssemblyHash.cs
        │   ├── AssemblyNameComparer.cs
        │   ├── AssemblyNameInfo.cs
        │   ├── AssemblyRef.cs
        │   ├── AssemblyResolver.cs
        │   ├── CallingConvention.cs
        │   ├── CallingConventionSig.cs
        │   ├── ClassLayout.cs
        │   ├── Constant.cs
        │   ├── CorLibTypes.cs
        │   ├── CpuArch.cs
        │   ├── CustomAttributeCollection.cs
        │   ├── CustomAttribute.cs
        │   ├── CustomAttributeReader.cs
        │   ├── DeclSecurity.cs
        │   ├── DeclSecurityReader.cs
        │   ├── ElementType.cs
        │   ├── Emit
        │   │   ├── Code.cs
        │   │   ├── DynamicMethodBodyReader.cs
        │   │   ├── ExceptionHandler.cs
        │   │   ├── ExceptionHandlerType.cs
        │   │   ├── Extensions.cs
        │   │   ├── FlowControl.cs
        │   │   ├── Instruction.cs
        │   │   ├── InstructionPrinter.cs
        │   │   ├── InvalidMethodException.cs
        │   │   ├── LocalList.cs
        │   │   ├── MethodBody.cs
        │   │   ├── MethodBodyReaderBase.cs
        │   │   ├── MethodBodyReader.cs
        │   │   ├── MethodTableToTypeConverter.cs
        │   │   ├── MethodUtils.cs
        │   │   ├── OpCode.cs
        │   │   ├── OpCodes.cs
        │   │   ├── OpCodeType.cs
        │   │   ├── OperandType.cs
        │   │   └── StackBehaviour.cs
        │   ├── EventAttributes.cs
        │   ├── EventDef.cs
        │   ├── ExportedType.cs
        │   ├── Extensions.cs
        │   ├── FieldAttributes.cs
        │   ├── FieldDef.cs
        │   ├── FileAttributes.cs
        │   ├── FileDef.cs
        │   ├── FrameworkRedirect.cs
        │   ├── FullNameFactory.cs
        │   ├── GenericArguments.cs
        │   ├── GenericParamAttributes.cs
        │   ├── GenericParamConstraint.cs
        │   ├── GenericParamContext.cs
        │   ├── GenericParam.cs
        │   ├── IAssemblyResolver.cs
        │   ├── ICodedToken.cs
        │   ├── ICorLibTypes.cs
        │   ├── ICustomAttribute.cs
        │   ├── IDecrypters.cs
        │   ├── ILogger.cs
        │   ├── ImplMap.cs
        │   ├── Importer.cs
        │   ├── InterfaceImpl.cs
        │   ├── IResolver.cs
        │   ├── ITokenResolver.cs
        │   ├── IType.cs
        │   ├── ITypeDefFinder.cs
        │   ├── IVariable.cs
        │   ├── ManifestResourceAttributes.cs
        │   ├── ManifestResource.cs
        │   ├── MarshalBlobReader.cs
        │   ├── MarshalType.cs
        │   ├── MD
        │   │   ├── BlobStream.cs
        │   │   ├── CodedToken.cs
        │   │   ├── ColumnInfo.cs
        │   │   ├── ColumnSize.cs
        │   │   ├── ComImageFlags.cs
        │   │   ├── CompressedMetadata.cs
        │   │   ├── CustomDotNetStream.cs
        │   │   ├── DotNetStream.cs
        │   │   ├── DotNetTableSizes.cs
        │   │   ├── ENCMetadata.cs
        │   │   ├── GuidStream.cs
        │   │   ├── HeapType.cs
        │   │   ├── ImageCor20Header.cs
        │   │   ├── IRowReaders.cs
        │   │   ├── MDHeaderRuntimeVersion.cs
        │   │   ├── MDStreamFlags.cs
        │   │   ├── MDTable.cs
        │   │   ├── MetadataBase.cs
        │   │   ├── Metadata.cs
        │   │   ├── MetadataFactory.cs
        │   │   ├── MetadataHeader.cs
        │   │   ├── PdbStream.cs
        │   │   ├── RawRowEqualityComparer.cs
        │   │   ├── RawTableRows.cs
        │   │   ├── RidList.cs
        │   │   ├── StorageFlags.cs
        │   │   ├── StreamHeader.cs
        │   │   ├── StringsStream.cs
        │   │   ├── Table.cs
        │   │   ├── TableInfo.cs
        │   │   ├── TablesStream.cs
        │   │   ├── TablesStream_Read.cs
        │   │   └── USStream.cs
        │   ├── MDToken.cs
        │   ├── MemberFinder.cs
        │   ├── MemberMDInitializer.cs
        │   ├── MemberRef.cs
        │   ├── MethodAttributes.cs
        │   ├── MethodDef.cs
        │   ├── MethodExportInfo.cs
        │   ├── MethodExportInfoProvider.cs
        │   ├── MethodImplAttributes.cs
        │   ├── MethodOverride.cs
        │   ├── MethodSemanticsAttributes.cs
        │   ├── MethodSpec.cs
        │   ├── ModuleContext.cs
        │   ├── ModuleCreationOptions.cs
        │   ├── ModuleDef.cs
        │   ├── ModuleDefMD.cs
        │   ├── ModuleKind.cs
        │   ├── ModuleLoader.cs
        │   ├── ModuleRef.cs
        │   ├── NativeType.cs
        │   ├── NullResolver.cs
        │   ├── ParamAttributes.cs
        │   ├── ParamDef.cs
        │   ├── ParameterList.cs
        │   ├── Pdb
        │   │   ├── CustomDebugInfoGuids.cs
        │   │   ├── DataReaderFactoryUtils.cs
        │   │   ├── Dss
        │   │   │   ├── ComInterfaces.cs
        │   │   │   ├── DataReaderIStream.cs
        │   │   │   ├── MDEmitter.cs
        │   │   │   ├── MetaDataImport.cs
        │   │   │   ├── ReaderMetaDataImport.cs
        │   │   │   ├── StreamIStream.cs
        │   │   │   ├── SymbolDocumentImpl.cs
        │   │   │   ├── SymbolDocumentWriter.cs
        │   │   │   ├── SymbolMethodImpl.cs
        │   │   │   ├── SymbolNamespaceImpl.cs
        │   │   │   ├── SymbolReaderImpl.cs
        │   │   │   ├── SymbolReaderWriterFactory.cs
        │   │   │   ├── SymbolScopeImpl.cs
        │   │   │   ├── SymbolVariableImpl.cs
        │   │   │   └── SymbolWriterImpl.cs
        │   │   ├── IMAGE_DEBUG_DIRECTORY.cs
        │   │   ├── Managed
        │   │   │   ├── DbiDocument.cs
        │   │   │   ├── DbiFunction.cs
        │   │   │   ├── DbiModule.cs
        │   │   │   ├── DbiNamespace.cs
        │   │   │   ├── DbiScope.cs
        │   │   │   ├── DbiVariable.cs
        │   │   │   ├── ModuleStreamType.cs
        │   │   │   ├── MsfStream.cs
        │   │   │   ├── NumericLeaf.cs
        │   │   │   ├── NumericReader.cs
        │   │   │   ├── PdbAddress.cs
        │   │   │   ├── PdbException.cs
        │   │   │   ├── PdbReader.cs
        │   │   │   ├── SymbolReaderFactory.cs
        │   │   │   └── SymbolType.cs
        │   │   ├── PdbConstant.cs
        │   │   ├── PdbCustomDebugInfo.cs
        │   │   ├── PdbDocumentConstants.cs
        │   │   ├── PdbDocument.cs
        │   │   ├── PdbFileKind.cs
        │   │   ├── PdbImport.cs
        │   │   ├── PdbLocalAttributes.cs
        │   │   ├── PdbLocal.cs
        │   │   ├── PdbMethod.cs
        │   │   ├── PdbReaderContext.cs
        │   │   ├── PdbReaderOptions.cs
        │   │   ├── PdbScope.cs
        │   │   ├── PdbState.cs
        │   │   ├── PdbUtils.cs
        │   │   ├── Portable
        │   │   │   ├── DocumentNameReader.cs
        │   │   │   ├── ImportDefinitionKindUtils.cs
        │   │   │   ├── ImportScopeBlobReader.cs
        │   │   │   ├── ImportScopeBlobWriter.cs
        │   │   │   ├── ListCache.cs
        │   │   │   ├── LocalConstantSigBlobReader.cs
        │   │   │   ├── LocalConstantSigBlobWriter.cs
        │   │   │   ├── PortablePdbCustomDebugInfoReader.cs
        │   │   │   ├── PortablePdbCustomDebugInfoWriter.cs
        │   │   │   ├── PortablePdbReader.cs
        │   │   │   ├── SequencePointConstants.cs
        │   │   │   ├── SymbolDocumentImpl.cs
        │   │   │   ├── SymbolMethodImpl.cs
        │   │   │   ├── SymbolReaderFactory.cs
        │   │   │   ├── SymbolScopeImpl.cs
        │   │   │   └── SymbolVariableImpl.cs
        │   │   ├── SequencePoint.cs
        │   │   ├── SymbolReaderFactory.cs
        │   │   ├── Symbols
        │   │   │   ├── SymbolAsyncStepInfo.cs
        │   │   │   ├── SymbolDocument.cs
        │   │   │   ├── SymbolMethod.cs
        │   │   │   ├── SymbolNamespace.cs
        │   │   │   ├── SymbolReader.cs
        │   │   │   ├── SymbolScope.cs
        │   │   │   ├── SymbolSequencePoint.cs
        │   │   │   └── SymbolVariable.cs
        │   │   └── WindowsPdb
        │   │       ├── CorSymVarFlag.cs
        │   │       ├── CustomDebugInfoConstants.cs
        │   │       ├── PdbCustomDebugInfoReader.cs
        │   │       ├── PdbCustomDebugInfoWriter.cs
        │   │       ├── PseudoCustomDebugInfoFactory.cs
        │   │       ├── SymbolWriter.cs
        │   │       └── WindowsPdbWriter.cs
        │   ├── PInvokeAttributes.cs
        │   ├── PropertyAttributes.cs
        │   ├── PropertyDef.cs
        │   ├── PublicKeyBase.cs
        │   ├── PublicKey.cs
        │   ├── PublicKeyToken.cs
        │   ├── RecursionCounter.cs
        │   ├── ReflectionExtensions.cs
        │   ├── ResolveException.cs
        │   ├── Resolver.cs
        │   ├── ResourceCollection.cs
        │   ├── Resource.cs
        │   ├── Resources
        │   │   ├── BuiltInResourceData.cs
        │   │   ├── IResourceData.cs
        │   │   ├── ResourceBinaryWriter.cs
        │   │   ├── ResourceDataFactory.cs
        │   │   ├── ResourceElement.cs
        │   │   ├── ResourceElementSet.cs
        │   │   ├── ResourceReader.cs
        │   │   ├── ResourceReaderType.cs
        │   │   ├── ResourceTypeCode.cs
        │   │   ├── ResourceWriter.cs
        │   │   ├── UserResourceData.cs
        │   │   └── UserResourceType.cs
        │   ├── SecurityAction.cs
        │   ├── SecurityAttribute.cs
        │   ├── SerializationType.cs
        │   ├── SigComparer.cs
        │   ├── SignatureReader.cs
        │   ├── StandAloneSig.cs
        │   ├── StrongNameKey.cs
        │   ├── StrongNameSigner.cs
        │   ├── TIAHelper.cs
        │   ├── TypeAttributes.cs
        │   ├── TypeDef.cs
        │   ├── TypeDefFinder.cs
        │   ├── TypeHelper.cs
        │   ├── TypeNameParser.cs
        │   ├── TypeRef.cs
        │   ├── TypeSig.cs
        │   ├── TypeSpec.cs
        │   ├── UTF8String.cs
        │   ├── Utils.cs
        │   ├── VariantType.cs
        │   ├── VTableFixups.cs
        │   ├── WinMDHelpers.cs
        │   ├── WinMDStatus.cs
        │   └── Writer
        │       ├── ArrayWriter.cs
        │       ├── BlobHeap.cs
        │       ├── ByteArrayChunk.cs
        │       ├── ChecksumAlgorithm.cs
        │       ├── ChunkListBase.cs
        │       ├── ChunkList.cs
        │       ├── CustomAttributeWriter.cs
        │       ├── DataReaderChunk.cs
        │       ├── DataReaderHeap.cs
        │       ├── DataWriter.cs
        │       ├── DebugDirectory.cs
        │       ├── DeclSecurityWriter.cs
        │       ├── Extensions.cs
        │       ├── GuidHeap.cs
        │       ├── Hasher.cs
        │       ├── HeapBase.cs
        │       ├── IChunk.cs
        │       ├── IHeap.cs
        │       ├── ImageCor20Header.cs
        │       ├── ImportAddressTable.cs
        │       ├── ImportDirectory.cs
        │       ├── IOffsetHeap.cs
        │       ├── IWriterError.cs
        │       ├── ManagedExportsWriter.cs
        │       ├── MarshalBlobWriter.cs
        │       ├── MaxStackCalculator.cs
        │       ├── MDTable.cs
        │       ├── MDTableWriter.cs
        │       ├── Metadata.cs
        │       ├── MetadataErrorContext.cs
        │       ├── MetadataEvent.cs
        │       ├── MetadataHeader.cs
        │       ├── MethodBodyChunks.cs
        │       ├── MethodBody.cs
        │       ├── MethodBodyWriterBase.cs
        │       ├── MethodBodyWriter.cs
        │       ├── ModuleWriterBase.cs
        │       ├── ModuleWriter.cs
        │       ├── ModuleWriterEvent.cs
        │       ├── ModuleWriterException.cs
        │       ├── NativeModuleWriter.cs
        │       ├── NetResources.cs
        │       ├── NormalMetadata.cs
        │       ├── PdbHeap.cs
        │       ├── PEHeaders.cs
        │       ├── PESection.cs
        │       ├── PortablePdbConstants.cs
        │       ├── PreserveTokensMetadata.cs
        │       ├── RelocDirectory.cs
        │       ├── RoslynContentIdProvider.cs
        │       ├── SectionSizes.cs
        │       ├── SerializerMethodContext.cs
        │       ├── SignatureWriter.cs
        │       ├── StartupStub.cs
        │       ├── StringsHeap.cs
        │       ├── StrongNameSignature.cs
        │       ├── TablesHeap.cs
        │       ├── UniqueChunkList.cs
        │       ├── USHeap.cs
        │       ├── Win32ResourcesChunk.cs
        │       └── WriterUtils.cs
        ├── HandleProcessCorruptedStateExceptionsAttribute.cs
        ├── IO
        │   ├── AlignedByteArrayDataStream.cs
        │   ├── AlignedNativeMemoryDataStream.cs
        │   ├── ByteArrayDataReaderFactory.cs
        │   ├── DataReader.cs
        │   ├── DataReaderFactory.cs
        │   ├── DataReaderFactoryFactory.cs
        │   ├── DataReaderStream.cs
        │   ├── DataStream.cs
        │   ├── DataStreamFactory.cs
        │   ├── EmptyDataStream.cs
        │   ├── FileOffset.cs
        │   ├── FileSection.cs
        │   ├── IFileSection.cs
        │   ├── IOExtensions.cs
        │   ├── MemoryMappedDataReaderFactory.cs
        │   ├── NativeMemoryDataReaderFactory.cs
        │   ├── UnalignedByteArrayDataStream.cs
        │   └── UnalignedNativeMemoryDataStream.cs
        ├── PE
        │   ├── Characteristics.cs
        │   ├── DllCharacteristics.cs
        │   ├── IImageOptionalHeader.cs
        │   ├── ImageDataDirectory.cs
        │   ├── ImageDebugDirectory.cs
        │   ├── ImageDebugType.cs
        │   ├── ImageDosHeader.cs
        │   ├── ImageFileHeader.cs
        │   ├── ImageNTHeaders.cs
        │   ├── ImageOptionalHeader32.cs
        │   ├── ImageOptionalHeader64.cs
        │   ├── ImageSectionHeader.cs
        │   ├── IPEImage.cs
        │   ├── IPEType.cs
        │   ├── Machine.cs
        │   ├── PEExtensions.cs
        │   ├── PEImage.cs
        │   ├── PEInfo.cs
        │   ├── ProcessorArchUtils.cs
        │   ├── RVA.cs
        │   └── Subsystem.cs
        ├── Settings.cs
        ├── Threading
        │   ├── ICancellationToken.cs
        │   └── Lock.cs
        ├── Utils
        │   ├── ArrayEmpty.cs
        │   ├── CollectionDebugView.cs
        │   ├── ILazyList.cs
        │   ├── LazyList.cs
        │   ├── SimpleLazyList.cs
        │   └── UserValue.cs
        └── W32Resources
            ├── ResourceData.cs
            ├── ResourceDirectory.cs
            ├── ResourceDirectoryEntry.cs
            ├── ResourceName.cs
            └── Win32Resources.cs

19 directories, 389 files

标签:

实例下载地址

C#读取和写入.NET程序集和模块(dnlib)

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警