void WriteResourceDataEntry(ResourceDataEntry rde) { GotoOffset(rde.Offset); m_writer.Write(0); m_writer.Write((uint)rde.ResourceData.Length); m_writer.Write(rde.Codepage); m_writer.Write(rde.Reserved); m_writer.BaseStream.Position = rde.Data; m_writer.Write(rde.ResourceData); RestoreOffset(); }
ResourceNode ReadDataEntry() { ResourceDataEntry rde = new ResourceDataEntry(GetOffset()); rde.Data = m_reader.ReadUInt32(); rde.Size = m_reader.ReadUInt32(); rde.Codepage = m_reader.ReadUInt32(); rde.Reserved = m_reader.ReadUInt32(); Section sect = m_img.GetSectionAtVirtualAddress(rde.Data); byte [] data = new byte [rde.Size]; Buffer.BlockCopy(sect.Data, (int)(long)(rde.Data - sect.VirtualAddress), data, 0, (int)rde.Size); rde.ResourceData = data; return(rde); }