Пример #1
0
 public void HasColonInWrongPlace()
 {
     writer.WriteLine(":");
     writer.Flush();
     parser = new DumpFileParser(stream, "main");
     CollectionAssert.AreEqual(new Byte[] {0xc9}, parser.GetBytes());
 }
Пример #2
0
 public void HasColonInWrongPlace()
 {
     writer.WriteLine(":");
     writer.Flush();
     parser = new DumpFileParser(stream, "main");
     CollectionAssert.AreEqual(new Byte[] { 0xc9 }, parser.GetBytes());
 }
Пример #3
0
        public void EmptyLine()
        {
            writer.WriteLine(String.Empty);
            writer.Flush();
            parser = new DumpFileParser(stream, "main");

            Assert.IsNull(parser.GetBytes());
        }
Пример #4
0
        public void LineWithSpaceTab()
        {
            writer.WriteLine(" 8048388:       c7 04 24 10 00 00 00 \tmov    DWORD PTR [esp],0x10");
            writer.Flush();
            parser = new DumpFileParser(stream, "main");

            var expectedResult = new Byte[] { 0xc9, 0xc7, 0x04, 0x24, 0x10, 0x00, 0x00, 0x00 };

            CollectionAssert.AreEqual(expectedResult, parser.GetBytes());
        }
Пример #5
0
        public void LineWithSingleHex()
        {
            writer.WriteLine(" 804837c:       55                      push   ebp");
            writer.Flush();
            parser = new DumpFileParser(stream, "main");

            var expectedResult = new Byte[] { 0xc9, 0x55 };

            CollectionAssert.AreEqual(expectedResult, parser.GetBytes());
        }
Пример #6
0
        public void GetBytesIsNull()
        {
            writer.WriteLine(" 804837f:       55                      push   ebp");
            writer.Flush();
            parser = new DumpFileParser(stream, "main");

            Assert.IsNull(parser.GetBytes());
            Assert.AreEqual(0, parser.BaseAddress);
            Assert.AreEqual(0, parser.EntryPointAddress);
        }
Пример #7
0
        public void GetBytesReturnAllInstructions()
        {
            writer.WriteLine(" 804837d:	c3                   	ret    ");
            writer.WriteLine(" 804837e:	90                   	nop    ");
            writer.Flush();
            parser = new DumpFileParser(stream, "main");

            var code = parser.GetBytes();
            CollectionAssert.AreEqual(new Byte[] {0xc9, 0xc3, 0x90}, code);
        }
Пример #8
0
        public void LineWithMultipleHex()
        {
            writer.WriteLine(" 8048385:       83 ec 10                sub    esp,0x10");
            writer.Flush();
            parser = new DumpFileParser(stream, "main");

            var expectedResult = new Byte[] { 0xc9, 0x83, 0xec, 0x10 };

            CollectionAssert.AreEqual(expectedResult, parser.GetBytes());
        }
Пример #9
0
        public void GetBytesReturnAllInstructions()
        {
            writer.WriteLine(" 804837d:	c3                   	ret    ");
            writer.WriteLine(" 804837e:	90                   	nop    ");
            writer.Flush();
            parser = new DumpFileParser(stream, "main");

            var code = parser.GetBytes();

            CollectionAssert.AreEqual(new Byte[] { 0xc9, 0xc3, 0x90 }, code);
        }
Пример #10
0
        public void ParseNonMain()
        {
            writer.WriteLine(" 804837d:	c3                   	ret    ");
            writer.WriteLine();
            writer.Flush();
            parser = new DumpFileParser(stream, "_start");

            Assert.AreEqual(0x0804837c, parser.BaseAddress);
            Assert.AreEqual(0x0804837c, parser.EntryPointAddress);

            var code = parser.GetBytes();

            Assert.AreEqual(0xc9, code[0]);
        }
