Beispiel #1
0
		/// <summary>
		/// Constructor
		/// </summary>
		/// <param name="view">Hex view</param>
		/// <param name="effectiveViewportWidth">Viewport width</param>
		/// <param name="effectiveViewportHeight">Viewport height</param>
		public HexViewState(HexView view, double effectiveViewportWidth, double effectiveViewportHeight) {
			if (view == null)
				throw new ArgumentNullException(nameof(view));
			ViewportTop = view.ViewportTop;
			ViewportLeft = view.ViewportLeft;
			ViewportWidth = effectiveViewportWidth;
			ViewportHeight = effectiveViewportHeight;
			Buffer = view.Buffer;
		}
Beispiel #2
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="buffer">Buffer</param>
 /// <param name="position">Position</param>
 public GUIDHeapData32(HexBuffer buffer, HexPosition position)
     : this(new HexBufferSpan(buffer, new HexSpan(position, 4)))
 {
 }
Beispiel #3
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="buffer">Buffer</param>
 /// <param name="position">Position</param>
 public DataDirectoryData(HexBuffer buffer, HexPosition position)
     : this(new HexBufferSpan(buffer, new HexSpan(position, 8)))
 {
 }
Beispiel #4
0
 protected FlagsHexField(HexBuffer buffer, string parentName, string name, HexPosition start, int size)
     : base(buffer, parentName, name, start, size)
 {
     bitFields = new Dictionary <int, HexBitField>();
 }
Beispiel #5
0
 public Int16HexField(HexBuffer buffer, string parentName, string name, HexPosition start, bool useDecimal = false)
     : base(buffer, parentName, name, start, 2)
 {
     data = new Int16VM(buffer.ReadInt16(start), a => UpdateValue(), useDecimal);
 }
Beispiel #6
0
 /// <summary>
 /// Creates a hex view host
 /// </summary>
 /// <param name="buffer">Buffer</param>
 /// <param name="group">Group, eg. <see cref="PredefinedHexViewRoles.HexEditorGroup"/></param>
 /// <param name="subGroup">Sub group, eg. <see cref="PredefinedHexViewRoles.HexEditorGroupDefault"/></param>
 /// <param name="menuGuid">Menu guid or null</param>
 /// <returns></returns>
 public abstract WpfHexViewHost Create(HexBuffer buffer, string group, string subGroup, Guid?menuGuid);
		/// <summary>
		/// Creates a classifier aggregator
		/// </summary>
		/// <param name="buffer">Buffer</param>
		/// <returns></returns>
		public abstract HexClassifier GetClassifier(HexBuffer buffer);
Beispiel #8
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="buffer">Buffer</param>
 /// <param name="position">Position</param>
 public UnixTime32Data(HexBuffer buffer, HexPosition position)
     : this(new HexBufferSpan(buffer, new HexSpan(position, 4)))
 {
 }
		/// <summary>
		/// Creates a hex view host
		/// </summary>
		/// <param name="buffer">Buffer</param>
		/// <param name="group">Group, eg. <see cref="PredefinedHexViewRoles.HexEditorGroup"/></param>
		/// <param name="subGroup">Sub group, eg. <see cref="PredefinedHexViewRoles.HexEditorGroupDefault"/></param>
		/// <param name="menuGuid">Menu guid or null</param>
		/// <returns></returns>
		public abstract WpfHexViewHost Create(HexBuffer buffer, string group, string subGroup, Guid? menuGuid);
		/// <summary>
		/// Creates a new <see cref="WpfHexView"/>
		/// </summary>
		/// <param name="buffer">Buffer</param>
		/// <param name="roles">Roles</param>
		/// <param name="options">Options or null</param>
		/// <returns></returns>
		public abstract WpfHexView Create(HexBuffer buffer, VSTE.ITextViewRoleSet roles, HexViewCreatorOptions options);
		/// <summary>
		/// Creates a new <see cref="WpfHexView"/>
		/// </summary>
		/// <param name="buffer">Buffer</param>
		/// <param name="options">Options or null</param>
		/// <returns></returns>
		public abstract WpfHexView Create(HexBuffer buffer, HexViewCreatorOptions options);
		/// <summary>
		/// Creates a new <see cref="WpfHexView"/>
		/// </summary>
		/// <param name="buffer">Buffer</param>
		/// <param name="roles">Roles</param>
		/// <param name="parentOptions">Parent options</param>
		/// <returns></returns>
		public virtual WpfHexView Create(HexBuffer buffer, VSTE.ITextViewRoleSet roles, VSTE.IEditorOptions parentOptions) => Create(buffer, roles, parentOptions, (HexViewCreatorOptions)null);
		/// <summary>
		/// Creates a new <see cref="WpfHexView"/>
		/// </summary>
		/// <param name="buffer">Buffer</param>
		/// <returns></returns>
		public virtual WpfHexView Create(HexBuffer buffer) => Create(buffer, (HexViewCreatorOptions)null);
