コード例 #1
0
        public bool runModules(PandaState pandaState, PandaContext pandaContext)
        {
            new PandaMarker().Execute(pandaState, pandaContext);
            if (pandaContext.pandaIG.getIGModules() == null)
            {
                return(false);
            }
            if (pandaContext.pandaIG.getIGModules().Count == 0)
            {
                return(false);
            }

            foreach (PandaProtection p in pandaContext.register.getRegistredModules())
            {
                foreach (PandaProtection panda in pandaContext.pandaIG.getIGModules())
                {
                    if (p.Id == panda.Id)
                    {
                        panda.Execute(pandaState, pandaContext);
                    }
                }
            }



            return(true);
        }
コード例 #2
0
        public void Execute(PandaState pandaState, PandaContext pandaContext)
        {
            CFHelper cFHelper = new CFHelper();

            foreach (TypeDef type in pandaContext.moduleDef.Types)
            {
                foreach (MethodDef method in type.Methods)
                {
                    if (method.HasBody && method.Body.Instructions.Count > 0 && !method.IsConstructor)
                    {
                        if (!cFHelper.HasUnsafeInstructions(method))
                        {
                            if (DnlibUtils.Simplify(method))
                            {
                                Blocks blocks = cFHelper.GetBlocks(method);
                                if (blocks.blocks.Count != 1)
                                {
                                    switch (pandaState)
                                    {
                                    case PandaState.Basic:
                                        toDoSwitcher(cFHelper, method, blocks, pandaContext);
                                        break;

                                    case PandaState.Normal:
                                        toDoBody(cFHelper, method, blocks, pandaContext);
                                        break;
                                    }
                                }
                                DnlibUtils.Optimize(method);
                            }
                        }
                    }
                }
            }
        }
コード例 #3
0
        public ControlFlow(PandaState pandaState, PandaContext pandaContext)
        {
            if (pandaContext != null)
            {
                Execute(pandaState, pandaContext);
            }

            new ArgumentNullException("pandaContext cannot be null");
        }
コード例 #4
0
    private void SelectActiveMaterial(PandaState state)
    {
        Material[] __mats = _meshRenderer.materials;
        for (int i = 0; i < 3; i++)
        {
            __mats[i].color = Color.clear;
        }

        __mats[(int)state].color = Color.white;
    }
コード例 #5
0
        public override void Execute(PandaState pandaState, PandaContext pandaContext)
        {
            switch (pandaState)
            {
            case PandaState.Basic:
                new BasicStringEncoding(pandaContext);
                break;

            case PandaState.Normal:
                new NormalStringEncoding(pandaContext);
                break;
            }
        }
コード例 #6
0
        public ReferenceProxy(PandaState pandaState, PandaContext pandaContext)
        {
            switch (pandaState)
            {
            case PandaState.Basic:
                new RPBasic().Excute(pandaContext);
                break;

            case PandaState.Normal:
                new RPNormal().Excute(pandaContext);
                break;
            }
        }
コード例 #7
0
        public override void Execute(PandaState pandaState, PandaContext pandaContext)
        {
            switch (pandaState)
            {
            case PandaState.Basic:
                new IntMath(pandaContext);
                break;

            case PandaState.Normal:
                for (int i = 0; i < 1; i++)
                {
                    new IntMath(pandaContext);
                }
                break;
            }
        }
コード例 #8
0
 public override void Execute(PandaState pandaState, PandaContext pandaContext)
 {
     new ReferenceProxy(pandaState, pandaContext);
 }
コード例 #9
0
 public override void Execute(PandaState pandaState, PandaContext pandaContext)
 {
     new ControlFlow(pandaState, pandaContext);
 }
コード例 #10
0
 public override void Execute(PandaState pandaState, PandaContext pandaContext)
 {
     pandaContext.moduleDef.GlobalType.NestedTypes.Add(new TypeDefUser("PandaObfuscator"));
 }
コード例 #11
0
 public override void Execute(PandaState pandaState, PandaContext pandaContext)
 {
     new ConstantMelting(pandaContext);
 }
コード例 #12
0
 public abstract void Execute(PandaState pandaState, PandaContext pandaContext);