Esempio n. 1
0
        private static NT_HEADER_INFO_BITNESS_INDEPENDENT FetchNtHeaderInfoX64(ulong address,
                                                                               IStructureReader structureReader)
        {
            var optionalHeaderOffset = Marshal.OffsetOf <IMAGE_NT_HEADERS64>(nameof(IMAGE_NT_HEADERS64.OptionalHeader)).ToInt32();

            var header = structureReader.ReadStructure <IMAGE_NT_HEADERS64>(address);

            return(new NT_HEADER_INFO_BITNESS_INDEPENDENT(
                       optionalHeaderOffset,
                       header.FileHeader.SizeOfOptionalHeader,
                       header.FileHeader.NumberOfSections,
                       (int)header.OptionalHeader.SizeOfHeaders));
        }
Esempio n. 2
0
        public static NT_HEADER_INFO_BITNESS_INDEPENDENT FetchNtHeaderInfo(ulong address, IStructureReader structureReader)
        {
            if (Environment.Is64BitProcess)
            {
                return(FetchNtHeaderInfoX64(address, structureReader));
            }

            return(FetchNtHeaderInfoX86(address, structureReader));
        }