Exemplo n.º 1
0
        public void Scanner_SplitBlock()
        {
            scan = CreateScanner(0x100, 0x100);
            var proc = new Procedure(program.Architecture, "foo", Address.Ptr32(0x00000100), arch.CreateFrame());

            Enqueue(Address.Ptr32(0x101), proc);
            Enqueue(Address.Ptr32(0x106), proc);
            Enqueue(Address.Ptr32(0x104), proc);

            Assert.AreEqual("l00000101", scan.FindContainingBlock(Address.Ptr32(0x103)).Name);
            Assert.AreEqual("l00000104", scan.FindContainingBlock(Address.Ptr32(0x105)).Name);
            Assert.AreEqual("l00000106", scan.FindContainingBlock(Address.Ptr32(0x106)).Name);
        }
Exemplo n.º 2
0
        private void BuildX86RealTest(Action <X86Assembler> test)
        {
            var addr = Address.SegPtr(0x0C00, 0);
            var arch = new X86ArchitectureReal("x86-real-16");
            var m    = new X86Assembler(sc, new FakePlatform(null, arch), addr, new List <ImageSymbol>());

            test(m);
            this.program = m.GetImage();
            this.scan    = this.CreateScanner(this.program);
            var sym = ImageSymbol.Procedure(arch, addr);

            scan.EnqueueImageSymbol(sym, true);
        }
Exemplo n.º 3
0
        private void BuildX86RealTest(Action <X86Assembler> test)
        {
            var addr = Address.SegPtr(0x0C00, 0);
            var m    = new X86Assembler(new IntelArchitecture(ProcessorMode.Real), addr, new List <EntryPoint>());

            test(m);
            var lr = m.GetImage();

            program = new Program(
                lr.Image,
                lr.ImageMap,
                lr.Architecture,
                new FakePlatform(null, arch));
            scan = CreateScanner(program);
            EntryPoint ep = new EntryPoint(addr, program.Architecture.CreateProcessorState());

            scan.EnqueueEntryPoint(ep);
        }
        static void Main()
        {
            string[] inputs = { "()  \n349 )4.1E1(", "\t-349 )  ( +598", "()  \n+555 )+-222", ") \n-566  287)<",
                                "(  \n5.66 M)287)",  "(  \n  \t-256.77E-12) " };

            string[] meineINputs = { "(", "((", "()", "(())", "()()", "  (", " ) " };

            foreach (var strBuffer in meineINputs)
            {
                Console.WriteLine("Neuer Input:");

                var scanner = new TestScanner(strBuffer);

                var tokenList = scanner.GetTokenList();

                foreach (var token in tokenList)
                {
                    PrintToken(token);
                }
            }

            Console.ReadLine();
        }
Exemplo n.º 5
0
        public void Scanner_SplitBlock()
        {
            scan = CreateScanner(0x100, 0x100);
            var proc = new Procedure("foo", arch.CreateFrame());
            Enqueue(Address.Ptr32(0x101), proc);
            Enqueue(Address.Ptr32(0x106), proc);
            Enqueue(Address.Ptr32(0x104), proc);

            Assert.AreEqual("l00000101", scan.FindContainingBlock(Address.Ptr32(0x103)).Name);
            Assert.AreEqual("l00000104", scan.FindContainingBlock(Address.Ptr32(0x105)).Name);
            Assert.AreEqual("l00000106", scan.FindContainingBlock(Address.Ptr32(0x106)).Name);
        }
Exemplo n.º 6
0
 private void BuildX86RealTest(Action<X86Assembler> test)
 {
     var addr = Address.SegPtr(0x0C00, 0);
     var m = new X86Assembler(sc, new FakePlatform(null, new X86ArchitectureReal()), addr, new List<EntryPoint>());
     test(m);
     var lr = m.GetImage();
     program = new Program(
         lr.Image,
         lr.ImageMap,
         lr.Architecture,
         lr.Platform);
     scan = CreateScanner(program);
     EntryPoint ep = new EntryPoint(addr, program.Architecture.CreateProcessorState());
     scan.EnqueueEntryPoint(ep);
 }
Exemplo n.º 7
0
 private void BuildX86RealTest(Action<X86Assembler> test)
 {
     var addr = Address.SegPtr(0x0C00, 0);
     var m = new X86Assembler(sc, new FakePlatform(null, new X86ArchitectureReal()), addr, new List<ImageSymbol>());
     test(m);
     this.program = m.GetImage();
     this.scan = this.CreateScanner(this.program);
     var sym = new ImageSymbol(addr);
     scan.EnqueueImageSymbol(sym, true);
 }