Beispiel #1
0
 public void AddHintNameSegment(HintName hintName)
 {
     if (!Segments.Contains(hintName))
     {
         Segments.Add(hintName);
     }
 }
Beispiel #2
0
        internal static ImageSymbolImport FromReadingContext(ReadingContext context)
        {
            var reader      = context.Reader;
            var application = context.Assembly;

            var optionalHeader = application.NtHeaders.OptionalHeader;

            var import = new ImageSymbolImport(optionalHeader.Magic == OptionalHeaderMagic.Pe32Plus
                ? reader.ReadUInt64()
                : reader.ReadUInt32());

            if (import.Lookup == 0)
            {
                return(import);
            }

            import.IsImportByOrdinal = import.Lookup >> (optionalHeader.Magic == OptionalHeaderMagic.Pe32Plus ? 63 : 31) == 1;

            if (!import.IsImportByOrdinal)
            {
                import.HintName =
                    HintName.FromReadingContext(context.CreateSubContext(application.RvaToFileOffset(import.HintNameRva)));
            }

            return(import);
        }
 public void AddHintNameSegment(HintName hintName)
 {
     if (!Segments.Contains(hintName))
         Segments.Add(hintName);
 }
Beispiel #4
0
 public ImageSymbolImport(HintName hintName)
 {
     IsImportByOrdinal = false;
     HintName          = hintName;
 }