protected override IList <IStructuralNode> CreateChildNodes() { var nameEntryCount = _provider.Data.Read <ushort>(_offset + 12); var idEntryCount = _provider.Data.Read <ushort>(_offset + 14); var result = new IStructuralNode[nameEntryCount + idEntryCount + 1]; result[0] = new TemplatedStructuralNode(_provider.Data, this, "Header", PETemplates.ResourceDirectoryHeader, _offset); var offset = _offset + PETemplates.ResourceDirectoryHeader.Width; var index = 1; for (var i = 0; i < nameEntryCount; i++) { result[index++] = new ResourceDirectoryEntryNode(_provider, this, _resourceBase, offset, true, _depth); offset += 8; } for (var i = 0; i < idEntryCount; i++) { result[index++] = new ResourceDirectoryEntryNode(_provider, this, _resourceBase, offset, false, _depth); offset += 8; } return(result); }
public TableStreamNode(PEStructuralNodeProvider provider, IStructuralNode parent, string name, long offset, long length) : base(parent) { _provider = provider; Name = name; ByteRange = new ByteRange(offset, length); }
public ResourceDirectoryNode(PEStructuralNodeProvider provider, IStructuralNode parent, long resourceBase, long offset, int depth) : base(parent) { _provider = provider; _resourceBase = resourceBase; _offset = offset; _depth = depth; }
protected override IList <IStructuralNode> CreateChildNodes() { var result = new IStructuralNode[_provider.PESectionCount]; var startingOffset = _provider.PESectionTableOffset; for (var i = 0; i < result.Length; i++) { result[i] = new PESection(this, _provider, startingOffset); startingOffset += Constants.Section_Length; } return(result); }
public TemplatedStructuralNode(IDataSource data, IStructuralNode parent, string name, IStructuralNodeTemplate template, long offset) : base(parent) { if (data == null) { throw new ArgumentNullException(nameof(data)); } if (template == null) { throw new ArgumentNullException(nameof(template)); } _data = data; Name = name; _template = template; _offset = offset; }
public StreamHeaderListNode(PEStructuralNodeProvider provider, IStructuralNode parent) : base(parent) { _provider = provider; }
public PESectionList(PEStructuralNodeProvider provider, IStructuralNode parent) : base(parent) { _provider = provider; }
public NotificationNode(IDataSource data, IStructuralNode parent, IReadOnlyList <Notification> notifications) : base(parent) { _data = data; _notifications = notifications; }
protected LazyStructuralNode(IStructuralNode parent) { Parent = parent; }
public PESection(IStructuralNode parent, PEStructuralNodeProvider provider, int offset) : base(parent) { _provider = provider; _tableReccordOffset = offset; }
public MetaDataRootNode(PEStructuralNodeProvider provider, IStructuralNode parent, int length) : base(parent) { _provider = provider; ByteRange = new Range(_provider.MetaDataOffset, length); }