コード例 #1
0
        public void Analyze(Model model, List <ObfuscationSpecification> obfuscationspecs)
        {
            List <AssemblyPointer> obfuscatedAssemblies    = new List <AssemblyPointer>();
            List <AssemblyPointer> nonObfuscatedAssemblies = new List <AssemblyPointer>();

            foreach (AssemblyPointer pointer in model.AllAssemblies().Where(x => !x.IsSystemAssembly))
            {
                try
                {
                    if (pointer.Assembly.GetManifestResourceNames().Any(x => x.Contains("resources") && !x.Contains(pointer.GetName().Name) && !x.ToLower().Contains("agileo") && !x.ToLower().Contains("system") && !x.ToLower().Contains("microsoft") && !x.ToLower().Contains("windows") && !x.ToLower().Contains("exception")))
                    {
                        pointer.AddProperty("Obfuscated", true);
                        obfuscatedAssemblies.Add(pointer);

                        ObfuscationSpecification spec = obfuscationspecs.FirstOrDefault(x => x.Name == pointer.GetName().Name);
                        if (spec != null && !spec.IsObfuscated)
                        {
                            pointer.Errors.Add("This assembly is obfuscated but it should not be obfuscated");
                        }
                    }
                    else
                    {
                        pointer.AddProperty("Obfuscated", false);
                        nonObfuscatedAssemblies.Add(pointer);

                        ObfuscationSpecification spec = obfuscationspecs.FirstOrDefault(x => x.Name == pointer.GetName().Name);
                        if (spec != null && spec.IsObfuscated)
                        {
                            pointer.Errors.Add("This assembly is not obfuscated but it should be obfuscated");
                        }
                    }
                }
                catch
                {
                }
            }

            model.AddAssemblyPointerGroup(" Obfuscated Assemblies", obfuscatedAssemblies);
            model.AddAssemblyPointerGroup(" Non Obfuscated Assemblies", nonObfuscatedAssemblies);
        }
コード例 #2
0
        public void Analyze(Model model, List <SignatureSpecification> sigspecs)
        {
            List <AssemblyPointer> signedAssemblies   = new List <AssemblyPointer>();
            List <AssemblyPointer> unsignedAssemblies = new List <AssemblyPointer>();

            foreach (AssemblyPointer pointer in model.AllAssemblies().Where(x => !x.IsSystemAssembly))
            {
                if (pointer.PhysicalyExists)
                {
                    if (pointer.GetName().GetPublicKeyToken().Count() != 0)
                    {
                        pointer.AddProperty("Signed", true);
                        pointer.AddProperty("PublicKeyToken", BitConverter.ToString(pointer.GetName().GetPublicKeyToken()));
                        signedAssemblies.Add(pointer);

                        SignatureSpecification spec = sigspecs.FirstOrDefault(x => x.Name == pointer.GetName().Name);
                        if (spec != null && !spec.IsSigned)
                        {
                            pointer.Errors.Add("This assembly is signed but it should not be signed");
                        }
                    }
                    else
                    {
                        pointer.AddProperty("Signed", false);
                        pointer.AddProperty("PublicKeyToken", BitConverter.ToString(pointer.GetName().GetPublicKeyToken()));
                        unsignedAssemblies.Add(pointer);

                        SignatureSpecification spec = sigspecs.FirstOrDefault(x => x.Name == pointer.GetName().Name);
                        if (spec != null && spec.IsSigned)
                        {
                            pointer.Errors.Add("This assembly is not signed but it should be signed");
                        }
                    }
                }
            }

            model.AddAssemblyPointerGroup("Signed Assemblies", signedAssemblies);
            model.AddAssemblyPointerGroup("Unsigned Assemblies", unsignedAssemblies);
        }