コード例 #1
0
        public void MacsBug_ScanProcedures()
        {
            Given_Link(4);
            Given_Body(3);
            Given_Rts();
            Given_Variable_Length_Symbol("my_printf");
            Given_ProgramData(0);

            var mem     = new ByteMemoryArea(Address.Ptr32(0x00100000), w.ToArray());
            var scan    = new MacsBugSymbolScanner(arch, mem);
            var symbols = scan.ScanForSymbols();

            Assert.AreEqual(1, symbols.Count);
            var sym = symbols[0];

            Assert.AreEqual(SymbolType.Procedure, sym.Type);
            Assert.AreEqual("my_printf", sym.Name);
            Assert.AreEqual(Address.Ptr32(0x00100000), sym.Address);
        }
コード例 #2
0
        public void MacsBug_ScanProcedures_WithConstantData()
        {
            Given_Link(4);
            Given_Body(3);
            Given_Rts();
            Given_Variable_Length_Symbol("some_symbol");
            Given_ProgramData(5);

            Given_Link(4);
            Given_Body(8);
            Given_Rts();
            Given_Variable_Length_Symbol("other_symbol");
            Given_ProgramData(0);

            Given_Link(6);
            Given_Body(3);
            Given_Rts();    // no symbol.

            var mem     = new ByteMemoryArea(Address.Ptr32(0x00100000), w.ToArray());
            var scan    = new MacsBugSymbolScanner(arch, mem);
            var symbols = scan.ScanForSymbols();

            Assert.AreEqual(2, symbols.Count);
        }