Esempio n. 1
0
 public Hnsha(int segNum, string controlRef, string signature)
 {
     Header           = new SegmentHeader("HNSHA", 2, segNum);
     ControlReference = new AlphanumericElement(controlRef);
     Result           = null;
     Signature        = new AlphanumericElement(signature);
 }
Esempio n. 2
0
 public Hkidn(int number, int blz, string userId, string systemId = "0")
 {
     Header     = new SegmentHeader("HKIDN", 2, number);
     BankId     = new BankId(blz);
     CustomerId = new AlphanumericElement(userId);
     SystemId   = new AlphanumericElement(systemId);
     Status     = new NumericElement(1);
 }
Esempio n. 3
0
        public KernelInitialProcess(Stream input)
        {
            BinaryReader reader = new BinaryReader(input);

            string magic = ReadString(reader, 4);

            if (magic != "KIP1")
            {
            }

            Name = ReadString(reader, 12);

            TitleId = reader.ReadUInt64();

            ProcessCategory = reader.ReadInt32();

            MainThreadPriority = reader.ReadByte();
            DefaultProcessorId = reader.ReadByte();

            byte reserved = reader.ReadByte();
            byte flags    = reader.ReadByte();

            Is64Bits   = (flags & 0x08) != 0;
            Addr39Bits = (flags & 0x10) != 0;
            IsService  = (flags & 0x20) != 0;

            SegmentHeader[] segments = new SegmentHeader[6];

            for (int index = 0; index < segments.Length; index++)
            {
                segments[index] = new SegmentHeader(
                    reader.ReadInt32(),
                    reader.ReadInt32(),
                    reader.ReadInt32(),
                    reader.ReadInt32());
            }

            TextOffset = segments[0].Offset;
            RoOffset   = segments[1].Offset;
            DataOffset = segments[2].Offset;
            BssOffset  = segments[3].Offset;
            BssSize    = segments[3].DecompressedSize;

            MainThreadStackSize = segments[1].Attribute;

            Capabilities = new int[32];

            for (int index = 0; index < Capabilities.Length; index++)
            {
                Capabilities[index] = reader.ReadInt32();
            }

            input.Seek(0x100, SeekOrigin.Begin);

            Text = ReadSegment(segments[0], input);
            Ro   = ReadSegment(segments[1], input);
            Data = ReadSegment(segments[2], input);
        }
Esempio n. 4
0
        public KernelInitialProcess(Stream Input)
        {
            BinaryReader Reader = new BinaryReader(Input);

            string Magic = ReadString(Reader, 4);

            if (Magic != "KIP1")
            {
            }

            Name = ReadString(Reader, 12);

            TitleId = Reader.ReadInt64();

            ProcessCategory = Reader.ReadInt32();

            MainThreadPriority = Reader.ReadByte();
            DefaultProcessorId = Reader.ReadByte();

            byte Reserved = Reader.ReadByte();
            byte Flags    = Reader.ReadByte();

            Is64Bits   = (Flags & 0x08) != 0;
            Addr39Bits = (Flags & 0x10) != 0;
            IsService  = (Flags & 0x20) != 0;

            SegmentHeader[] Segments = new SegmentHeader[6];

            for (int Index = 0; Index < Segments.Length; Index++)
            {
                Segments[Index] = new SegmentHeader(
                    Reader.ReadInt32(),
                    Reader.ReadInt32(),
                    Reader.ReadInt32(),
                    Reader.ReadInt32());
            }

            TextOffset = Segments[0].Offset;
            ROOffset   = Segments[1].Offset;
            DataOffset = Segments[2].Offset;
            BssOffset  = Segments[3].Offset;
            BssSize    = Segments[3].DecompressedSize;

            MainThreadStackSize = Segments[1].Attribute;

            Capabilities = new int[8];

            for (int Index = 0; Index < Capabilities.Length; Index++)
            {
                Capabilities[Index] = Reader.ReadInt32();
            }

            Input.Seek(0x100, SeekOrigin.Begin);

            Text = ReadSegment(Segments[0], Input);
            RO   = ReadSegment(Segments[1], Input);
            Data = ReadSegment(Segments[2], Input);
        }
Esempio n. 5
0
 public Hnhbk(int msgNum, int segNum = 1, int size = 0, string dialogId = "0", int hbciVer = 300)
 {
     Header        = new SegmentHeader("HNHBK", 3, segNum);
     Size          = new DigitElement(12, size);
     HbciVersion   = new NumericElement(hbciVer);
     DialogId      = new AlphanumericElement(dialogId);
     MessageNumber = new NumericElement(msgNum);
     Reference     = null;
 }