Пример #11
0
        public void MainIsLastFunction()
        {
            writer.WriteLine(" 804837d:	c3                   	ret    ");
            writer.Flush();
            parser = new DumpFileParser(stream, "main");

            Assert.AreEqual(0x0804837c, parser.BaseAddress);
            Assert.AreEqual(0x0804837d, parser.EntryPointAddress);

            var code = parser.GetBytes();

            CollectionAssert.AreEqual(new Byte[] { 0xc9, 0xc3 }, code);
            Assert.AreEqual(2, code.Length);
            Assert.AreEqual(0, parser.ExpectedReportItems.Count);
        }
Пример #12
0
 public void NoLines()
 {
     parser = new DumpFileParser(stream, "main");
     Assert.IsNull(parser.GetBytes());
 }
Пример #13
0
        public void EmptyLine()
        {
            writer.WriteLine(String.Empty);
            writer.Flush();
            parser = new DumpFileParser(stream, "main");

            Assert.IsNull(parser.GetBytes());
        }
Пример #14
0
        public void GetBytesIsNull()
        {
            writer.WriteLine(" 804837f:       55                      push   ebp");
            writer.Flush();
            parser = new DumpFileParser(stream, "main");

            Assert.IsNull(parser.GetBytes());
            Assert.AreEqual(0, parser.BaseAddress);
            Assert.AreEqual(0, parser.EntryPointAddress);
        }
Пример #15
0
        public void ParseNonMain()
        {
            writer.WriteLine(" 804837d:	c3                   	ret    ");
            writer.WriteLine();
            writer.Flush();
            parser = new DumpFileParser(stream, "_start");

            Assert.AreEqual(0x0804837c, parser.BaseAddress);
            Assert.AreEqual(0x0804837c, parser.EntryPointAddress);

            var code = parser.GetBytes();
            Assert.AreEqual(0xc9, code[0]);
        }
Пример #16
0
        public void NextLineSkipsBadLines()
        {
            writer.WriteLine("BADLINE");
            writer.WriteLine(" 8048385:       83 ec 10                sub    esp,0x10");
            writer.Flush();
            parser = new DumpFileParser(stream, "main");

            var expectedResult = new Byte[] {0xc9, 0x83, 0xec, 0x10};
            CollectionAssert.AreEqual(expectedResult, parser.GetBytes());
        }
Пример #17
0
        public void MainIsNotLastFunction()
        {
            writer.WriteLine(" 804837d:	c3                   	ret    ");
            writer.WriteLine();
            writer.WriteLine("0804837e <nonmain2>:");
            writer.WriteLine(" 804837e:	90                   	nop  ");
            writer.Flush();
            parser = new DumpFileParser(stream, "main");

            Assert.AreEqual(0x0804837c, parser.BaseAddress);
            Assert.AreEqual(0x0804837d, parser.EntryPointAddress);

            var code = parser.GetBytes();
            CollectionAssert.AreEqual(new Byte[] {0xc9, 0xc3, 0x90}, code);
            Assert.AreEqual(3, code.Length);
            Assert.AreEqual(0, parser.ExpectedReportItems.Count);
        }
Пример #18
0
 public void NoLines()
 {
     parser = new DumpFileParser(stream, "main");
     Assert.IsNull(parser.GetBytes());
 }
Пример #19
0
        public void LineWithMuchoHex()
        {
            writer.WriteLine(" 8048388:       c7 04 24 10 00 00 00    mov    DWORD PTR [esp],0x10");
            writer.Flush();
            parser = new DumpFileParser(stream, "main");

            var expectedResult = new Byte[] {0xc9, 0xc7, 0x04, 0x24, 0x10, 0x00, 0x00, 0x00};
            CollectionAssert.AreEqual(expectedResult, parser.GetBytes());
        }
Пример #20
0
        public void LineWithSingleHex()
        {
            writer.WriteLine(" 804837c:       55                      push   ebp");
            writer.Flush();
            parser = new DumpFileParser(stream, "main");

            var expectedResult = new Byte[] {0xc9, 0x55};
            CollectionAssert.AreEqual(expectedResult, parser.GetBytes());
        }