示例#1
0
        private void Given_Scanner()
        {
            this.host = mr.Stub <IRewriterHost>();
            var dev = mr.Stub <DecompilerEventListener>();

            //host.Stub(h => h.EnsurePseudoProcedure(null, null, 0))
            //    .IgnoreArguments()
            //    .Return(new PseudoProcedure("<>", PrimitiveType.Word32, 2));
            host.Stub(h => h.PseudoProcedure("", VoidType.Instance, null)).IgnoreArguments().Return(null);
            host.Stub(h => h.GetImport(null, null)).IgnoreArguments().Return(null);
            host.Stub(h => h.GetImportedProcedure(null, null, null)).IgnoreArguments().Return(null);
            host.Replay();
            dev.Replay();
            var frame = program.Architecture.CreateFrame();

            this.sr = new ScanResults
            {
                Instructions    = new SortedList <Address, RtlInstructionCluster>(),
                KnownProcedures = new HashSet <Address>(),
            };
            this.sh = new ShingledScanner(program, host, frame, sr, dev);
        }