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();
        }
Exemple #2
0
        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 ();

            BinaryReader dataReader = m_img.GetReaderAtVirtualAddress (rde.Data);
            rde.ResourceData = dataReader.ReadBytes ((int) rde.Size);
            dataReader.Close ();

            return rde;
        }
Exemple #3
0
        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();

            BinaryReader dataReader = m_img.GetReaderAtVirtualAddress(rde.Data);

            rde.ResourceData = dataReader.ReadBytes((int)rde.Size);
            dataReader.Close();

            return(rde);
        }
        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);
        }
Exemple #5
0
        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 ();
        }
Exemple #6
0
		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;
		}