diff --git a/README.md b/README.md
index 1f276467935d9ef72cd0bc5e0aa0da323a840845..eed67f9a79512268af8b7a707932f94415951426 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,7 @@ Revoke China Certificates.<br />
 全自动可疑证书吊销工具/全自動可疑憑證撤銷工具<br />
 
 ### Updated
-**2015-01-18**
+**2015-02-20**
 
 ### Type
 * Online Certificates/在线证书/在線證書
@@ -37,4 +37,7 @@ Revoke China Certificates.<br />
 
 ### Thanks
 * [拉黑证书 让你的电脑再也装不上某些软件 附证书大全](http://blog.eqoe.cn/posts/ban-digital-cert.html)
-* [Anti-China-Anit-virus](https://github.com/SCFWSE-Ye/Anti-China-Anit-virus)
+* [BlockChinaSoftware](https://github.com/SCFWSE/BlockChinaSoftware)
+* [UTLS-Blocker](https://github.com/SCFWSE/UTLS-Blocker)
+* [Local-Policy](https://bitbucket.org/MartinEden/local-policy/overview)
+* [SoftCertPolicyAppender](https://github.com/lhyqy5/RevokeChinaCerts/tree/master/Windows/SoftCertPolicyAppender)
diff --git a/Windows/SoftCertPolicyAppender/SoftCertPolicyAppender/_libs/LocalPolicy.dll b/Windows/ArchiveCerts/SoftCertPolicyAppender/LocalPolicy.dll
similarity index 100%
rename from Windows/SoftCertPolicyAppender/SoftCertPolicyAppender/_libs/LocalPolicy.dll
rename to Windows/ArchiveCerts/SoftCertPolicyAppender/LocalPolicy.dll
diff --git a/Windows/SoftCertPolicyAppender/prebuilt/SoftCertPolicyAppender.exe b/Windows/ArchiveCerts/SoftCertPolicyAppender/SoftCertPolicyAppender.exe
similarity index 100%
rename from Windows/SoftCertPolicyAppender/prebuilt/SoftCertPolicyAppender.exe
rename to Windows/ArchiveCerts/SoftCertPolicyAppender/SoftCertPolicyAppender.exe
diff --git a/Windows/SoftCertPolicyAppender/SoftCertPolicyAppender/SoftCertPolicyAppender.sln b/Windows/ArchiveCerts/SoftCertPolicyAppender/Source/SoftCertPolicyAppender.sln
similarity index 100%
rename from Windows/SoftCertPolicyAppender/SoftCertPolicyAppender/SoftCertPolicyAppender.sln
rename to Windows/ArchiveCerts/SoftCertPolicyAppender/Source/SoftCertPolicyAppender.sln
diff --git a/Windows/SoftCertPolicyAppender/SoftCertPolicyAppender/SoftCertPolicyAppender/CertPolicyAppender.cs b/Windows/ArchiveCerts/SoftCertPolicyAppender/Source/SoftCertPolicyAppender/CertPolicyAppender.cs
similarity index 97%
rename from Windows/SoftCertPolicyAppender/SoftCertPolicyAppender/SoftCertPolicyAppender/CertPolicyAppender.cs
rename to Windows/ArchiveCerts/SoftCertPolicyAppender/Source/SoftCertPolicyAppender/CertPolicyAppender.cs
index 86f90fc63cdff7959f6f657e41249451deef6703..33cf2424997a6fc349e452d92d01023367cabbdd 100644
--- a/Windows/SoftCertPolicyAppender/SoftCertPolicyAppender/SoftCertPolicyAppender/CertPolicyAppender.cs
+++ b/Windows/ArchiveCerts/SoftCertPolicyAppender/Source/SoftCertPolicyAppender/CertPolicyAppender.cs
@@ -1,208 +1,208 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Security.Cryptography.X509Certificates;
-using LocalPolicy;
-using Microsoft.Win32;
-
-namespace SoftCertPolicyAppender
-{
-    public class SoftwareRestrictionPolicyController
-    {
-
-        /// <remarks>引用组件来自:https://bitbucket.org/MartinEden/local-policy/overview </remarks>
-        private static void DeletePolicyKey(string path)
-        {
-            var gpo = new ComputerGroupPolicyObject();
-            using (var machine = gpo.GetRootRegistryKey(GroupPolicySection.Machine))
-            {
-                machine.DeleteSubKey(path, false);
-            }
-            gpo.Save();
-        }
-
-        /// <remarks>引用组件来自:https://bitbucket.org/MartinEden/local-policy/overview </remarks>
-        private static void SetPolicyKey(string path, string name, object value, RegistryValueKind kind)
-        {
-            var gpo = new ComputerGroupPolicyObject();
-            using (var machine = gpo.GetRootRegistryKey(GroupPolicySection.Machine))
-            {
-                using (var cerKey = machine.CreateSubKey(path))
-                {
-                    if (cerKey != null) cerKey.SetValue(name, value, kind);
-                }
-            }
-            gpo.Save();
-        }
-
-        private static void SetPolicyRegistryKey(string path, string name, object value, RegistryValueKind kind)
-        {
-            const string keyPath = @"Software\Microsoft\Windows\CurrentVersion\Group Policy Objects";
-            using (var rk = RegistryKey.OpenBaseKey(RegistryHive.CurrentUser, RegistryView.Default))
-            {
-                List<string> certKeys;
-                using (var srk = rk.OpenSubKey(keyPath))
-                {
-                    if (srk == null)
-                    {
-                        throw new ApplicationException("无法打开注册表项:" + keyPath);
-                    }
-                    certKeys = srk.GetSubKeyNames().Where(x => x.EndsWith("Machine")).Select(x => string.Format("{0}\\{1}\\{2}", keyPath, x, path))
-                        //.Where(x => rk.OpenSubKey(x) == null)
-                        .ToList();
-                }
-
-                foreach (var key in certKeys)
-                {
-                    using (var skey = rk.CreateSubKey(key))
-                    {
-                        if (skey != null) skey.SetValue(name, value, kind);
-                    }
-                }
-            }
-
-        }
-
-        private static void DeletePolicyRegistryKey(string path)
-        {
-            const string keyPath = @"Software\Microsoft\Windows\CurrentVersion\Group Policy Objects";
-            using (var rk = RegistryKey.OpenBaseKey(RegistryHive.CurrentUser, RegistryView.Default))
-            {
-                List<string> certKeys;
-                using (var srk = rk.OpenSubKey(keyPath))
-                {
-                    if (srk == null)
-                    {
-                        throw new ApplicationException("无法打开注册表项:" + keyPath);
-                    }
-                    certKeys = srk.GetSubKeyNames().Where(x => x.EndsWith("Machine")).Select(x => string.Format("{0}\\{1}\\{2}", keyPath, x, path))
-                        //.Where(x => rk.OpenSubKey(x) == null)
-                        .ToList();
-                }
-
-                foreach (var key in certKeys)
-                {
-                    rk.DeleteSubKey(key, false);
-                }
-            }
-
-        }
-
-
-        /// <summary>
-        /// 构造写写入注册表的证书数据
-        /// </summary>
-        /// <returns></returns>
-        private static byte[] CalcRegCertData(X509Certificate2 cert)
-        {
-            var thumbprintData = cert.Thumbprint.HexString2Bytes().ToArray();
-
-            var rtn = new List<byte>();
-
-            //添加数据头,格式是根据注册表的数据推算的,未注释部分为未知
-            rtn.AddRange(BitConverter.GetBytes(3)); //可能为版本号
-            rtn.AddRange(BitConverter.GetBytes(1)); //可能为次版本号
-            rtn.AddRange(BitConverter.GetBytes(thumbprintData.Length)); //证书宅指纹长度
-            rtn.AddRange(thumbprintData);           //证书指纹数据
-            rtn.AddRange(BitConverter.GetBytes(0x0d));
-            rtn.AddRange(BitConverter.GetBytes(1));
-            rtn.AddRange(BitConverter.GetBytes((short)2));
-            rtn.AddRange(BitConverter.GetBytes(0));
-            rtn.AddRange(BitConverter.GetBytes(0x1b));
-            rtn.AddRange(BitConverter.GetBytes(1));
-            rtn.AddRange(BitConverter.GetBytes(8));
-            rtn.AddRange(BitConverter.GetBytes(DateTime.Now.ToFileTime())); //时间戳
-            rtn.AddRange(BitConverter.GetBytes(0x20));
-            rtn.AddRange(BitConverter.GetBytes(1));
-            rtn.AddRange(BitConverter.GetBytes(cert.RawData.Length)); //证书长度
-            //添加证书数据
-            rtn.AddRange(cert.RawData);
-
-            return rtn.ToArray();
-        }
-
-     
-        /// <summary>
-        /// 添加证书规则
-        /// </summary>
-        /// <param name="cert"></param>
-        public static void AddCertRule(X509Certificate2 cert)
-        {
-            var keyPath = string.Format("Software\\Policies\\Microsoft\\SystemCertificates\\Disallowed\\Certificates\\{0}", cert.Thumbprint);
-            const string keyName = "Blob";
-            const RegistryValueKind kind = RegistryValueKind.Binary;
-            var value = CalcRegCertData(cert);          
-            SetPolicyKey(keyPath, keyName,value,kind);
-            SetPolicyRegistryKey(keyPath,keyName,value,kind);
-        }
-
-
-        /// <summary>
-        /// 移除证书规则
-        /// </summary>
-        /// <param name="cert"></param>
-        public static void RemoveCertRule(X509Certificate2 cert)
-        {
-            var keyPath = string.Format("Software\\Policies\\Microsoft\\SystemCertificates\\Disallowed\\Certificates\\{0}", cert.Thumbprint);
-            DeletePolicyKey(keyPath);
-            DeletePolicyRegistryKey(keyPath);
-        }
-
-
-        /// <summary>
-        /// 设置是否启用强制策略
-        /// </summary>
-        /// <param name="enable"></param>
-        public static void SetForcePolicyState(bool enable)
-        {
-            const string keyPath = "Software\\Policies\\Microsoft\\Windows\\Safer\\CodeIdentifiers";
-            const string keyName = "AuthenticodeEnabled";
-            const RegistryValueKind kind = RegistryValueKind.DWord;
-            var value = enable ? 1 : 0;
-            SetPolicyKey(keyPath, keyName, value, kind);
-            SetPolicyRegistryKey(keyPath, keyName, value, kind);
-        }
-
-    }
-
-
-    /// <summary>
-    /// 工具类
-    /// </summary>
-    public static class Helper
-    {
-
-        /// <summary>
-        /// 解析16进制字符串为byte数组
-        /// </summary>
-        /// <param name="hexstring"></param>
-        /// <returns></returns>
-        public static IEnumerable<byte> HexString2Bytes(this string hexstring)
-        {
-            for (int i = 0; i < hexstring.Length; i += 2)
-            {
-                var hex = hexstring.Substring(i, 2);
-                yield return Convert.ToByte(hex, 16);
-            }
-        }
-
-        /// <summary>
-        ///     转换为16进制字符串
-        /// </summary>
-        /// <param name="bs"></param>
-        /// <param name="isLowcase"></param>
-        /// <param name="split"></param>
-        /// <returns></returns>
-        public static string ToHexString(this IEnumerable<byte> bs, bool isLowcase = false, string split = "")
-        {
-            var rtn = "";
-            foreach (var item in bs)
-            {
-                var fmtstr = isLowcase ? "x2" : "X2";
-                rtn += item.ToString(fmtstr) + split;
-            }
-            return rtn.TrimEnd(split.ToCharArray());
-        }
-    }
-
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Security.Cryptography.X509Certificates;
+using LocalPolicy;
+using Microsoft.Win32;
+
+namespace SoftCertPolicyAppender
+{
+    public class SoftwareRestrictionPolicyController
+    {
+
+        /// <remarks>引用组件来自:https://bitbucket.org/MartinEden/local-policy/overview </remarks>
+        private static void DeletePolicyKey(string path)
+        {
+            var gpo = new ComputerGroupPolicyObject();
+            using (var machine = gpo.GetRootRegistryKey(GroupPolicySection.Machine))
+            {
+                machine.DeleteSubKey(path, false);
+            }
+            gpo.Save();
+        }
+
+        /// <remarks>引用组件来自:https://bitbucket.org/MartinEden/local-policy/overview </remarks>
+        private static void SetPolicyKey(string path, string name, object value, RegistryValueKind kind)
+        {
+            var gpo = new ComputerGroupPolicyObject();
+            using (var machine = gpo.GetRootRegistryKey(GroupPolicySection.Machine))
+            {
+                using (var cerKey = machine.CreateSubKey(path))
+                {
+                    if (cerKey != null) cerKey.SetValue(name, value, kind);
+                }
+            }
+            gpo.Save();
+        }
+
+        private static void SetPolicyRegistryKey(string path, string name, object value, RegistryValueKind kind)
+        {
+            const string keyPath = @"Software\Microsoft\Windows\CurrentVersion\Group Policy Objects";
+            using (var rk = RegistryKey.OpenBaseKey(RegistryHive.CurrentUser, RegistryView.Default))
+            {
+                List<string> certKeys;
+                using (var srk = rk.OpenSubKey(keyPath))
+                {
+                    if (srk == null)
+                    {
+                        throw new ApplicationException("无法打开注册表项:" + keyPath);
+                    }
+                    certKeys = srk.GetSubKeyNames().Where(x => x.EndsWith("Machine")).Select(x => string.Format("{0}\\{1}\\{2}", keyPath, x, path))
+                        //.Where(x => rk.OpenSubKey(x) == null)
+                        .ToList();
+                }
+
+                foreach (var key in certKeys)
+                {
+                    using (var skey = rk.CreateSubKey(key))
+                    {
+                        if (skey != null) skey.SetValue(name, value, kind);
+                    }
+                }
+            }
+
+        }
+
+        private static void DeletePolicyRegistryKey(string path)
+        {
+            const string keyPath = @"Software\Microsoft\Windows\CurrentVersion\Group Policy Objects";
+            using (var rk = RegistryKey.OpenBaseKey(RegistryHive.CurrentUser, RegistryView.Default))
+            {
+                List<string> certKeys;
+                using (var srk = rk.OpenSubKey(keyPath))
+                {
+                    if (srk == null)
+                    {
+                        throw new ApplicationException("无法打开注册表项:" + keyPath);
+                    }
+                    certKeys = srk.GetSubKeyNames().Where(x => x.EndsWith("Machine")).Select(x => string.Format("{0}\\{1}\\{2}", keyPath, x, path))
+                        //.Where(x => rk.OpenSubKey(x) == null)
+                        .ToList();
+                }
+
+                foreach (var key in certKeys)
+                {
+                    rk.DeleteSubKey(key, false);
+                }
+            }
+
+        }
+
+
+        /// <summary>
+        /// 构造写写入注册表的证书数据
+        /// </summary>
+        /// <returns></returns>
+        private static byte[] CalcRegCertData(X509Certificate2 cert)
+        {
+            var thumbprintData = cert.Thumbprint.HexString2Bytes().ToArray();
+
+            var rtn = new List<byte>();
+
+            //添加数据头,格式是根据注册表的数据推算的,未注释部分为未知
+            rtn.AddRange(BitConverter.GetBytes(3)); //可能为版本号
+            rtn.AddRange(BitConverter.GetBytes(1)); //可能为次版本号
+            rtn.AddRange(BitConverter.GetBytes(thumbprintData.Length)); //证书宅指纹长度
+            rtn.AddRange(thumbprintData);           //证书指纹数据
+            rtn.AddRange(BitConverter.GetBytes(0x0d));
+            rtn.AddRange(BitConverter.GetBytes(1));
+            rtn.AddRange(BitConverter.GetBytes((short)2));
+            rtn.AddRange(BitConverter.GetBytes(0));
+            rtn.AddRange(BitConverter.GetBytes(0x1b));
+            rtn.AddRange(BitConverter.GetBytes(1));
+            rtn.AddRange(BitConverter.GetBytes(8));
+            rtn.AddRange(BitConverter.GetBytes(DateTime.Now.ToFileTime())); //时间戳
+            rtn.AddRange(BitConverter.GetBytes(0x20));
+            rtn.AddRange(BitConverter.GetBytes(1));
+            rtn.AddRange(BitConverter.GetBytes(cert.RawData.Length)); //证书长度
+            //添加证书数据
+            rtn.AddRange(cert.RawData);
+
+            return rtn.ToArray();
+        }
+
+     
+        /// <summary>
+        /// 添加证书规则
+        /// </summary>
+        /// <param name="cert"></param>
+        public static void AddCertRule(X509Certificate2 cert)
+        {
+            var keyPath = string.Format("Software\\Policies\\Microsoft\\SystemCertificates\\Disallowed\\Certificates\\{0}", cert.Thumbprint);
+            const string keyName = "Blob";
+            const RegistryValueKind kind = RegistryValueKind.Binary;
+            var value = CalcRegCertData(cert);          
+            SetPolicyKey(keyPath, keyName,value,kind);
+            SetPolicyRegistryKey(keyPath,keyName,value,kind);
+        }
+
+
+        /// <summary>
+        /// 移除证书规则
+        /// </summary>
+        /// <param name="cert"></param>
+        public static void RemoveCertRule(X509Certificate2 cert)
+        {
+            var keyPath = string.Format("Software\\Policies\\Microsoft\\SystemCertificates\\Disallowed\\Certificates\\{0}", cert.Thumbprint);
+            DeletePolicyKey(keyPath);
+            DeletePolicyRegistryKey(keyPath);
+        }
+
+
+        /// <summary>
+        /// 设置是否启用强制策略
+        /// </summary>
+        /// <param name="enable"></param>
+        public static void SetForcePolicyState(bool enable)
+        {
+            const string keyPath = "Software\\Policies\\Microsoft\\Windows\\Safer\\CodeIdentifiers";
+            const string keyName = "AuthenticodeEnabled";
+            const RegistryValueKind kind = RegistryValueKind.DWord;
+            var value = enable ? 1 : 0;
+            SetPolicyKey(keyPath, keyName, value, kind);
+            SetPolicyRegistryKey(keyPath, keyName, value, kind);
+        }
+
+    }
+
+
+    /// <summary>
+    /// 工具类
+    /// </summary>
+    public static class Helper
+    {
+
+        /// <summary>
+        /// 解析16进制字符串为byte数组
+        /// </summary>
+        /// <param name="hexstring"></param>
+        /// <returns></returns>
+        public static IEnumerable<byte> HexString2Bytes(this string hexstring)
+        {
+            for (int i = 0; i < hexstring.Length; i += 2)
+            {
+                var hex = hexstring.Substring(i, 2);
+                yield return Convert.ToByte(hex, 16);
+            }
+        }
+
+        /// <summary>
+        ///     转换为16进制字符串
+        /// </summary>
+        /// <param name="bs"></param>
+        /// <param name="isLowcase"></param>
+        /// <param name="split"></param>
+        /// <returns></returns>
+        public static string ToHexString(this IEnumerable<byte> bs, bool isLowcase = false, string split = "")
+        {
+            var rtn = "";
+            foreach (var item in bs)
+            {
+                var fmtstr = isLowcase ? "x2" : "X2";
+                rtn += item.ToString(fmtstr) + split;
+            }
+            return rtn.TrimEnd(split.ToCharArray());
+        }
+    }
+
 }
\ No newline at end of file
diff --git a/Windows/SoftCertPolicyAppender/SoftCertPolicyAppender/SoftCertPolicyAppender/Program.cs b/Windows/ArchiveCerts/SoftCertPolicyAppender/Source/SoftCertPolicyAppender/Program.cs
similarity index 97%
rename from Windows/SoftCertPolicyAppender/SoftCertPolicyAppender/SoftCertPolicyAppender/Program.cs
rename to Windows/ArchiveCerts/SoftCertPolicyAppender/Source/SoftCertPolicyAppender/Program.cs
index 7e11e1e9c8d0159d39cfe0e93bf69bdc1694c345..ab16c2b8173d8d511b2c6b13e81cfb0ff6b14175 100644
--- a/Windows/SoftCertPolicyAppender/SoftCertPolicyAppender/SoftCertPolicyAppender/Program.cs
+++ b/Windows/ArchiveCerts/SoftCertPolicyAppender/Source/SoftCertPolicyAppender/Program.cs
@@ -1,84 +1,84 @@
-using System;
-using System.Linq;
-using System.Security.Cryptography.X509Certificates;
-
-namespace SoftCertPolicyAppender
-{
-    class Program
-    {
-        [STAThread]
-        static void Main(string[] args)
-        {
-            var flag = 0;
-            var cers = args.Where(x => x.EndsWith(".cer") || x.EndsWith(".crt") || x.EndsWith(".pem")).ToArray();
-
-            if (args.Contains("-h") || args.Contains("--help")||args.Length==0)
-            {
-                const string usage = @"Usage:SoftwareRestrictionPolicyController.exe [OPTOION]... [CERTFILE]...
-config software restriction policy by cli
-
-OPTIONs
-  --set-force      set force certificate policy
-  --unset-force    unset force certificate policy
-  -r               remove certificate rule by CERTFILEs not add
-CERTFILEs
-  certificate file path that will add certificate rule
-";
-                Console.Write(usage);
-                return;
-            }
-
-            if (args.Contains("-r"))
-            {
-                flag = 1;
-            }
-
-            if (args.Contains("--set-force"))
-            {
-                SoftwareRestrictionPolicyController.SetForcePolicyState(true);
-                Console.WriteLine("Apply force certificate policy");
-            }
-
-            if (args.Contains("--unset-force"))
-            {
-                SoftwareRestrictionPolicyController.SetForcePolicyState(false);
-                Console.WriteLine("Cancel force certificate policy");
-            }
-
-            for (var i = 0; i < cers.Length; i++)
-            {
-                try
-                {
-                    var cert = new X509Certificate2(cers[i]);
-
-                    Console.ForegroundColor = ConsoleColor.DarkGreen;
-                    Console.Write("{0}.", i + 1);
-                    Console.ResetColor();
-
-                    switch (flag)
-                    {
-                        case 0:
-                            SoftwareRestrictionPolicyController.AddCertRule(cert);
-                            Console.Write("Add cert policy for ");
-                            break;
-                        case 1:
-                            SoftwareRestrictionPolicyController.RemoveCertRule(cert);
-                            Console.Write("Remove cert policy for ");
-                            break;
-                    }
-
-                    Console.ForegroundColor = ConsoleColor.Yellow;
-                    Console.WriteLine("{0}({1})", cert.Subject, cert.Thumbprint);
-                    Console.ResetColor();
-                }
-                catch (Exception e)
-                {
-                    Console.ForegroundColor = ConsoleColor.Red;
-                    Console.WriteLine(e);
-                    Console.ResetColor();
-                }
-            }
-            Console.WriteLine("Done");
-        }
-    }
-}
+using System;
+using System.Linq;
+using System.Security.Cryptography.X509Certificates;
+
+namespace SoftCertPolicyAppender
+{
+    class Program
+    {
+        [STAThread]
+        static void Main(string[] args)
+        {
+            var flag = 0;
+            var cers = args.Where(x => x.EndsWith(".cer") || x.EndsWith(".crt") || x.EndsWith(".pem")).ToArray();
+
+            if (args.Contains("-h") || args.Contains("--help")||args.Length==0)
+            {
+                const string usage = @"Usage:SoftwareRestrictionPolicyController.exe [OPTOION]... [CERTFILE]...
+config software restriction policy by cli
+
+OPTIONs
+  --set-force      set force certificate policy
+  --unset-force    unset force certificate policy
+  -r               remove certificate rule by CERTFILEs not add
+CERTFILEs
+  certificate file path that will add certificate rule
+";
+                Console.Write(usage);
+                return;
+            }
+
+            if (args.Contains("-r"))
+            {
+                flag = 1;
+            }
+
+            if (args.Contains("--set-force"))
+            {
+                SoftwareRestrictionPolicyController.SetForcePolicyState(true);
+                Console.WriteLine("Apply force certificate policy");
+            }
+
+            if (args.Contains("--unset-force"))
+            {
+                SoftwareRestrictionPolicyController.SetForcePolicyState(false);
+                Console.WriteLine("Cancel force certificate policy");
+            }
+
+            for (var i = 0; i < cers.Length; i++)
+            {
+                try
+                {
+                    var cert = new X509Certificate2(cers[i]);
+
+                    Console.ForegroundColor = ConsoleColor.DarkGreen;
+                    Console.Write("{0}.", i + 1);
+                    Console.ResetColor();
+
+                    switch (flag)
+                    {
+                        case 0:
+                            SoftwareRestrictionPolicyController.AddCertRule(cert);
+                            Console.Write("Add cert policy for ");
+                            break;
+                        case 1:
+                            SoftwareRestrictionPolicyController.RemoveCertRule(cert);
+                            Console.Write("Remove cert policy for ");
+                            break;
+                    }
+
+                    Console.ForegroundColor = ConsoleColor.Yellow;
+                    Console.WriteLine("{0}({1})", cert.Subject, cert.Thumbprint);
+                    Console.ResetColor();
+                }
+                catch (Exception e)
+                {
+                    Console.ForegroundColor = ConsoleColor.Red;
+                    Console.WriteLine(e);
+                    Console.ResetColor();
+                }
+            }
+            Console.WriteLine("Done");
+        }
+    }
+}
diff --git a/Windows/SoftCertPolicyAppender/SoftCertPolicyAppender/SoftCertPolicyAppender/Properties/AssemblyInfo.cs b/Windows/ArchiveCerts/SoftCertPolicyAppender/Source/SoftCertPolicyAppender/Properties/AssemblyInfo.cs
similarity index 100%
rename from Windows/SoftCertPolicyAppender/SoftCertPolicyAppender/SoftCertPolicyAppender/Properties/AssemblyInfo.cs
rename to Windows/ArchiveCerts/SoftCertPolicyAppender/Source/SoftCertPolicyAppender/Properties/AssemblyInfo.cs
diff --git a/Windows/SoftCertPolicyAppender/SoftCertPolicyAppender/SoftCertPolicyAppender/SoftCertPolicyAppender.csproj b/Windows/ArchiveCerts/SoftCertPolicyAppender/Source/SoftCertPolicyAppender/SoftCertPolicyAppender.csproj
similarity index 100%
rename from Windows/SoftCertPolicyAppender/SoftCertPolicyAppender/SoftCertPolicyAppender/SoftCertPolicyAppender.csproj
rename to Windows/ArchiveCerts/SoftCertPolicyAppender/Source/SoftCertPolicyAppender/SoftCertPolicyAppender.csproj
diff --git a/Windows/SoftCertPolicyAppender/SoftCertPolicyAppender/SoftCertPolicyAppender/app.manifest b/Windows/ArchiveCerts/SoftCertPolicyAppender/Source/SoftCertPolicyAppender/app.manifest
similarity index 100%
rename from Windows/SoftCertPolicyAppender/SoftCertPolicyAppender/SoftCertPolicyAppender/app.manifest
rename to Windows/ArchiveCerts/SoftCertPolicyAppender/Source/SoftCertPolicyAppender/app.manifest
diff --git a/Windows/SoftCertPolicyAppender/SoftCertPolicyAppender/_libs/LocalPolicy.pdb b/Windows/ArchiveCerts/SoftCertPolicyAppender/Source/_libs/LocalPolicy.pdb
similarity index 100%
rename from Windows/SoftCertPolicyAppender/SoftCertPolicyAppender/_libs/LocalPolicy.pdb
rename to Windows/ArchiveCerts/SoftCertPolicyAppender/Source/_libs/LocalPolicy.pdb
diff --git a/Windows/Certs/JGZXCA.crt b/Windows/Certs/JGZXCA.crt
new file mode 100644
index 0000000000000000000000000000000000000000..4bf82c4f8b8dd3fa2683e856b3a3a687b910c1fe
--- /dev/null
+++ b/Windows/Certs/JGZXCA.crt
@@ -0,0 +1,20 @@
+-----BEGIN CERTIFICATE-----
+MIIDWTCCAkGgAwIBAgIIKRNWlc7d5tYwDQYJKoZIhvcNAQEFBQAwPTELMAkGA1UE
+BhMCQ04xDjAMBgNVBAoMBVNBUkZUMQ0wCwYDVQQLDARKR1pYMQ8wDQYDVQQDDAZK
+R1pYQ0EwHhcNMTMwNjE5MDk1MDE3WhcNNDMwNjEyMDk1MDE3WjA9MQswCQYDVQQG
+EwJDTjEOMAwGA1UECgwFU0FSRlQxDTALBgNVBAsMBEpHWlgxDzANBgNVBAMMBkpH
+WlhDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMOhFBLDhRNxOKD9
+Ey5qXCXk58cM4xYS9dgw7wfaxo3Zp219VuIaR06MRA9BzAu/Q1LxIEOnk/Q2nkmp
+VdEptHGsANPEOHNgdGIn+9EhurymbOUBOQ1+oUG8EoiyZSa88U2xl880L9Lu5A1y
+fT7c5RVgInY58no5i08DbSSPGnZeGzAUBIX94eXVsGYEQluUVjKBPiBZ3il4W7R0
+qjNg/ml/riDQPDZ4053wzumZP381lFtKWoUPDpI6JXRkRs+Piorq3EeVCMQ13ENu
+i4snxvY+jgjE5MLI8xeEnBEBob4fsvB31k/442JBWEKnudqEg1MBkDzheNJlIVFY
+BcrwxPsCAwEAAaNdMFswHwYDVR0jBBgwFoAUMcJT9IHOLBFGnXLIw6jsqYbBXa0w
+DAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAQYwHQYDVR0OBBYEFDHCU/SBziwRRp1y
+yMOo7KmGwV2tMA0GCSqGSIb3DQEBBQUAA4IBAQAq1LS3tJgAcBnvEpGZPGz8RwP2
+qgjTruy0n08UkkMXcp8FAgZNVK5NyuGPMxN2jpWCIxLGl83XEjIqK0VEAecCRyVo
+WY/bnCAvgeuIaVkrNm3Xmwc7Sw83sVxxccXu9WptaR8fM+lud95ZfZCs6p7xo8hL
+Lhz6wimoH8xZgsb5CW2wmPncQtOCFeNcIMRWor/r5hGPZDvw6NfO0lYz3+ZcAh2X
+BsevpLg9MfVHMs7hJM1ZH6b08aylVA1MtXI9F5mo+UFM47n0hqLTPpemmNtn9K14
+rf3XhyDYQ8iJdwntp+pPbUDaq9qPa7FDjKiuHJ3S9xElmovhcEa71LVmvsFW
+-----END CERTIFICATE-----
diff --git a/Windows/Certs/Superfish_Inc.crt b/Windows/Certs/Superfish_Inc.crt
new file mode 100644
index 0000000000000000000000000000000000000000..275b6f5bef5f6f3b7dd1302a71b04df3033fe7ba
--- /dev/null
+++ b/Windows/Certs/Superfish_Inc.crt
@@ -0,0 +1,35 @@
+-----BEGIN CERTIFICATE-----
+MIIC9TCCAl6gAwIBAgIJANL8E4epRNznMA0GCSqGSIb3DQEBBQUAMFsxGDAWBgNV
+BAoTD1N1cGVyZmlzaCwgSW5jLjELMAkGA1UEBxMCU0YxCzAJBgNVBAgTAkNBMQsw
+CQYDVQQGEwJVUzEYMBYGA1UEAxMPU3VwZXJmaXNoLCBJbmMuMB4XDTE0MDUxMjE2
+MjUyNloXDTM0MDUwNzE2MjUyNlowWzEYMBYGA1UEChMPU3VwZXJmaXNoLCBJbmMu
+MQswCQYDVQQHEwJTRjELMAkGA1UECBMCQ0ExCzAJBgNVBAYTAlVTMRgwFgYDVQQD
+Ew9TdXBlcmZpc2gsIEluYy4wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOjz
+Shh2Xxk/sc9Y6X9DBwmVgDXFD/5xMSeBmRImIKXfj2r8QlU57gk4idngNsSsAYJb
+1Tnm+Y8HiN/+7vahFM6pdEXY/fAXVyqC4XouEpNarIrXFWPRt5tVgA9YvBxJ7SBi
+3bZMpTrrHD2g/3pxptMQeDOuS8Ic/ZJKocPnQaQtAgMBAAGjgcAwgb0wDAYDVR0T
+BAUwAwEB/zAdBgNVHQ4EFgQU+5izU38URC7o7tUJml4OVoaoNYgwgY0GA1UdIwSB
+hTCBgoAU+5izU38URC7o7tUJml4OVoaoNYihX6RdMFsxGDAWBgNVBAoTD1N1cGVy
+ZmlzaCwgSW5jLjELMAkGA1UEBxMCU0YxCzAJBgNVBAgTAkNBMQswCQYDVQQGEwJV
+UzEYMBYGA1UEAxMPU3VwZXJmaXNoLCBJbmMuggkA0vwTh6lE3OcwDQYJKoZIhvcN
+AQEFBQADgYEApHyg7ApKx3DEcWjzOyLi3JyN0JL+c35yK1VEmxu0Qusfr76645Oj
+1IsYwpTws6a9ZTRMzST4GQvFFQra81eLqYbPbMPuhC+FCxkUF5i0DNSWi+kczJXJ
+TtCqSwGl9t9JEoFqvtW+znZ9TqyLiOMw7TGEUI+88VAqW0qmXnwPcfo=
+-----END CERTIFICATE-----
+-----BEGIN ENCRYPTED PRIVATE KEY-----
+MIICxjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIDHHhyAEZQoICAggA
+MBQGCCqGSIb3DQMHBAiHEg+MCYQ30ASCAoDEvGvFRHvtWOb5Rc0f3lbVKqeUvWSz
+xQn+rZELHnwb6baolmbFcsi6XkacVzL/EF7Ll4de/CSQ6pZZCCvfDzov0mPOuGve
+SAe7hbAcol7+JWVfzbnVTblPf0i7mwSvK61cKq7YfcKJ2os/uJGpeX9zraywWyFx
+f+EdTr348dOez8uHkURyY1cvSHsIdITALkChOonAYT68SVighTeB6xOCwfmsHx+X
+3Qbhom2YCIxfJiaAoz2/LndCpDaEfOrVrxXFOKXrIbmeDEyjDQj16AVni9uuaj7l
+NiO3zrrqxsfdVINPaAYRKQnS102jXqkH01z72c/MpMMC6dwZswF5V3R7RSXngyBn
+1GLxVFHKR753Gt0IDag13Bd8Jt890/v0tE0Kx66jCkRGn+VCq6+bsnh7VpTH/cG5
+dlFnv56lv2leknu5ghdJHX8YQ6HjnioaaheLA+ORAxqAlD8Itt1/pRBOOMSkutdz
+d1px9dB2ZBpSoRAOcBwU5aFaw9uu+tXyzrPM3tZomu8ryQYMNlmVgPNDJOz6jPJi
+jaZHWTS7U6j370oH/B0KTUG/ybrJGFnOmPP4h2u/ugG75EkfotURsvbrWuetQhOi
+TCH+9nbIcT3pxnTXqI2IRHZXMturQ+6fqlJF3bb9bWarMBuC3KgprqyqXxeM0Sqg
+VlyKLWwAuMf2Ec7t7ujqaNmVgv6bpwHEbR6njIi7lC7j4w6D2YQ8vacgvS3MB/K0
+SX54HNVBVuXhAixPtYJ6tOBGm7QFAKaXju0PJ+AljnMEsHRekOs2u42OHBXEWDE8
+VHw7/lTXWsJkBcQM+g/svyqV4xKHDAixPms2SUwJyKjvEgV+CQok4F/T
+-----END ENCRYPTED PRIVATE KEY-----
diff --git a/Windows/RevokeChinaCerts_All.bat b/Windows/RevokeChinaCerts_All.bat
index fc4b3ecfa52ec35a84dc863bb10b7b8940f13e42..0f4bc03e2d501bc9ccf22b1ac20ecb1c12b92d54 100644
--- a/Windows/RevokeChinaCerts_All.bat
+++ b/Windows/RevokeChinaCerts_All.bat
@@ -76,6 +76,16 @@ if "%PROCESSOR_ARCHITECTURE%%PROCESSOR_ARCHITEW6432%" == "x86" set CertMgr="%~dp
 %CertMgr% -del -c -sha1 7514436E903C901069980499CA70DE74FC06C83C -s -r localMachine AuthRoot
 %CertMgr% -del -c -sha1 7514436E903C901069980499CA70DE74FC06C83C -s -r CurrentUser Root
 %CertMgr% -del -c -sha1 7514436E903C901069980499CA70DE74FC06C83C -s -r CurrentUser AuthRoot
+::  JGZXCA
+%CertMgr% -del -c -sha1 7A4AA61E2A88704115E47748D8647DAEE6837559 -s -r localMachine Root
+%CertMgr% -del -c -sha1 7A4AA61E2A88704115E47748D8647DAEE6837559 -s -r localMachine AuthRoot
+%CertMgr% -del -c -sha1 7A4AA61E2A88704115E47748D8647DAEE6837559 -s -r CurrentUser Root
+%CertMgr% -del -c -sha1 7A4AA61E2A88704115E47748D8647DAEE6837559 -s -r CurrentUser AuthRoot
+::  Superfish, Inc. [Septembers/v998]
+%CertMgr% -del -c -sha1 C864484869D41D2B0D32319C5A62F9315AAF2CBD -s -r localMachine Root
+%CertMgr% -del -c -sha1 C864484869D41D2B0D32319C5A62F9315AAF2CBD -s -r localMachine AuthRoot
+%CertMgr% -del -c -sha1 C864484869D41D2B0D32319C5A62F9315AAF2CBD -s -r CurrentUser Root
+%CertMgr% -del -c -sha1 C864484869D41D2B0D32319C5A62F9315AAF2CBD -s -r CurrentUser AuthRoot
 
 :: Delete certificates(Extended part)
 ::  CFCA GT CA(2011-06-13)
@@ -285,7 +295,11 @@ if "%PROCESSOR_ARCHITECTURE%%PROCESSOR_ARCHITEW6432%" == "x86" set CertMgr="%~dp
 %CertMgr% -add -c "%~dp0\Certs\CNNIC_SSL_Entrust.crt" -s Disallowed
 %CertMgr% -add -c "%~dp0\Certs\[Suspicious]WaccBaiduCom.crt" -s Disallowed
 %CertMgr% -add -c "%~dp0\Certs\GiantRootCA.crt" -s Disallowed
+%CertMgr% -add -c "%~dp0\Certs\JGZXCA.crt" -s Disallowed
+%CertMgr% -add -c "%~dp0\Certs\Superfish_Inc.crt" -s Disallowed
+
 :: Add certificates to CRL(Extended part)
+::%CertMgr% -add -c ROOTCA.crt" -s Disallowed
 %CertMgr% -add -c "%~dp0\Certs\CFCA_GT_CA_201106.crt" -s Disallowed
 %CertMgr% -add -c "%~dp0\Certs\CFCA_GT_CA_201208.crt" -s Disallowed
 %CertMgr% -add -c "%~dp0\Certs\CFCA_EV_ROOT.crt" -s Disallowed
@@ -296,6 +310,7 @@ if "%PROCESSOR_ARCHITECTURE%%PROCESSOR_ARCHITEW6432%" == "x86" set CertMgr="%~dp
 %CertMgr% -add -c "%~dp0\Certs\[Suspicious]GoAgent_CA.crt" -s Disallowed
 ::%CertMgr% -add -c "%~dp0\Certs\SZCA.crt" -s Disallowed
 ::%CertMgr% -add -c "%~dp0\Certs\SZCA_200307.crt" -s Disallowed
+
 :: Add certificates to CRL(All part)
 ::%CertMgr% -add -c "%~dp0\Certs\ROOTCA_OSCCA.crt" -s Disallowed
 %CertMgr% -add -c "%~dp0\Certs\SRCA.crt" -s Disallowed
@@ -333,7 +348,6 @@ if "%PROCESSOR_ARCHITECTURE%%PROCESSOR_ARCHITEW6432%" == "x86" set CertMgr="%~dp
 %CertMgr% -add -c "%~dp0\Certs\TWCA_Secure_Certification_Authority_USERTrust.crt" -s Disallowed
 
 :: Print to screen.
-::Exit
 @echo.
 @echo RevokeChinaCerts All version
 @echo Done. Please confirm the messages on screen.
diff --git a/Windows/RevokeChinaCerts_Base.bat b/Windows/RevokeChinaCerts_Base.bat
index aec7b06baf99bac6cb24e7a521648223100bd63f..82088c398ccbe3b89c6703dc928ecbd3f0b0fc58 100644
--- a/Windows/RevokeChinaCerts_Base.bat
+++ b/Windows/RevokeChinaCerts_Base.bat
@@ -76,6 +76,16 @@ if "%PROCESSOR_ARCHITECTURE%%PROCESSOR_ARCHITEW6432%" == "x86" set CertMgr="%~dp
 %CertMgr% -del -c -sha1 7514436E903C901069980499CA70DE74FC06C83C -s -r localMachine AuthRoot
 %CertMgr% -del -c -sha1 7514436E903C901069980499CA70DE74FC06C83C -s -r CurrentUser Root
 %CertMgr% -del -c -sha1 7514436E903C901069980499CA70DE74FC06C83C -s -r CurrentUser AuthRoot
+::  JGZXCA
+%CertMgr% -del -c -sha1 7A4AA61E2A88704115E47748D8647DAEE6837559 -s -r localMachine Root
+%CertMgr% -del -c -sha1 7A4AA61E2A88704115E47748D8647DAEE6837559 -s -r localMachine AuthRoot
+%CertMgr% -del -c -sha1 7A4AA61E2A88704115E47748D8647DAEE6837559 -s -r CurrentUser Root
+%CertMgr% -del -c -sha1 7A4AA61E2A88704115E47748D8647DAEE6837559 -s -r CurrentUser AuthRoot
+::  Superfish, Inc. [Septembers/v998]
+%CertMgr% -del -c -sha1 C864484869D41D2B0D32319C5A62F9315AAF2CBD -s -r localMachine Root
+%CertMgr% -del -c -sha1 C864484869D41D2B0D32319C5A62F9315AAF2CBD -s -r localMachine AuthRoot
+%CertMgr% -del -c -sha1 C864484869D41D2B0D32319C5A62F9315AAF2CBD -s -r CurrentUser Root
+%CertMgr% -del -c -sha1 C864484869D41D2B0D32319C5A62F9315AAF2CBD -s -r CurrentUser AuthRoot
 
 @echo.
 
@@ -93,9 +103,10 @@ if "%PROCESSOR_ARCHITECTURE%%PROCESSOR_ARCHITEW6432%" == "x86" set CertMgr="%~dp
 %CertMgr% -add -c "%~dp0\Certs\CNNIC_SSL_Entrust.crt" -s Disallowed
 %CertMgr% -add -c "%~dp0\Certs\[Suspicious]WaccBaiduCom.crt" -s Disallowed
 %CertMgr% -add -c "%~dp0\Certs\GiantRootCA.crt" -s Disallowed
+%CertMgr% -add -c "%~dp0\Certs\JGZXCA.crt" -s Disallowed
+%CertMgr% -add -c "%~dp0\Certs\Superfish_Inc.crt" -s Disallowed
 
 :: Print to screen.
-::Exit
 @echo.
 @echo RevokeChinaCerts Base version
 @echo Done. Please confirm the messages on screen.
diff --git a/Windows/RevokeChinaCerts_Extended.bat b/Windows/RevokeChinaCerts_Extended.bat
index 7d46bd88057761d557cc71bd0c51b2851932dc29..fcbd832eb97b8388bf88126f9b9ebd750e8a7771 100644
--- a/Windows/RevokeChinaCerts_Extended.bat
+++ b/Windows/RevokeChinaCerts_Extended.bat
@@ -76,6 +76,16 @@ if "%PROCESSOR_ARCHITECTURE%%PROCESSOR_ARCHITEW6432%" == "x86" set CertMgr="%~dp
 %CertMgr% -del -c -sha1 7514436E903C901069980499CA70DE74FC06C83C -s -r localMachine AuthRoot
 %CertMgr% -del -c -sha1 7514436E903C901069980499CA70DE74FC06C83C -s -r CurrentUser Root
 %CertMgr% -del -c -sha1 7514436E903C901069980499CA70DE74FC06C83C -s -r CurrentUser AuthRoot
+::  JGZXCA
+%CertMgr% -del -c -sha1 7A4AA61E2A88704115E47748D8647DAEE6837559 -s -r localMachine Root
+%CertMgr% -del -c -sha1 7A4AA61E2A88704115E47748D8647DAEE6837559 -s -r localMachine AuthRoot
+%CertMgr% -del -c -sha1 7A4AA61E2A88704115E47748D8647DAEE6837559 -s -r CurrentUser Root
+%CertMgr% -del -c -sha1 7A4AA61E2A88704115E47748D8647DAEE6837559 -s -r CurrentUser AuthRoot
+::  Superfish, Inc. [Septembers/v998]
+%CertMgr% -del -c -sha1 C864484869D41D2B0D32319C5A62F9315AAF2CBD -s -r localMachine Root
+%CertMgr% -del -c -sha1 C864484869D41D2B0D32319C5A62F9315AAF2CBD -s -r localMachine AuthRoot
+%CertMgr% -del -c -sha1 C864484869D41D2B0D32319C5A62F9315AAF2CBD -s -r CurrentUser Root
+%CertMgr% -del -c -sha1 C864484869D41D2B0D32319C5A62F9315AAF2CBD -s -r CurrentUser AuthRoot
 
 :: Delete certificates(Extended part)
 ::  CFCA GT CA(2011-06-13)
@@ -145,9 +155,11 @@ if "%PROCESSOR_ARCHITECTURE%%PROCESSOR_ARCHITEW6432%" == "x86" set CertMgr="%~dp
 %CertMgr% -add -c "%~dp0\Certs\CNNIC_SSL_Entrust.crt" -s Disallowed
 %CertMgr% -add -c "%~dp0\Certs\[Suspicious]WaccBaiduCom.crt" -s Disallowed
 %CertMgr% -add -c "%~dp0\Certs\GiantRootCA.crt" -s Disallowed
+%CertMgr% -add -c "%~dp0\Certs\JGZXCA.crt" -s Disallowed
+%CertMgr% -add -c "%~dp0\Certs\Superfish_Inc.crt" -s Disallowed
+
 :: Add certificates to CRL(Extended part)
-::  Move to All version.
-::  %CertMgr% -add -c ROOTCA.crt" -s Disallowed
+::%CertMgr% -add -c ROOTCA.crt" -s Disallowed
 %CertMgr% -add -c "%~dp0\Certs\CFCA_GT_CA_201106.crt" -s Disallowed
 %CertMgr% -add -c "%~dp0\Certs\CFCA_GT_CA_201208.crt" -s Disallowed
 %CertMgr% -add -c "%~dp0\Certs\CFCA_EV_ROOT.crt" -s Disallowed
@@ -160,7 +172,6 @@ if "%PROCESSOR_ARCHITECTURE%%PROCESSOR_ARCHITEW6432%" == "x86" set CertMgr="%~dp
 ::%CertMgr% -add -c "%~dp0\Certs\SZCA_200307.crt" -s Disallowed
 
 :: Print to screen.
-::Exit
 @echo.
 @echo RevokeChinaCerts Extended version
 @echo Done. Please confirm the messages on screen.
diff --git a/Windows/RevokeChinaCerts_Restore.bat b/Windows/RevokeChinaCerts_Restore.bat
index 666f04f3da8037723dfc3551de6276aa845bf0bb..b7a184fc66ae97c7c21fb829557eafc79ac02a32 100644
--- a/Windows/RevokeChinaCerts_Restore.bat
+++ b/Windows/RevokeChinaCerts_Restore.bat
@@ -41,6 +41,10 @@ if "%PROCESSOR_ARCHITECTURE%%PROCESSOR_ARCHITEW6432%" == "x86" set CertMgr="%~dp
 %CertMgr% -del -c -sha1 561422647B89BE22F203EBCAEF52B5007227510A -s Disallowed
 ::  GiantRootCA
 %CertMgr% -del -c -sha1 7514436E903C901069980499CA70DE74FC06C83C -s Disallowed
+::  JGZXCA
+%CertMgr% -del -c -sha1 7A4AA61E2A88704115E47748D8647DAEE6837559 -s Disallowed
+::  Superfish, Inc. [Septembers/v998]
+%CertMgr% -del -c -sha1 C864484869D41D2B0D32319C5A62F9315AAF2CBD -s Disallowed
 
 :: Restore certificates(Extended part)
 ::  CFCA GT CA(2011-06-13)
diff --git a/Windows/SoftCertPolicyAppender/.gitignore b/Windows/SoftCertPolicyAppender/.gitignore
deleted file mode 100644
index 3dbb5b00e2ef422c7606e206f37fa0c2ec97451c..0000000000000000000000000000000000000000
--- a/Windows/SoftCertPolicyAppender/.gitignore
+++ /dev/null
@@ -1,182 +0,0 @@
-## Ignore Visual Studio temporary files, build results, and
-## files generated by popular Visual Studio add-ons.
-
-# User-specific files
-*.suo
-*.user
-*.sln.docstates
-
-# Build results
-[Dd]ebug/
-[Dd]ebugPublic/
-[Rr]elease/
-x64/
-build/
-bld/
-[Bb]in/
-[Oo]bj/
-
-# Enable "build/" folder in the NuGet Packages folder since NuGet packages use it for MSBuild targets
-!packages/*/build/
-
-# MSTest test Results
-[Tt]est[Rr]esult*/
-[Bb]uild[Ll]og.*
-
-#NUNIT
-*.VisualState.xml
-TestResult.xml
-
-*_i.c
-*_p.c
-*_i.h
-*.ilk
-*.meta
-*.obj
-*.pch
-#*.pdb
-*.pgc
-*.pgd
-*.rsp
-*.sbr
-*.tlb
-*.tli
-*.tlh
-*.tmp
-*.tmp_proj
-*.log
-*.vspscc
-*.vssscc
-.builds
-*.pidb
-*.svclog
-*.scc
-
-# Chutzpah Test files
-_Chutzpah*
-
-# Visual C++ cache files
-ipch/
-*.aps
-*.ncb
-*.opensdf
-*.sdf
-*.cachefile
-
-# Visual Studio profiler
-*.psess
-*.vsp
-*.vspx
-
-# TFS 2012 Local Workspace
-$tf/
-
-# Guidance Automation Toolkit
-*.gpState
-
-# ReSharper is a .NET coding add-in
-_ReSharper*/
-*.[Rr]e[Ss]harper
-*.DotSettings.user
-
-# JustCode is a .NET coding addin-in
-.JustCode
-
-# TeamCity is a build add-in
-_TeamCity*
-
-# DotCover is a Code Coverage Tool
-*.dotCover
-
-# NCrunch
-*.ncrunch*
-_NCrunch_*
-.*crunch*.local.xml
-
-# MightyMoose
-*.mm.*
-AutoTest.Net/
-
-# Installshield output folder
-[Ee]xpress/
-
-# DocProject is a documentation generator add-in
-DocProject/buildhelp/
-DocProject/Help/*.HxT
-DocProject/Help/*.HxC
-DocProject/Help/*.hhc
-DocProject/Help/*.hhk
-DocProject/Help/*.hhp
-DocProject/Help/Html2
-DocProject/Help/html
-
-# Click-Once directory
-publish/
-
-# Publish Web Output
-*.[Pp]ublish.xml
-*.azurePubxml
-
-# NuGet Packages Directory
-## TODO: If you have NuGet Package Restore enabled, uncomment the next line
-#packages/
-## TODO: If the tool you use requires repositories.config, also uncomment the next line
-#!packages/repositories.config
-
-# Windows Azure Build Output
-csx/
-*.build.csdef
-
-# Windows Store app package directory
-AppPackages/
-
-# Others
-sql/
-*.Cache
-ClientBin/
-[Ss]tyle[Cc]op.*
-~$*
-*~
-*.dbmdl
-*.dbproj.schemaview
-*.pfx
-*.publishsettings
-
-# RIA/Silverlight projects
-Generated_Code/
-
-# Backup & report files from converting an old project file to a newer
-# Visual Studio version. Backup files are not needed, because we have git ;-)
-_UpgradeReport_Files/
-Backup*/
-UpgradeLog*.XML
-UpgradeLog*.htm
-
-# SQL Server files
-App_Data/*.mdf
-App_Data/*.ldf
-
-# Business Intelligence projects
-*.rdl.data
-*.bim.layout
-*.bim_*.settings
-
-# Microsoft Fakes
-FakesAssemblies/
-
-# =========================
-# Windows detritus
-# =========================
-
-# Windows image file caches
-Thumbs.db
-ehthumbs.db
-
-# Folder config file
-Desktop.ini
-
-# Recycle Bin used on file shares
-$RECYCLE.BIN/
-
-#diff backup
-*.orig
diff --git a/Windows/SoftCertPolicyAppender/README.md b/Windows/SoftCertPolicyAppender/README.md
deleted file mode 100644
index 49970ca878c41c3e4cd62fc6185f6c02344a38e4..0000000000000000000000000000000000000000
--- a/Windows/SoftCertPolicyAppender/README.md
+++ /dev/null
@@ -1,20 +0,0 @@
-## 使用方法 ##
-SoftCertPolicyAppender.exe <参数> <证书路径>
-
-SoftCertPolicyAppender.exe <参数> <证书路径> <证书路径2> ...
-
-**参数说明**
-
-- --set-force 启用强制策略
-- --unset-force 取消强制策略
-- -r 移除证书规则
-- -h 显示帮助信息
-
-
-## 备注 ##
-- 需要管理员权限 
-- 需要[.net framework 4.0](http://www.microsoft.com/en-us/download/details.aspx?id=17718)
-
-
-## 引用组件 ##
-[local-policy](https://bitbucket.org/MartinEden/local-policy/overview)
diff --git a/Windows/SoftCertPolicyAppender/prebuilt/LocalPolicy.dll b/Windows/SoftCertPolicyAppender/prebuilt/LocalPolicy.dll
deleted file mode 100644
index ce6182b9df0b1bd80182a285ce8e346af164932f..0000000000000000000000000000000000000000
Binary files a/Windows/SoftCertPolicyAppender/prebuilt/LocalPolicy.dll and /dev/null differ