Exemplo n.º 1
0
        public void Hunk_LoadEmpty()
        {
            var bytes = mh.MakeBytes(
                HunkType.HUNK_HEADER,
                "",
                0,
                0,
                0,
                0);
            var ldr   = new HunkLoader(sc, "foo.bar", bytes);
            var ldImg = ldr.LoadProgram(Address.Ptr32(0x00010000));

            Assert.AreEqual(1, ldImg.SegmentMap.Segments.Count);
            Assert.AreEqual(Address.Ptr32(0x00010000), ldImg.SegmentMap.Segments.Values[0].Address);
        }
Exemplo n.º 2
0
        public void Hunk_LoadCode()
        {
            var bytes = mh.MakeBytes(
                HunkType.HUNK_HEADER,
                "CODE",
                "",
                1,
                0,
                0,
                0x40,
                HunkType.HUNK_CODE,
                1,
                (ushort)0x4E75,
                (ushort)0,
                HunkType.HUNK_END);
            var ldr     = new HunkLoader(sc, ImageLocation.FromUri("file:foo.bar"), bytes);
            var program = ldr.LoadProgram(Address.Ptr32(0x00010000));

            Assert.AreEqual(1, program.EntryPoints.Count);
            Assert.AreEqual(0x00010000ul, program.EntryPoints.Values.First().Address.ToLinear());
        }
Exemplo n.º 3
0
        public void Hunk_LoadCode()
        {
            var bytes = mh.MakeBytes(
                HunkType.HUNK_HEADER,
                "CODE",
                "",
                1,
                0,
                0,
                0x40,
                HunkType.HUNK_CODE,
                1,
                (ushort)0x4E75,
                (ushort)0,
                HunkType.HUNK_END);
            var ldr     = new HunkLoader(sc, "foo.bar", bytes);
            var program = ldr.LoadProgram(Address.Ptr32(0x00010000));
            var rlImg   = ldr.Relocate(program, Address.Ptr32(0x00010000));

            Assert.AreEqual(1, rlImg.EntryPoints.Count);
            Assert.AreEqual(0x00010000ul, rlImg.EntryPoints[0].Address.ToLinear());
        }