Beispiel #14
0
 public override WpfHexView Create(HexBuffer buffer, VSTE.ITextViewRoleSet roles, HexViewCreatorOptions options) =>
 Create(buffer, roles, hexEditorOptionsFactoryService.GlobalOptions, options);
		/// <summary>
		/// Creates a new <see cref="HexBufferLineProvider"/> instance
		/// </summary>
		/// <param name="buffer">Buffer</param>
		/// <param name="options">Options</param>
		/// <returns></returns>
		public abstract HexBufferLineProvider Create(HexBuffer buffer, HexBufferLineProviderOptions options);
Beispiel #16
0
 public WeakDocumentListener(PENode node, HexBuffer buffer)
 {
     nodeWeakRef     = new WeakReference(node);
     buffer.Changed += Buffer_Changed;
 }
Beispiel #17
0
 public HexBufferFileImpl(HexBufferFile parentFile, Lazy <StructureProviderFactory, VSUTIL.IOrderable>[] structureProviderFactories, Lazy <BufferFileHeadersProviderFactory>[] bufferFileHeadersProviderFactories, HexBuffer buffer, HexSpan span, string name, string filename, string[] tags)
     : base(buffer, span, name, filename, tags)
 {
     if (parentFile?.Span.Contains(span) == false)
     {
         throw new ArgumentOutOfRangeException(nameof(span));
     }
     ParentFile = parentFile;
     this.structureProviderFactories         = structureProviderFactories ?? throw new ArgumentNullException(nameof(structureProviderFactories));
     this.bufferFileHeadersProviderFactories = bufferFileHeadersProviderFactories ?? throw new ArgumentNullException(nameof(bufferFileHeadersProviderFactories));
     files = new SpanDataCollection <HexBufferFileImpl>();
 }
