예제 #1
0
        public static MINIDUMP_SYSTEM_INFO parse(Directory.MINIDUMP_DIRECTORY dir, Program.MiniDump minidump)
        {
            minidump.fileBinaryReader.BaseStream.Seek(dir.Offset, 0);
            byte[] chunk = minidump.fileBinaryReader.ReadBytes((int)dir.Size);

            using (BinaryReader ChunkReader = new BinaryReader(new MemoryStream(chunk)))
            {
                MINIDUMP_SYSTEM_INFO si = Parse(ChunkReader);
                si.OS = guess_os(si.MajorVersion, si.MinorVersion, si.ProductType);
                return(si);
            }
        }
예제 #2
0
        public static List <MinidumpModule> parse(Directory.MINIDUMP_DIRECTORY dir, Program.MiniDump minidump)
        {
            List <MinidumpModule> list = new List <MinidumpModule>();

            minidump.fileBinaryReader.BaseStream.Seek(dir.Offset, 0);
            byte[] chunk = minidump.fileBinaryReader.ReadBytes((int)dir.Size);

            using (BinaryReader ChunkReader = new BinaryReader(new MemoryStream(chunk)))
            {
                MINIDUMP_MODULE_LIST mtl = parse_mml(ChunkReader);
                foreach (MINIDUMP_MODULE mod in mtl.Modules)
                {
                    MinidumpModule module = parse_mod(mod, minidump.fileBinaryReader);
                    list.Add(module);
                }
            }
            return(list);
        }
예제 #3
0
        public static MinidumpMemory86List parse(Directory.MINIDUMP_DIRECTORY dir, Program.MiniDump minidump)
        {
            List <MinidumpMemory.MinidumpMemorySegment> list = new List <MinidumpMemory.MinidumpMemorySegment>();
            MinidumpMemory86List mmlist = new MinidumpMemory86List();

            minidump.fileBinaryReader.BaseStream.Seek(dir.Offset, 0);
            byte[] chunk = minidump.fileBinaryReader.ReadBytes((int)dir.Size);

            using (BinaryReader ChunkReader = new BinaryReader(new MemoryStream(chunk)))
            {
                var mtl = parse_mml(ChunkReader);
                foreach (MINIDUMP_MEMORY_DESCRIPTORx86 mod in mtl.MemoryRanges)
                {
                    //list.Add(parse_mini(mod, fileBinaryReader));
                }
            }

            mmlist.memory_segments = list;
            return(mmlist);
        }