예제 #1
0
        public override void DoIt()
        {
            var          dlgFactory = Services.RequireService <IDialogFactory>();
            var          uiSvc      = Services.RequireService <IDecompilerShellUiService>();
            Procedure_v1 sProc;

            if (!program.User.Procedures.TryGetValue(address, out sProc))
            {
                sProc = new Procedure_v1
                {
                    Name = procedure.Name
                }
            }
            ;
            //$REVIEW: use dialog factory.
            var i = new ProcedureDialogInteractor(program, sProc);

            using (ProcedureDialog dlg = i.CreateDialog())
            {
                if (DialogResult.OK == uiSvc.ShowModalDialog(dlg))
                {
                    i.ApplyChanges();
                    program.User.Procedures[address] = sProc;
                    procedure.Name = sProc.Name;
                }
            }
        }
    }
예제 #2
0
        public void Setup()
        {
            proc = new Procedure_v1();
            var arch     = new X86ArchitectureFlat32("x86-protected-32");
            var platform = new Win32Platform(null, arch);
            var program  = new Program
            {
                Architecture = arch,
                Platform     = platform
            };

            interactor = new ProcedureDialogInteractor(program, proc);
        }
예제 #3
0
        public void Setup()
        {
            proc = new Procedure_v1();
            var sc       = new ServiceContainer();
            var arch     = new X86ArchitectureFlat32(sc, "x86-protected-32", new Dictionary <string, object>());
            var platform = new Win32Platform(sc, arch);
            var program  = new Program
            {
                Architecture = arch,
                Platform     = platform
            };

            interactor = new ProcedureDialogInteractor(program, proc);
        }
예제 #4
0
        public override void DoIt()
        {
            var dlgFactory = Services.RequireService <IDialogFactory>();
            var uiSvc      = Services.RequireService <IDecompilerShellUiService>();
            var platform   = program.Platform;
            var ser        = platform.CreateProcedureSerializer(new TypeLibraryLoader(platform, true), "stdapi");
            var sProc      = ser.Serialize(procedure, address);
            //$REVIEW: use dialog factory.
            var i = new ProcedureDialogInteractor(platform.Architecture, sProc);

            using (ProcedureDialog dlg = i.CreateDialog())
            {
                if (DialogResult.OK == uiSvc.ShowModalDialog(dlg))
                {
                    program.UserProcedures[address] =
                        i.SerializedProcedure;
                    ser = platform.CreateProcedureSerializer(new TypeLibraryLoader(platform, true), "stdapi");
                    procedure.Signature =
                        ser.Deserialize(i.SerializedProcedure.Signature, procedure.Frame);

                    // canAdvance = false;
                }
            }
        }
예제 #5
0
        public IProcedureDialog CreateProcedureDialog(Program program, Core.Serialization.Procedure_v1 sProc)
        {
            var i = new ProcedureDialogInteractor(program, sProc);

            return(i.CreateDialog());
        }
        public IProcedureDialog CreateProcedureDialog(Program program, Core.UserProcedure proc)
        {
            var i = new ProcedureDialogInteractor(program, proc);

            return(i.CreateDialog());
        }