Exemplo n.º 1
0
        private static IList <uint> ReadFunctionAddresses(ImageReader reader, CoffDirectoryTableExportHeader directory)
        {
            var result = new List <uint>();

            reader.ToRva(directory.AddressOfFunctions);

            for (int i = 0; i < directory.NumberOfNames; i++)
            {
                result.Add(reader.ReadUInt32());
            }

            return(result);
        }
Exemplo n.º 2
0
        private static IList <ushort> ReadFunctionOrdinals(ImageReader reader, CoffDirectoryTableExportHeader directory)
        {
            var result = new List <ushort>();

            reader.ToRva(directory.AddressOfNameOrdinals);

            for (int i = 0; i < directory.NumberOfNames; i++)
            {
                result.Add((ushort)(reader.ReadUInt16() + directory.Base));
            }

            return(result);
        }
Exemplo n.º 3
0
        // Helpers
        private static IList <string> ReadFunctionNames(ImageReader reader, CoffDirectoryTableExportHeader directory)
        {
            var result = new List <string>();

            for (int i = 0; i < directory.NumberOfNames; i++)
            {
                reader.ToRva((uint)(directory.AddressOfNames + sizeof(uint) * i));
                reader.ToRva(reader.ReadUInt32());

                result.Add(reader.ReadNullTerminatedString());
            }

            return(result);
        }
 internal static void Present(CoffDirectoryTableExportHeader header)
 {
     Shell.WriteHeader("COFF Directory Table Export");
     Shell.WriteItem("Characteristics", header.Characteristics);
     Shell.WriteItem("TimeDateStamp", header.TimeDateStamp);
     Shell.WriteItem("MajorVersion", header.MajorVersion);
     Shell.WriteItem("MinorVersion", header.MinorVersion);
     Shell.WriteItem("Name", header.Name);
     Shell.WriteItem("Base", header.Base);
     Shell.WriteItem("NumberOfFunctions", header.NumberOfFunctions);
     Shell.WriteItem("NumberOfNames", header.NumberOfNames);
     Shell.WriteItem("AddressOfFunctions", header.AddressOfFunctions);
     Shell.WriteItem("AddressOfNames", header.AddressOfNames);
     Shell.WriteItem("AddressOfNameOrdinals", header.AddressOfNameOrdinals);
     Shell.WriteFooter();
 }