Beispiel #18
0
        public static MetaDataTableVM Create(HexBuffer buffer, TablesStreamVM tablesStream, MDTable mdTable, HexSpan stringsHeapSpan, HexSpan guidHeapSpan)
        {
            switch (mdTable.Table)
            {
            case Table.Module:                                      return(new ModuleMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.TypeRef:                                     return(new TypeRefMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.TypeDef:                                     return(new TypeDefMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.FieldPtr:                            return(new FieldPtrMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.Field:                                       return(new FieldMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.MethodPtr:                           return(new MethodPtrMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.Method:                                      return(new MethodMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.ParamPtr:                            return(new ParamPtrMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.Param:                                       return(new ParamMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.InterfaceImpl:                       return(new InterfaceImplMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.MemberRef:                           return(new MemberRefMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.Constant:                            return(new ConstantMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.CustomAttribute:                     return(new CustomAttributeMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.FieldMarshal:                        return(new FieldMarshalMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.DeclSecurity:                        return(new DeclSecurityMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.ClassLayout:                         return(new ClassLayoutMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.FieldLayout:                         return(new FieldLayoutMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.StandAloneSig:                       return(new StandAloneSigMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.EventMap:                            return(new EventMapMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.EventPtr:                            return(new EventPtrMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.Event:                                       return(new EventMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.PropertyMap:                         return(new PropertyMapMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.PropertyPtr:                         return(new PropertyPtrMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.Property:                            return(new PropertyMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.MethodSemantics:                     return(new MethodSemanticsMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.MethodImpl:                          return(new MethodImplMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.ModuleRef:                           return(new ModuleRefMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.TypeSpec:                            return(new TypeSpecMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.ImplMap:                                     return(new ImplMapMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.FieldRVA:                            return(new FieldRVAMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.ENCLog:                                      return(new ENCLogMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.ENCMap:                                      return(new ENCMapMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.Assembly:                            return(new AssemblyMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.AssemblyProcessor:           return(new AssemblyProcessorMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.AssemblyOS:                          return(new AssemblyOSMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.AssemblyRef:                         return(new AssemblyRefMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.AssemblyRefProcessor:        return(new AssemblyRefProcessorMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.AssemblyRefOS:                       return(new AssemblyRefOSMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.File:                                        return(new FileMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.ExportedType:                        return(new ExportedTypeMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.ManifestResource:            return(new ManifestResourceMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.NestedClass:                         return(new NestedClassMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.GenericParam:                        return(mdTable.Columns.Count == 5 ? (MetaDataTableVM) new GenericParamMetaDataTableV11VM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan) : new GenericParamMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.MethodSpec:                          return(new MethodSpecMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.GenericParamConstraint:      return(new GenericParamConstraintMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.Document:                            return(new DocumentMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.MethodDebugInformation:      return(new MethodDebugInformationMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.LocalScope:                          return(new LocalScopeMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.LocalVariable:                       return(new LocalVariableMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.LocalConstant:                       return(new LocalConstantMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.ImportScope:                         return(new ImportScopeMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.StateMachineMethod:          return(new StateMachineMethodMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            case Table.CustomDebugInformation:      return(new CustomDebugInformationMetaDataTableVM(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan));

            default:                                                        throw new InvalidOperationException();
            }
        }
Beispiel #19
0
 /// <summary>
 /// Gets the process id that is used by the underlying buffer stream. This can be null
 /// if there are no debugged processes.
 /// </summary>
 /// <param name="buffer">Buffer, created by <see cref="CreateBuffer"/></param>
 /// <returns></returns>
 public abstract int?GetProcessId(HexBuffer buffer);
Beispiel #20
0
 /// <summary>
 /// Creates a tagger or returns null
 /// </summary>
 /// <typeparam name="T">Tag type</typeparam>
 /// <param name="hexView">Hex view</param>
 /// <param name="buffer">Buffer</param>
 /// <returns></returns>
 public abstract IHexTagger <T> CreateTagger <T>(HexView hexView, HexBuffer buffer) where T : HexTag;
Beispiel #21
0
 public BufferState(HexBuffer buffer, DebuggerHexBufferStream debuggerHexBufferStream)
 {
     Buffer = buffer ?? throw new ArgumentNullException(nameof(buffer));
     DebuggerHexBufferStream = debuggerHexBufferStream ?? throw new ArgumentNullException(nameof(debuggerHexBufferStream));
 }
Beispiel #22
0
 public ByteHexField(HexBuffer buffer, string parentName, string name, HexPosition start, bool useDecimal = false)
     : base(buffer, parentName, name, start, 1)
 {
     data = new ByteVM(buffer.ReadByte(start), a => UpdateValue(), useDecimal);
 }
Beispiel #23
0
 // UI thread
 public override bool IsValidBuffer(HexBuffer buffer)
 {
     uiDispatcher.VerifyAccess();
     return(TryGetBufferState_UI(buffer) != null);
 }
Beispiel #24
0
 public UInt32HexField(HexBuffer buffer, string parentName, string name, HexPosition start, bool useDecimal = false)
     : base(buffer, parentName, name, start, 4)
 {
     data = new UInt32VM(buffer.ReadUInt32(start), a => UpdateValue(), useDecimal);
 }
Beispiel #25
0
 /// <summary>
 /// Checks whether <paramref name="buffer"/> is a buffer created by this class
 /// </summary>
 /// <param name="buffer">Buffer</param>
 /// <returns></returns>
 public abstract bool IsValidBuffer(HexBuffer buffer);
Beispiel #26
0
 public UInt32FlagsHexField(HexBuffer buffer, string parentName, string name, HexPosition start)
     : base(buffer, parentName, name, start, 4)
 {
     data = new UInt32VM(buffer.ReadUInt32(start), a => UpdateValue(), false);
 }
Beispiel #27
0
 /// <summary>
 /// Updates <paramref name="buffer"/> so it uses another process stream
 /// </summary>
 /// <param name="buffer">Buffer, created by <see cref="CreateBuffer"/></param>
 /// <param name="pid">Process id of process to use</param>
 public abstract void SetProcessStream(HexBuffer buffer, int pid);
Beispiel #28
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="buffer">Buffer</param>
 /// <param name="position">Position</param>
 public BlobHeapData16(HexBuffer buffer, HexPosition position)
     : this(new HexBufferSpan(buffer, new HexSpan(position, 2)))
 {
 }
Beispiel #29
0
 protected SearchStateBase(HexBuffer buffer, CancellationToken cancellationToken)
 {
     Buffer            = buffer;
     Data              = Cache.GetBuffer();
     CancellationToken = cancellationToken;
 }
Beispiel #30
0
 public override WpfHexView Create(HexBuffer buffer, HexViewCreatorOptions options) =>
 Create(buffer, DefaultRoles, hexEditorOptionsFactoryService.GlobalOptions, options);
Beispiel #31
0
 protected HexClassifierAggregator(HexTagAggregator <HexClassificationTag> hexTagAggregator, VSTC.IClassificationTypeRegistryService classificationTypeRegistryService, HexBuffer buffer)
 {
     this.classificationTypeRegistryService = classificationTypeRegistryService ?? throw new ArgumentNullException(nameof(classificationTypeRegistryService));
     this.hexTagAggregator         = hexTagAggregator ?? throw new ArgumentNullException(nameof(hexTagAggregator));
     this.buffer                   = buffer ?? throw new ArgumentNullException(nameof(buffer));
     hexTagAggregator.TagsChanged += HexTagAggregator_TagsChanged;
 }
Beispiel #32
0
 protected HexField()
 {
     IsVisible = false;
     Name      = string.Empty;
     buffer    = null !;        // Never accessed since the field is not visible
 }
Beispiel #33
0
 /// <summary>
 /// Gets or creates a <see cref="HexBufferFileService"/>
 /// </summary>
 /// <param name="buffer">Buffer</param>
 /// <returns></returns>
 public abstract HexBufferFileService Create(HexBuffer buffer);
Beispiel #34
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="buffer">Buffer</param>
 /// <param name="position">Position</param>
 public FileOffsetData(HexBuffer buffer, HexPosition position)
     : base(buffer, position)
 {
 }
Beispiel #35
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="buffer">Buffer</param>
 /// <param name="position">Position</param>
 public GuidData(HexBuffer buffer, HexPosition position)
     : this(new HexBufferSpan(buffer, new HexSpan(position, 16)))
 {
 }
Beispiel #36
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="buffer">Buffer</param>
 /// <param name="position">Position</param>
 public RvaData(HexBuffer buffer, HexPosition position)
     : base(buffer, position)
 {
 }
Beispiel #37
0
        protected ImageOptionalHeaderVM(HexBuffer buffer, PeOptionalHeaderData optionalHeader)
            : base(optionalHeader.Span)
        {
            MagicVM = new UInt16HexField(optionalHeader.Magic);
            MajorLinkerVersionVM      = new ByteHexField(optionalHeader.MajorLinkerVersion, true);
            MinorLinkerVersionVM      = new ByteHexField(optionalHeader.MinorLinkerVersion, true);
            SizeOfCodeVM              = new UInt32HexField(optionalHeader.SizeOfCode);
            SizeOfInitializedDataVM   = new UInt32HexField(optionalHeader.SizeOfInitializedData);
            SizeOfUninitializedDataVM = new UInt32HexField(optionalHeader.SizeOfUninitializedData);
            AddressOfEntryPointVM     = new UInt32HexField(optionalHeader.AddressOfEntryPoint);
            BaseOfCodeVM              = new UInt32HexField(optionalHeader.BaseOfCode);

            SectionAlignmentVM            = new UInt32HexField(optionalHeader.SectionAlignment);
            FileAlignmentVM               = new UInt32HexField(optionalHeader.FileAlignment);
            MajorOperatingSystemVersionVM = new UInt16HexField(optionalHeader.MajorOperatingSystemVersion, true);
            MinorOperatingSystemVersionVM = new UInt16HexField(optionalHeader.MinorOperatingSystemVersion, true);
            MajorImageVersionVM           = new UInt16HexField(optionalHeader.MajorImageVersion, true);
            MinorImageVersionVM           = new UInt16HexField(optionalHeader.MinorImageVersion, true);
            MajorSubsystemVersionVM       = new UInt16HexField(optionalHeader.MajorSubsystemVersion, true);
            MinorSubsystemVersionVM       = new UInt16HexField(optionalHeader.MinorSubsystemVersion, true);
            Win32VersionValueVM           = new UInt32HexField(optionalHeader.Win32VersionValue, true);
            SizeOfImageVM   = new UInt32HexField(optionalHeader.SizeOfImage);
            SizeOfHeadersVM = new UInt32HexField(optionalHeader.SizeOfHeaders);
            CheckSumVM      = new UInt32HexField(optionalHeader.CheckSum);
            SubsystemVM     = new UInt16FlagsHexField(optionalHeader.Subsystem);
            SubsystemVM.Add(new IntegerHexBitField("Subsystem", 0, 16, SubsystemInfos));
            DllCharacteristicsVM = new UInt16FlagsHexField(optionalHeader.DllCharacteristics);
            DllCharacteristicsVM.Add(new BooleanHexBitField("Reserved1", 0));
            DllCharacteristicsVM.Add(new BooleanHexBitField("Reserved2", 1));
            DllCharacteristicsVM.Add(new BooleanHexBitField("Reserved3", 2));
            DllCharacteristicsVM.Add(new BooleanHexBitField("Reserved4", 3));
            DllCharacteristicsVM.Add(new BooleanHexBitField("Reserved5", 4));
            DllCharacteristicsVM.Add(new BooleanHexBitField("High Entropy VA", 5));
            DllCharacteristicsVM.Add(new BooleanHexBitField("Dynamic Base", 6));
            DllCharacteristicsVM.Add(new BooleanHexBitField("Force Integrity", 7));
            DllCharacteristicsVM.Add(new BooleanHexBitField("NX Compat", 8));
            DllCharacteristicsVM.Add(new BooleanHexBitField("No Isolation", 9));
            DllCharacteristicsVM.Add(new BooleanHexBitField("No SEH", 10));
            DllCharacteristicsVM.Add(new BooleanHexBitField("No Bind", 11));
            DllCharacteristicsVM.Add(new BooleanHexBitField("AppContainer", 12));
            DllCharacteristicsVM.Add(new BooleanHexBitField("WDM Driver", 13));
            DllCharacteristicsVM.Add(new BooleanHexBitField("Guard CF", 14));
            DllCharacteristicsVM.Add(new BooleanHexBitField("Terminal Server Aware", 15));
            LoaderFlagsVM         = new UInt32HexField(optionalHeader.LoaderFlags);
            NumberOfRvaAndSizesVM = new UInt32HexField(optionalHeader.NumberOfRvaAndSizes);

            DataDir0VM  = Create(optionalHeader, 0, "Export");
            DataDir1VM  = Create(optionalHeader, 1, "Import");
            DataDir2VM  = Create(optionalHeader, 2, "Resource");
            DataDir3VM  = Create(optionalHeader, 3, "Exception");
            DataDir4VM  = Create(optionalHeader, 4, "Security");
            DataDir5VM  = Create(optionalHeader, 5, "Base Reloc");
            DataDir6VM  = Create(optionalHeader, 6, "Debug");
            DataDir7VM  = Create(optionalHeader, 7, "Architecture");
            DataDir8VM  = Create(optionalHeader, 8, "Global Ptr");
            DataDir9VM  = Create(optionalHeader, 9, "TLS");
            DataDir10VM = Create(optionalHeader, 10, "Load Config");
            DataDir11VM = Create(optionalHeader, 11, "Bound Import");
            DataDir12VM = Create(optionalHeader, 12, "IAT");
            DataDir13VM = Create(optionalHeader, 13, "Delay Import");
            DataDir14VM = Create(optionalHeader, 14, ".NET");
            DataDir15VM = Create(optionalHeader, 15, "Reserved15");
        }
Beispiel #38
0
 public MetaDataTable6VM(HexBuffer buffer, TablesStreamVM tablesStream, MDTable mdTable, HexSpan stringsHeapSpan, HexSpan guidHeapSpan)
     : base(buffer, tablesStream, mdTable, stringsHeapSpan, guidHeapSpan)
 {
 }
		/// <summary>
		/// Creates a new <see cref="HexBufferLineFormatter"/> instance
		/// </summary>
		/// <param name="buffer">Buffer</param>
		/// <param name="options">Options</param>
		/// <returns></returns>
		public abstract HexBufferLineFormatter Create(HexBuffer buffer, HexBufferLineFormatterOptions options);