Beispiel #1
0
        public bool ProcessDebugHeader(ImageDebugHeader header)
        {
            if (image == module.Image)
            {
                return(true);
            }

            var entry = header.GetCodeViewEntry();

            if (entry == null)
            {
                return(false);
            }

            var data = entry.Data;

            if (data.Length < 24)
            {
                return(false);
            }

            var magic = ReadInt32(data, 0);

            if (magic != 0x53445352)
            {
                return(false);
            }

            var buffer = new byte [16];

            Buffer.BlockCopy(data, 4, buffer, 0, 16);

            var module_guid = new Guid(buffer);

            Buffer.BlockCopy(image.PdbHeap.Id, 0, buffer, 0, 16);

            var pdb_guid = new Guid(buffer);

            if (module_guid != pdb_guid)
            {
                return(false);
            }

            ReadModule();
            return(true);
        }
Beispiel #2
0
 public bool ProcessDebugHeader(ImageDebugHeader header)
 {
     return(reader.ProcessDebugHeader(header));
 }