Esempio n. 6
0
 public Hkvvb(int segNum, string productId, string productVersion)
 {
     Header         = new SegmentHeader("HKVVB", 3, segNum);
     Bpd            = new NumericElement(0);
     Upd            = new NumericElement(0);
     Language       = new NumericElement(0);
     ProductId      = new AlphanumericElement(productId);
     ProductVersion = new AlphanumericElement(productVersion);
 }
Esempio n. 7
0
        private byte[] ReadSegment(SegmentHeader header, Stream input)
        {
            byte[] data = new byte[header.DecompressedSize];

            input.Read(data, 0, header.CompressedSize);

            BackwardsLz.DecompressInPlace(data, header.CompressedSize);

            return(data);
        }
Esempio n. 8
0
        private byte[] ReadSegment(SegmentHeader Header, Stream Input)
        {
            long End = Input.Position + Header.CompressedSize;

            Input.Seek(End, SeekOrigin.Begin);

            byte[] Data = BackwardsLz.Decompress(Input, Header.DecompressedSize);

            Input.Seek(End, SeekOrigin.Begin);

            return(Data);
        }
Esempio n. 9
0
        private byte[] ReadSegment(SegmentHeader header, Stream input)
        {
            long end = input.Position + header.CompressedSize;

            input.Seek(end, SeekOrigin.Begin);

            byte[] data = BackwardsLz.Decompress(input, header.DecompressedSize);

            input.Seek(end, SeekOrigin.Begin);

            return(data);
        }
Esempio n. 10
0
 public Hksyn(int segNum, Query query)
 {
     Header    = new SegmentHeader("HKSYN", 3, segNum);
     QueryType = new NumericElement((int)query);
 }
Esempio n. 11
0
 public Segment(SegmentHeader header, IpcHeader ipcHeader, byte[] ipcData)
 {
     Header    = header;
     IpcHeader = ipcHeader;
     IpcData   = ipcData;
 }
Esempio n. 12
0
        public NSO(string path)
        {
            BinaryReader reader = new BinaryReader(File.Open(path, FileMode.Open));

            mMagic   = Encoding.ASCII.GetString(reader.ReadBytes(4));
            mVersion = reader.ReadInt32();
            reader.ReadInt32();
            mFlags = reader.ReadInt32();

            SegmentHeader textSeg = new SegmentHeader
            {
                fileOffset       = reader.ReadInt32(),
                memoryOffset     = reader.ReadInt32(),
                decompressedSize = reader.ReadInt32()
            };

            mTextSeg      = textSeg;
            mModuleOffset = reader.ReadInt32();

            SegmentHeader rodataSeg = new SegmentHeader
            {
                fileOffset       = reader.ReadInt32(),
                memoryOffset     = reader.ReadInt32(),
                decompressedSize = reader.ReadInt32()
            };

            mRODataSeg      = rodataSeg;
            mModuleFileSize = reader.ReadInt32();

            SegmentHeader dataSeg = new SegmentHeader
            {
                fileOffset       = reader.ReadInt32(),
                memoryOffset     = reader.ReadInt32(),
                decompressedSize = reader.ReadInt32()
            };

            mDataSeg    = dataSeg;
            mBSSSize    = reader.ReadInt32();
            mBuildID    = reader.ReadBytes(0x20);
            mTextSize   = reader.ReadInt32();
            mRODataSize = reader.ReadInt32();
            mDataSize   = reader.ReadInt32();
            reader.ReadBytes(0x1C);

            RODataExtent apiExtent = new RODataExtent
            {
                regionRODataOffset = reader.ReadInt32(),
                regionSize         = reader.ReadInt32()
            };

            mAPIInfoExtent = apiExtent;

            RODataExtent dynStrExtent = new RODataExtent
            {
                regionRODataOffset = reader.ReadInt32(),
                regionSize         = reader.ReadInt32()
            };

            mDynStrExtent = dynStrExtent;

            RODataExtent dynSymExtent = new RODataExtent
            {
                regionRODataOffset = reader.ReadInt32(),
                regionSize         = reader.ReadInt32()
            };

            mDynSymExtent = dynSymExtent;

            mTextSHA   = reader.ReadBytes(0x20);
            mRODataSHA = reader.ReadBytes(0x20);
            mDataSHA   = reader.ReadBytes(0x20);

            mText   = reader.ReadBytes(mTextSize);
            mROData = reader.ReadBytes(mRODataSize);
            mData   = reader.ReadBytes(mDataSize);
        }
Esempio n. 13
0
 public Hnhbs(int number, int segmentNum)
 {
     Header        = new SegmentHeader("HNHBS", 1, segmentNum);
     MessageNumber = new NumericElement(number);
 }