public static RsrcTypeInfo Deserialize(MultiPartFile file) { RsrcTypeInfo rti = new RsrcTypeInfo(); rti.ID = file.ReadUInt16(); rti.rt_nres = file.ReadUInt16(); rti.rt_proc = file.ReadUInt32(); return(rti); }
public static TYPEINFO Deserialize(MultiPartFile file) { TYPEINFO ti = new TYPEINFO(); ti.TypeID = file.ReadUInt16(); ti.ResourceCount = file.ReadUInt16(); ti.Reserved = file.ReadUInt32(); ti.NameInfo = NAMEINFO.Deserialize(file); return(ti); }
public static NewSegdata Deserialize(MultiPartFile file) { NewSegdata nsd = new NewSegdata(); nsd.Iterations = file.ReadUInt16(); nsd.TotalBytes = file.ReadUInt16(); nsd.IteratedDataBytes = file.ReadChar(); nsd.DataBytes = (char)BitConverter.GetBytes(nsd.Iterations)[0]; return(nsd); }
public static NewSeg Deserialize(MultiPartFile file) { NewSeg ns = new NewSeg(); ns.StartFileSector = file.ReadUInt16(); ns.BytesInFile = file.ReadUInt16(); ns.Flags = file.ReadUInt16(); ns.MinimumAllocation = file.ReadUInt16(); return(ns); }
public static ResourceTable Deserialize(MultiPartFile file) { ResourceTable rt = new ResourceTable(); rt.rscAlignShift = file.ReadUInt16(); rt.TypeInfo = TYPEINFO.Deserialize(file); rt.rscEndTypes = file.ReadUInt16(); rt.rscResourceNames = null; // TODO: Figure out size rt.rscEndNames = file.ReadByte(); return(rt); }
public static IMAGE_RESOURCE_DIRECTORY Deserialize(MultiPartFile file) { IMAGE_RESOURCE_DIRECTORY ird = new IMAGE_RESOURCE_DIRECTORY(); ird.Characteristics = file.ReadUInt32(); ird.TimeDateStamp = file.ReadUInt32(); ird.MajorVersion = file.ReadUInt16(); ird.MinorVersion = file.ReadUInt16(); ird.NumberOfNamedEntries = file.ReadUInt16(); ird.NumberOfIdEntries = file.ReadUInt16(); return(ird); }
public static IMAGE_FILE_HEADER Deserialize(MultiPartFile file) { IMAGE_FILE_HEADER ifh = new IMAGE_FILE_HEADER(); ifh.Machine = file.ReadUInt16(); ifh.NumberOfSections = file.ReadUInt16(); ifh.TimeDateStamp = file.ReadUInt32(); ifh.PointerToSymbolTable = file.ReadUInt32(); ifh.NumberOfSymbols = file.ReadUInt32(); ifh.SizeOfOptionalHeader = file.ReadUInt16(); ifh.Characteristics = file.ReadUInt16(); return(ifh); }
public static NewRlcInfo Deserialize(MultiPartFile file) { NewRlcInfo nri = new NewRlcInfo(); nri.RelocationItemCount = file.ReadUInt16(); return(nri); }
public static NewRsrc Deserialize(MultiPartFile file) { NewRsrc nr = new NewRsrc(); nr.AlignmentShiftCount = file.ReadUInt16(); nr.TypeInfo = RsrcTypeInfo.Deserialize(file); return(nr); }
public static IMAGE_RESOURCE_DIR_STRING_U Deserialize(MultiPartFile file) { IMAGE_RESOURCE_DIR_STRING_U irdsu = new IMAGE_RESOURCE_DIR_STRING_U(); irdsu.Length = file.ReadUInt16(); irdsu.NameString = file.ReadChars(irdsu.Length); return(irdsu); }
public static IMAGE_SECTION_HEADER Deserialize(MultiPartFile file) { IMAGE_SECTION_HEADER ish = new IMAGE_SECTION_HEADER(); ish.Name = file.ReadBytes(Constants.IMAGE_SIZEOF_SHORT_NAME); // Misc ish.PhysicalAddress = file.ReadUInt32(); ish.VirtualSize = ish.PhysicalAddress; ish.VirtualAddress = file.ReadUInt32(); ish.SizeOfRawData = file.ReadUInt32(); ish.PointerToRawData = file.ReadUInt32(); ish.PointerToRelocations = file.ReadUInt32(); ish.PointerToLinenumbers = file.ReadUInt32(); ish.NumberOfRelocations = file.ReadUInt16(); ish.NumberOfLinenumbers = file.ReadUInt16(); ish.Characteristics = (SectionCharacteristics)file.ReadUInt32(); return(ish); }
public static IMAGE_OPTIONAL_HEADER Deserialize(MultiPartFile file) { IMAGE_OPTIONAL_HEADER ioh = new IMAGE_OPTIONAL_HEADER(); ioh.Magic = file.ReadUInt16(); ioh.MajorLinkerVersion = file.ReadByte(); ioh.MinorLinkerVersion = file.ReadByte(); ioh.SizeOfCode = file.ReadUInt32(); ioh.SizeOfInitializedData = file.ReadUInt32(); ioh.SizeOfUninitializedData = file.ReadUInt32(); ioh.AddressOfEntryPoint = file.ReadUInt32(); ioh.BaseOfCode = file.ReadUInt32(); ioh.BaseOfData = file.ReadUInt32(); ioh.ImageBase = file.ReadUInt32(); ioh.SectionAlignment = file.ReadUInt32(); ioh.FileAlignment = file.ReadUInt32(); ioh.MajorOperatingSystemVersion = file.ReadUInt16(); ioh.MinorOperatingSystemVersion = file.ReadUInt16(); ioh.MajorImageVersion = file.ReadUInt16(); ioh.MinorImageVersion = file.ReadUInt16(); ioh.MajorSubsystemVersion = file.ReadUInt16(); ioh.MinorSubsystemVersion = file.ReadUInt16(); ioh.Reserved1 = file.ReadUInt32(); ioh.SizeOfImage = file.ReadUInt32(); ioh.SizeOfHeaders = file.ReadUInt32(); ioh.CheckSum = file.ReadUInt32(); ioh.Subsystem = file.ReadUInt16(); ioh.DllCharacteristics = file.ReadUInt16(); ioh.SizeOfStackReserve = file.ReadUInt32(); ioh.SizeOfStackCommit = file.ReadUInt32(); ioh.SizeOfHeapReserve = file.ReadUInt32(); ioh.SizeOfHeapCommit = file.ReadUInt32(); ioh.LoaderFlags = file.ReadUInt32(); ioh.NumberOfRvaAndSizes = file.ReadUInt32(); ioh.DataDirectory = new IMAGE_DATA_DIRECTORY[Constants.IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; for (int i = 0; i < Constants.IMAGE_NUMBEROF_DIRECTORY_ENTRIES; i++) { ioh.DataDirectory[i] = IMAGE_DATA_DIRECTORY.Deserialize(file); } return(ioh); }
} // Reserved public static NewRlc Deserialize(MultiPartFile file) { NewRlc nr = new NewRlc(); nr.SourceType = file.ReadChar(); nr.Flags = file.ReadChar(); nr.SourceOffset = file.ReadUInt16(); // nr_intref nr.TargetSegmentNumber = file.ReadChar(); nr.Reserved1 = file.ReadChar(); nr.TargetEntryTableOffset = file.ReadUInt16(); // nr_import nr.ModuleReferenceTableIndex = BitConverter.ToUInt16(new byte[] { (byte)nr.SourceType, (byte)nr.Flags }, 0); nr.ProcedureOffset = nr.TargetEntryTableOffset; // nr_osfix nr.OperatingSystemFixupType = nr.ModuleReferenceTableIndex; nr.Reserved2 = nr.ProcedureOffset; return(nr); }
public static NAMEINFO Deserialize(MultiPartFile file) { NAMEINFO ni = new NAMEINFO(); ni.Offset = file.ReadUInt16(); ni.Length = file.ReadUInt16(); ni.Flags = file.ReadUInt16(); ni.ID = file.ReadUInt16(); ni.Handle = file.ReadUInt16(); ni.Usage = file.ReadUInt16(); return(ni); }
public static RsrcNameInfo Deserialize(MultiPartFile file) { RsrcNameInfo rni = new RsrcNameInfo(); rni.Offset = file.ReadUInt16(); rni.Length = file.ReadUInt16(); rni.Flags = file.ReadUInt16(); rni.NameID = file.ReadUInt16(); rni.Handle = file.ReadUInt16(); rni.UsageCount = file.ReadUInt16(); return(rni); }
} // 3F Windows SDK version number public static IMAGE_OS2_HEADER Deserialize(MultiPartFile file) { IMAGE_OS2_HEADER ioh = new IMAGE_OS2_HEADER(); ioh.Magic = file.ReadUInt16(); ioh.LinkerVersion = file.ReadByte(); ioh.LinkerRevision = file.ReadByte(); ioh.EntryTableOffset = file.ReadUInt16(); ioh.EntryTableSize = file.ReadUInt16(); ioh.CrcChecksum = file.ReadUInt32(); ioh.Flags = file.ReadUInt16(); ioh.Autodata = file.ReadUInt16(); ioh.InitialHeapAlloc = file.ReadUInt16(); ioh.InitialStackAlloc = file.ReadUInt16(); ioh.InitialCSIPSetting = file.ReadUInt32(); ioh.InitialSSSPSetting = file.ReadUInt32(); ioh.FileSegmentCount = file.ReadUInt16(); ioh.ModuleReferenceTableSize = file.ReadUInt16(); ioh.NonResidentNameTableSize = file.ReadUInt16(); ioh.SegmentTableOffset = file.ReadUInt16(); ioh.ResourceTableOffset = file.ReadUInt16(); ioh.ResidentNameTableOffset = file.ReadUInt16(); ioh.ModuleReferenceTableOffset = file.ReadUInt16(); ioh.ImportedNamesTableOffset = file.ReadUInt16(); ioh.NonResidentNamesTableOffset = file.ReadUInt32(); ioh.MovableEntriesCount = file.ReadUInt16(); ioh.SegmentAlignmentShiftCount = file.ReadUInt16(); ioh.ResourceEntriesCount = file.ReadUInt16(); ioh.TargetOperatingSystem = file.ReadByte(); ioh.AdditionalFlags = file.ReadByte(); ioh.Reserved = new ushort[Constants.NERESWORDS]; for (int i = 0; i < Constants.NERESWORDS; i++) { ioh.Reserved[i] = file.ReadUInt16(); } ioh.WindowsSDKRevision = file.ReadByte(); ioh.WindowsSDKVersion = file.ReadByte(); return(ioh); }
} // 3C File address of new exe header public static IMAGE_DOS_HEADER Deserialize(MultiPartFile file) { IMAGE_DOS_HEADER idh = new IMAGE_DOS_HEADER(); idh.Magic = file.ReadUInt16(); idh.LastPageBytes = file.ReadUInt16(); idh.Pages = file.ReadUInt16(); idh.Relocations = file.ReadUInt16(); idh.HeaderParagraphSize = file.ReadUInt16(); idh.MinimumExtraParagraphs = file.ReadUInt16(); idh.MaximumExtraParagraphs = file.ReadUInt16(); idh.InitialSSValue = file.ReadUInt16(); idh.InitialSPValue = file.ReadUInt16(); idh.Checksum = file.ReadUInt16(); idh.InitialIPValue = file.ReadUInt16(); idh.InitialCSValue = file.ReadUInt16(); idh.RelocationTableAddr = file.ReadUInt16(); idh.OverlayNumber = file.ReadUInt16(); idh.Reserved1 = new ushort[Constants.ERES1WDS]; for (int i = 0; i < Constants.ERES1WDS; i++) { idh.Reserved1[i] = file.ReadUInt16(); } idh.OEMIdentifier = file.ReadUInt16(); idh.OEMInformation = file.ReadUInt16(); idh.Reserved2 = new ushort[Constants.ERES2WDS]; for (int i = 0; i < Constants.ERES2WDS; i++) { idh.Reserved2[i] = file.ReadUInt16(); } idh.NewExeHeaderAddr = file.ReadInt32(); return(idh); }