Beispiel #1
0
        public override void LoadContent()
        {
            base.LoadContent();
            binary = Computer.generateBinaryString(1024);
            var num1 = 12;

            binaryChars     = (bounds.Width - 4) / num1;
            acceptedBinary1 = new byte[binaryChars];
            acceptedBinary2 = new byte[binaryChars];
            for (var index = 0; index < num1; ++index)
            {
                acceptedBinary1[index] = Utils.random.NextDouble() > 0.5 ? (byte)0 : (byte)1;
                acceptedBinary2[index] = Utils.random.NextDouble() > 0.5 ? (byte)0 : (byte)1;
            }
            unlockOrder = new int[binaryChars];
            for (var index = 0; index < binaryChars; ++index)
            {
                unlockOrder[index] = index;
            }
            var num2 = 300;

            for (var index1 = 0; index1 < num2; ++index1)
            {
                var index2 = Utils.random.Next(0, unlockOrder.Length - 1);
                var index3 = Utils.random.Next(0, unlockOrder.Length - 1);
                var num3   = unlockOrder[index2];
                unlockOrder[index2] = unlockOrder[index3];
                unlockOrder[index3] = num3;
            }
            Programs.getComputer(os, targetIP).hostileActionTaken();
        }
Beispiel #2
0
        public override void LoadContent()
        {
            base.LoadContent();
            this.binary = Computer.generateBinaryString(1024);
            int num1 = 12;

            this.binaryChars     = (this.bounds.Width - 4) / num1;
            this.acceptedBinary1 = new byte[this.binaryChars];
            this.acceptedBinary2 = new byte[this.binaryChars];
            for (int index = 0; index < num1; ++index)
            {
                this.acceptedBinary1[index] = Utils.random.NextDouble() > 0.5 ? (byte)0 : (byte)1;
                this.acceptedBinary2[index] = Utils.random.NextDouble() > 0.5 ? (byte)0 : (byte)1;
            }
            this.unlockOrder = new int[this.binaryChars];
            for (int index = 0; index < this.binaryChars; ++index)
            {
                this.unlockOrder[index] = index;
            }
            int num2 = 300;

            for (int index1 = 0; index1 < num2; ++index1)
            {
                int index2 = Utils.random.Next(0, this.unlockOrder.Length - 1);
                int index3 = Utils.random.Next(0, this.unlockOrder.Length - 1);
                int num3   = this.unlockOrder[index2];
                this.unlockOrder[index2] = this.unlockOrder[index3];
                this.unlockOrder[index3] = num3;
            }
            Programs.getComputer(this.os, this.targetIP).hostileActionTaken();
        }
Beispiel #3
0
        public void generateSystemFiles()
        {
            var folder = root.searchForFolder("sys");

            folder.files.Add(new FileEntry(ThemeManager.getThemeDataString(OSTheme.HacknetTeal), "x-server.sys"));
            folder.files.Add(new FileEntry(Computer.generateBinaryString(500), "os-config.sys"));
            folder.files.Add(new FileEntry(Computer.generateBinaryString(500), "bootcfg.dll"));
            folder.files.Add(new FileEntry(Computer.generateBinaryString(500), "netcfgx.dll"));
        }
Beispiel #4
0
 public override void LoadContent()
 {
     base.LoadContent();
     if (binary.Equals(""))
     {
         binary = Computer.generateBinaryString(5064);
     }
     charsWide = (int)(bounds.Width / 7.69999980926514 + 0.5);
 }
Beispiel #5
0
 public override void LoadContent()
 {
     base.LoadContent();
     if (ForkBombExe.binary.Equals(""))
     {
         ForkBombExe.binary = Computer.generateBinaryString(5064);
     }
     this.charsWide = (int)((double)this.bounds.Width / (double)(GuiData.detailfont.MeasureString("0").X - 0.15f) + 0.5);
 }
Beispiel #6
0
 public override void initFiles()
 {
     base.initFiles();
     this.MainFolder = this.comp.files.root.searchForFolder("FlightSystems");
     if (this.MainFolder == null)
     {
         this.MainFolder = new Folder("FlightSystems");
         this.comp.files.root.folders.Add(this.MainFolder);
     }
     this.MainFolder.files.Add(new FileEntry(PortExploits.ValidAircraftOperatingDLL, "747FlightOps.dll"));
     this.MainFolder.files.Add(new FileEntry(Computer.generateBinaryString(200), "InFlightWifiRouter.dll"));
     this.MainFolder.files.Add(new FileEntry(Computer.generateBinaryString(200), "Scheduler.dll"));
     this.MainFolder.files.Add(new FileEntry(Computer.generateBinaryString(200), "EntertainmentServices.dll"));
     this.MainFolder.files.Add(new FileEntry(Computer.generateBinaryString(200), "AnnouncementsSys.dll"));
 }
Beispiel #7
0
 public override void initFiles()
 {
     root                  = new Folder("ContractHub");
     missionsFolder        = new Folder("Contracts");
     listingsFolder        = new Folder("Listings");
     listingArchivesFolder = new Folder("Archives");
     missionsFolder.folders.Add(listingsFolder);
     missionsFolder.folders.Add(listingArchivesFolder);
     usersFolder = new Folder("Users");
     root.folders.Add(missionsFolder);
     root.folders.Add(usersFolder);
     root.files.Add(generateConfigFile());
     root.files.Add(new FileEntry(Computer.generateBinaryString(1024), "net64.sys"));
     populateUserList();
     loadInitialContracts();
     comp.files.root.folders.Add(root);
 }
Beispiel #8
0
 public void initFilesystem()
 {
     this.rootPath          = new List <int>();
     this.missionFolderPath = new List <int>();
     this.root = new Folder("MsgBoard");
     this.rootPath.Add(this.comp.files.root.folders.IndexOf(this.root));
     this.missionFolderPath.Add(this.comp.files.root.folders.IndexOf(this.root));
     this.missionFolder = new Folder("listings");
     this.missionFolderPath.Add(0);
     this.root.folders.Add(this.missionFolder);
     this.closedMissionsFolder = new Folder("closed");
     this.root.folders.Add(this.closedMissionsFolder);
     this.sysFile = new FileEntry(Computer.generateBinaryString(1024), "config.sys");
     this.root.files.Add(this.sysFile);
     this.root.files.Add(new FileEntry(Utils.readEntireFile("Content/LocPost/ListingServerCautionFile.txt"), "Config_CAUTION.txt"));
     this.comp.files.root.folders.Add(this.root);
 }
Beispiel #9
0
 public override void initFiles()
 {
     this.root                  = new Folder("ContractHub");
     this.missionsFolder        = new Folder("Contracts");
     this.listingsFolder        = new Folder("Listings");
     this.listingArchivesFolder = new Folder("Archives");
     this.missionsFolder.folders.Add(this.listingsFolder);
     this.missionsFolder.folders.Add(this.listingArchivesFolder);
     this.usersFolder = new Folder("Users");
     this.root.folders.Add(this.missionsFolder);
     this.root.folders.Add(this.usersFolder);
     this.root.files.Add(this.generateConfigFile());
     this.root.files.Add(new FileEntry(Computer.generateBinaryString(1024), "net64.sys"));
     this.populateUserList();
     this.os.delayer.Post(ActionDelayer.NextTick(), (Action)(() => this.loadInitialContracts()));
     this.comp.files.root.folders.Add(this.root);
 }
 public void initFilesystem()
 {
     rootPath          = new List <int>();
     missionFolderPath = new List <int>();
     root = new Folder("MsgBoard");
     rootPath.Add(comp.files.root.folders.IndexOf(root));
     missionFolderPath.Add(comp.files.root.folders.IndexOf(root));
     missionFolder = new Folder("listings");
     missionFolderPath.Add(0);
     root.folders.Add(missionFolder);
     closedMissionsFolder = new Folder("closed");
     root.folders.Add(closedMissionsFolder);
     sysFile = new FileEntry(Computer.generateBinaryString(1024), "config.sys");
     root.files.Add(sysFile);
     root.files.Add(
         new FileEntry(
             "  ----- WARNING -----  \n\nconfig.sys in this folder is a critical system file.\nDO NOT DELETE OR RENAME IT\nDoing so will crash the board and bring the host program down\nChanges to the config should be made only during scheduled outages to avoid this issue\n",
             "Config_CAUTION.txt"));
     comp.files.root.folders.Add(root);
 }
Beispiel #11
0
        public static Folder GetAppFolder()
        {
            var strArray   = GenerateNames();
            var str        = strArray[0];
            var foldername = strArray[1].ToLower().Replace(" ", "_").Trim();
            var data       = str.Replace(" ", "_").Trim();
            var folder     = new Folder(foldername);

            folder.files.Add(new FileEntry(Computer.generateBinaryString(1024), "app.pkg"));
            var stringBuilder = new StringBuilder("----- [" + str + "] Save Data -----\n\n");
            var num           = 8 + Utils.random.Next(8);

            for (var index = 0; index < num; ++index)
            {
                stringBuilder.Append(GenerateAppSaveLine());
                stringBuilder.Append("\n\n");
            }
            folder.files.Add(new FileEntry(stringBuilder.ToString(), FileSanitiser.purifyStringForDisplay(data) + ".sav"));
            return(folder);
        }
        public override void initFiles()
        {
            base.initFiles();
            rootFolder  = new Folder("PointClicker");
            savesFolder = new Folder("Saves");
            var num1 = 50;
            var num2 = 0;

            for (var index = 0; index < num1; ++index)
            {
                string name;
                do
                {
                    name = People.all[index + num2].handle;
                    if (name == null)
                    {
                        ++num2;
                    }
                } while (index + num2 < People.all.Count && name == null);
                if (index == 22)
                {
                    name = "Mengsk";
                }
                if (index == 28)
                {
                    name = "Bit";
                }
                if (name != null)
                {
                    AddSaveForName(name, index == 22 || index == 28);
                }
            }
            rootFolder.folders.Add(savesFolder);
            comp.files.root.folders.Add(rootFolder);
            rootFolder.files.Add(new FileEntry(Computer.generateBinaryString(1000), "config.ini"));
            rootFolder.files.Add(
                new FileEntry(
                    "IMPORTANT : NEVER DELETE OR RE-NAME \"config.ini\"\n IT IS SYSTEM CRITICAL! Removing it causes instant crash. DO NOT TEST THIS",
                    "IMPORTANT_README_DONT_CRASH.txt"));
        }
Beispiel #13
0
        public static Folder GenerateEOSFolder()
        {
            Folder folder1 = new Folder("eos");
            Folder folder2 = new Folder("apps");
            Folder folder3 = new Folder("system");
            Folder folder4 = new Folder("notes");
            Folder folder5 = new Folder("mail");

            folder1.folders.Add(folder2);
            folder1.folders.Add(folder4);
            folder1.folders.Add(folder5);
            folder1.folders.Add(folder3);
            folder3.files.Add(new FileEntry(Computer.generateBinaryString(1024), "core.sys"));
            folder3.files.Add(new FileEntry(Computer.generateBinaryString(1024), "runtime.bin"));
            int num = 4 + Utils.random.Next(8);

            for (int index = 0; index < num; ++index)
            {
                folder2.folders.Add(EOSAppGenerator.GetAppFolder());
            }
            return(folder1);
        }
 public override void initFiles()
 {
     this.folder = this.comp.files.root.searchForFolder("Whitelist");
     if (this.folder == null)
     {
         this.folder = new Folder("Whitelist");
         this.comp.files.root.folders.Add(this.folder);
     }
     if (!this.folder.containsFile("authenticator.dll"))
     {
         this.folder.files.Add(new FileEntry(Computer.generateBinaryString(500), "authenticator.dll"));
     }
     if (this.RemoteSourceIP == null)
     {
         if (this.folder.containsFile("list.txt"))
         {
             return;
         }
         this.folder.files.Add(new FileEntry(this.comp.adminIP, "list.txt"));
     }
     else
     {
         ComputerLoader.postAllLoadedActions += (Action)(() =>
         {
             Computer computer = Programs.getComputer(this.os, this.RemoteSourceIP);
             if (computer != null)
             {
                 this.RemoteSourceIP = computer.ip;
             }
             if (this.folder.containsFile("source.txt"))
             {
                 return;
             }
             this.folder.files.Add(new FileEntry(this.RemoteSourceIP, "source.txt"));
         });
     }
 }
Beispiel #15
0
        private static Computer addFileDeletionRequirements(Computer c, OS os)
        {
            var nameEntry = "Archive_Data.zip";

            if (customKeysWereSet && MissionGenerationParser.File != null)
            {
                nameEntry = MissionGenerationParser.File;
            }
            var fileEntry = new FileEntry(
                customFileData != null ? customFileData : Computer.generateBinaryString(2000), nameEntry);
            var folder = c.files.root.folders[0];

            if (customKeysWereSet && MissionGenerationParser.Path != null)
            {
                folder = c.getFolderFromPath(MissionGenerationParser.Path, true);
            }
            folder.files.Add(fileEntry);
            MissionGenerationParser.File = nameEntry;
            if (!customKeysWereSet && MissionGenerationParser.Path != null)
            {
                MissionGenerationParser.Path = "home";
            }
            return(c);
        }
Beispiel #16
0
        public static void AddEOSComp(XmlReader rdr, Computer compAttatchedTo, object osObj)
        {
            var os       = (OS)osObj;
            var compName = "Unregistered eOS Device";
            var str1     = compAttatchedTo.idName + "_eos";

            if (rdr.MoveToAttribute("name"))
            {
                compName = rdr.ReadContentAsString();
            }
            if (rdr.MoveToAttribute("id"))
            {
                str1 = rdr.ReadContentAsString();
            }
            var device = new Computer(compName, NetworkMap.generateRandomIP(), os.netMap.getRandomPosition(), 0, 5, os);

            device.idName = str1;
            var str2 = "ePhone";

            if (rdr.MoveToAttribute("icon"))
            {
                str2 = rdr.ReadContentAsString();
            }
            device.icon     = str2;
            device.location = compAttatchedTo.location +
                              Corporation.getNearbyNodeOffset(compAttatchedTo.location, Utils.random.Next(12), 12,
                                                              os.netMap);
            device.setAdminPassword("alpine");
            ComputerLoader.loadPortsIntoComputer("22,3659", device);
            device.portsNeededForCrack = 2;
            GenerateEOSFilesystem(device);
            rdr.Read();
            var folder1 = device.files.root.searchForFolder("eos");
            var folder2 = folder1.searchForFolder("notes");
            var folder3 = folder1.searchForFolder("mail");

            while (!(rdr.Name == "eosDevice") || rdr.IsStartElement())
            {
                if (rdr.Name.ToLower() == "note" && rdr.IsStartElement())
                {
                    string nameEntry = null;
                    if (rdr.MoveToAttribute("filename"))
                    {
                        nameEntry = rdr.ReadContentAsString();
                    }
                    var num       = (int)rdr.MoveToContent();
                    var dataEntry = rdr.ReadElementContentAsString().TrimStart();
                    if (nameEntry == null)
                    {
                        var length = dataEntry.IndexOf("\n");
                        if (length == -1)
                        {
                            length = dataEntry.IndexOf("\n");
                        }
                        if (length == -1)
                        {
                            length = dataEntry.Length;
                        }
                        nameEntry = dataEntry.Substring(0, length).Replace(" ", "_").ToLower().Trim() + ".txt";
                    }
                    var fileEntry = new FileEntry(dataEntry, nameEntry);
                    folder2.files.Add(fileEntry);
                }
                if (rdr.Name.ToLower() == "mail" && rdr.IsStartElement())
                {
                    string str3 = null;
                    string str4 = null;
                    if (rdr.MoveToAttribute("username"))
                    {
                        str3 = rdr.ReadContentAsString();
                    }
                    if (rdr.MoveToAttribute("pass"))
                    {
                        str4 = rdr.ReadContentAsString();
                    }
                    var dataEntry = "MAIL ACCOUNT : " + str3 + "\nAccount   :" + str3 + "\nPassword :"******"\nLast Sync :" + DateTime.Now + "\n\n" + Computer.generateBinaryString(512);
                    var nameEntry = str3 + ".act";
                    folder3.files.Add(new FileEntry(dataEntry, nameEntry));
                }
                rdr.Read();
                if (rdr.EOF)
                {
                    break;
                }
            }
            os.netMap.nodes.Add(device);
            ComputerLoader.postAllLoadedActions += () => device.links.Add(os.netMap.nodes.IndexOf(compAttatchedTo));
            if (compAttatchedTo.attatchedDeviceIDs != null)
            {
                compAttatchedTo.attatchedDeviceIDs += ",";
            }
            compAttatchedTo.attatchedDeviceIDs += device.idName;
        }
Beispiel #17
0
 public static void runCommand(int value, string name)
 {
     assertOS();
     if (name.Equals("addRank"))
     {
         os.currentFaction.addValue(value, os);
         var mail = MailServer.generateEmail("Contract Successful",
             "Congratulations,\nThe client of your recent contract has reported a success, and is pleased with your work.\n" +
             "You are now free to accept further contracts from the contact database.\n" +
             "\nYour Current Ranking is " + os.currentFaction.getRank() + " of " +
             os.currentFaction.getMaxRank() + ".\n" + "\nThankyou,\n -" + os.currentFaction.name,
             os.currentFaction.name + " ReplyBot");
         ((MailServer) os.netMap.mailServer.getDaemon(typeof (MailServer))).addMail(mail, os.defaultUser.name);
     }
     else if (name.StartsWith("addFlags:"))
     {
         foreach (
             var flag in
                 name.Substring("addFlags:".Length)
                     .Split(Utils.commaDelim, StringSplitOptions.RemoveEmptyEntries))
             os.Flags.AddFlag(flag);
     }
     if (name.Equals("triggerThemeHackRevenge"))
         os.delayer.Post(ActionDelayer.Wait(5.0), () =>
         {
             var mail = MailServer.generateEmail("Are you Kidding me?",
                 "Seriously?\n\n" +
                 "You think you can just f**k with my stuff and leave without consequence? Did you think I wouldn't notice?\n" +
                 "\nDid you think I wouldn't FIND you!?\n" +
                 "\nYou're a pathetic scrit kiddie, you couldn't hack a f*****g honeypot without your precious buttons and scrollbars.\n" +
                 "\nSay goodbye to your x-server, idiot." + "\n\nNaix", "*****@*****.**");
             ((MailServer) os.netMap.mailServer.getDaemon(typeof (MailServer))).addMail(mail, os.defaultUser.name);
             os.delayer.Post(ActionDelayer.Wait(24.0), () =>
             {
                 try
                 {
                     HackerScriptExecuter.runScript("ThemeHack.txt", os);
                 }
                 catch (Exception ex)
                 {
                     if (!Settings.recoverFromErrorsSilently)
                         throw ex;
                     os.write("CAUTION: UNSYNDICATED OUTSIDE CONNECTION ATTEMPT");
                     os.write("RECOVERED FROM CONNECTION SUBTERFUGE SUCCESSFULLY");
                     Console.WriteLine("Critical error loading hacker script - aborting");
                 }
             });
         });
     else if (name.Equals("changeSong"))
     {
         switch (value)
         {
             case 2:
                 MusicManager.transitionToSong("Music\\The_Quickening");
                 break;
             case 3:
                 MusicManager.transitionToSong("Music\\TheAlgorithm");
                 break;
             case 4:
                 MusicManager.transitionToSong("Music\\Ryan3");
                 break;
             case 5:
                 MusicManager.transitionToSong("Music\\Bit(Ending)");
                 break;
             case 6:
                 MusicManager.transitionToSong("Music\\Rico_Puestel-Roja_Drifts_By");
                 break;
             case 7:
                 MusicManager.transitionToSong("Music\\out_run_the_wolves");
                 break;
             case 8:
                 MusicManager.transitionToSong("Music\\Irritations");
                 break;
             case 9:
                 MusicManager.transitionToSong("Music\\Broken_Boy");
                 break;
             case 10:
                 MusicManager.transitionToSong("Music\\Ryan10");
                 break;
             case 11:
                 MusicManager.transitionToSong("Music\\tetrameth");
                 break;
             default:
                 MusicManager.transitionToSong("Music\\Revolve");
                 break;
         }
     }
     else if (name.Equals("entropyEndMissionSetup"))
     {
         runCommand(3, "changeSong");
         var comp1 = findComp("corp0#IS");
         var comp2 = findComp("corp0#MF");
         var comp3 = findComp("corp0#BU");
         var fileEntry1 = new FileEntry(Computer.generateBinaryString(5000), "HacknetOS.rar");
         var fileEntry2 = new FileEntry(Computer.generateBinaryString(4000), "HacknetOS_Data.xnb");
         var fileEntry3 = new FileEntry(Computer.generateBinaryString(4000), "HacknetOS_Content.xnb");
         var folder1 = comp1.files.root.folders[2];
         folder1.files.Add(fileEntry1);
         folder1.files.Add(fileEntry2);
         folder1.files.Add(fileEntry3);
         var folder2 = comp2.files.root.folders[2];
         folder2.files.Add(fileEntry1);
         folder2.files.Add(fileEntry2);
         folder2.files.Add(fileEntry3);
         var fileEntry4 = new FileEntry(fileEntry1.data, fileEntry1.name + "_backup");
         var fileEntry5 = new FileEntry(fileEntry2.data, fileEntry2.name + "_backup");
         var fileEntry6 = new FileEntry(fileEntry3.data, fileEntry3.name + "_backup");
         var folder3 = comp3.files.root.folders[2];
         folder3.files.Add(fileEntry4);
         folder3.files.Add(fileEntry5);
         folder3.files.Add(fileEntry6);
         comp1.traceTime = Computer.BASE_TRACE_TIME*7.5f;
         comp3.traceTime = Computer.BASE_TRACE_TIME*7.5f;
         comp2.traceTime = Computer.BASE_TRACE_TIME*7.5f;
         comp2.portsNeededForCrack = 3;
         comp1.portsNeededForCrack = 2;
         comp3.portsNeededForCrack = 2;
         var folder4 = findComp("entropy01").files.root.folders[2];
         folder4.files.Add(new FileEntry(PortExploits.crackExeData[25], "SMTPoverflow.exe"));
         folder4.files.Add(new FileEntry(PortExploits.crackExeData[80], "WebServerWorm.exe"));
     }
     else if (name.Equals("entropyAddSMTPCrack"))
     {
         var f = findComp("entropy01").files.root.folders[2];
         f.files.Add(new FileEntry(PortExploits.crackExeData[25],
             Utils.GetNonRepeatingFilename("SMTPoverflow", ".exe", f)));
         os.saveGame();
     }
     else if (name.Equals("transitionToBitMissions"))
     {
         if (Settings.isDemoMode)
         {
             runCommand(6, "changeSong");
             if (Settings.isPressBuildDemo)
                 ComputerLoader.loadMission("Content/Missions/Demo/PressBuild/DemoMission01.xml");
             else
                 ComputerLoader.loadMission("Content/Missions/Demo/AvconDemo.xml");
         }
         else
             ComputerLoader.loadMission("Content/Missions/BitMission0.xml");
     }
     else if (name.Equals("entropySendCSECInvite"))
         os.delayer.Post(ActionDelayer.Wait(6.0),
             () => ComputerLoader.loadMission("Content/Missions/MainHub/Intro/Intro01.xml"));
     else if (name.Equals("hubBitSetComplete01"))
     {
         os.delayer.Post(ActionDelayer.Wait(4.0), () => runCommand(1, "addRank"));
         runCommand(3, "changeSong");
         os.Flags.AddFlag("csecBitSet01Complete");
     }
     else if (name.Equals("enTechEnableOfflineBackup"))
     {
         var computer = Programs.getComputer(os, "EnTechOfflineBackup");
         Programs.getComputer(os, "EnTechMainframe").links.Add(os.netMap.nodes.IndexOf(computer));
         os.Flags.AddFlag("VaporSequencerEnabled");
         var folder1 = findComp("mainHubAssets").files.root.searchForFolder("bin");
         var folder2 = folder1.searchForFolder("Sequencer");
         if (folder2 == null)
         {
             folder2 = new Folder("Sequencer");
             folder1.folders.Add(folder2);
         }
         if (folder2.searchForFile("Sequencer.exe") != null)
             return;
         folder2.files.Add(new FileEntry(PortExploits.crackExeData[17], "Sequencer.exe"));
     }
     else if (name.Equals("rudeNaixResponse"))
         AchievementsManager.Unlock("rude_response", false);
     else if (name.Equals("assignPlayerToHubServerFaction"))
     {
         os.allFactions.setCurrentFaction("hub", os);
         var computer = Programs.getComputer(os, "mainHub");
         var missionHubServer = (MissionHubServer) computer.getDaemon(typeof (MissionHubServer));
         var userDetail = new UserDetail(os.defaultUser.name, "reptile", 3);
         computer.addNewUser(computer.ip, userDetail);
         missionHubServer.addUser(userDetail);
         os.homeNodeID = "mainHub";
         os.homeAssetServerID = "mainHubAssets";
         runCommand(3, "changeSong");
         os.Flags.AddFlag("CSEC_Member");
         AchievementsManager.Unlock("progress_csec", false);
     }
     else if (name.Equals("assignPlayerToEntropyFaction"))
     {
         runCommand(6, "changeSong");
         AchievementsManager.Unlock("progress_entropy", false);
     }
     else if (name.Equals("assignPlayerToLelzSec"))
     {
         os.homeNodeID = "lelzSecHub";
         os.homeAssetServerID = "lelzSecHub";
         os.Flags.AddFlag("LelzSec_Member");
         AchievementsManager.Unlock("progress_lelz", false);
     }
     else if (name.Equals("lelzSecVictory"))
         AchievementsManager.Unlock("secret_path_complete", false);
     else if (name.Equals("demoFinalMissionEnd"))
     {
         os.exes.Clear();
         PostProcessor.EndingSequenceFlashOutActive = true;
         PostProcessor.EndingSequenceFlashOutPercentageComplete = 1f;
         MusicManager.stop();
         os.delayer.Post(ActionDelayer.Wait(0.2),
             () => os.content.Load<SoundEffect>("Music/Ambient/spiral_gauge_down").Play());
         os.delayer.Post(ActionDelayer.Wait(3.0), () =>
         {
             PostProcessor.dangerModeEnabled = false;
             PostProcessor.dangerModePercentComplete = 0.0f;
             os.ExitScreen();
             os.ScreenManager.AddScreen(new DemoEndScreen());
         });
     }
     else if (name.Equals("demoFinalMissionStart"))
     {
         os.Flags.AddFlag("DemoSequencerEnabled");
         MusicManager.transitionToSong("Music/Ambient/dark_drone_008");
     }
     else if (name.Equals("CSECTesterGameWorldSetup"))
     {
         for (var index = 0; index < PortExploits.services.Count && index < 4; ++index)
             os.thisComputer.files.root.folders[2].files.Add(
                 new FileEntry(PortExploits.crackExeData[PortExploits.portNums[index]],
                     PortExploits.cracks[PortExploits.portNums[index]]));
         for (var index = 0; index < 4; ++index)
         {
             var c = new Computer("DebugShell" + index, NetworkMap.generateRandomIP(),
                 os.netMap.getRandomPosition(), 0, 2, os);
             c.adminIP = os.thisComputer.adminIP;
             os.netMap.nodes.Add(c);
             os.netMap.discoverNode(c);
         }
         os.delayer.Post(ActionDelayer.Wait(0.2), () =>
         {
             os.allFactions.setCurrentFaction("entropy", os);
             os.currentMission = null;
             os.netMap.discoverNode(Programs.getComputer(os, "entropy00"));
             os.netMap.discoverNode(Programs.getComputer(os, "entropy01"));
         });
     }
     else if (name.Equals("EntropyFastFowardSetup"))
     {
         os.thisComputer.files.root.folders[2].files.Add(new FileEntry(PortExploits.crackExeData[22],
             PortExploits.cracks[22]));
         os.thisComputer.files.root.folders[2].files.Add(new FileEntry(PortExploits.crackExeData[21],
             PortExploits.cracks[21]));
         for (var index = 0; index < 3; ++index)
         {
             var c = new Computer("DebugShell" + index, NetworkMap.generateRandomIP(),
                 os.netMap.getRandomPosition(), 0, 2, os);
             c.adminIP = os.thisComputer.adminIP;
             os.netMap.nodes.Add(c);
             os.netMap.discoverNode(c);
         }
         os.delayer.Post(ActionDelayer.Wait(0.2), () =>
         {
             os.allFactions.setCurrentFaction("entropy", os);
             os.currentMission = null;
             os.netMap.discoverNode(Programs.getComputer(os, "entropy00"));
             os.netMap.discoverNode(Programs.getComputer(os, "entropy01"));
             var computer = Programs.getComputer(os, "entropy01");
             var userDetail = computer.users[0];
             userDetail.known = true;
             computer.users[0] = userDetail;
             os.allFactions.factions[os.allFactions.currentFaction].playerValue = 2;
             os.delayer.Post(ActionDelayer.Wait(0.2), () =>
             {
                 os.Flags.AddFlag("eosPathStarted");
                 ComputerLoader.loadMission(
                     "Content/Missions/Entropy/StartingSet/eosMissions/eosIntroDelayer.xml");
             });
         });
     }
     else if (name.Equals("CSECFastFowardSetup"))
     {
         os.thisComputer.files.root.folders[2].files.Add(new FileEntry(PortExploits.crackExeData[22],
             PortExploits.cracks[22]));
         os.thisComputer.files.root.folders[2].files.Add(new FileEntry(PortExploits.crackExeData[21],
             PortExploits.cracks[21]));
         for (var index = 0; index < 3; ++index)
         {
             var c = new Computer("DebugShell" + index, NetworkMap.generateRandomIP(),
                 os.netMap.getRandomPosition(), 0, 2, os);
             c.adminIP = os.thisComputer.adminIP;
             os.netMap.nodes.Add(c);
             os.netMap.discoverNode(c);
         }
         os.delayer.Post(ActionDelayer.Wait(0.2), () =>
         {
             runCommand(0, "assignPlayerToHubServerFaction");
             os.currentMission = null;
             os.netMap.discoverNode(Programs.getComputer(os, "mainHub"));
             os.netMap.discoverNode(Programs.getComputer(os, "mainHubAssets"));
             var computer = Programs.getComputer(os, "mainHubAssets");
             var userDetail = computer.users[0];
             userDetail.known = true;
             computer.users[0] = userDetail;
         });
     }
     else if (name.Equals("csecAddTraceKill"))
     {
         var folder = findComp("mainHubAssets").files.root.searchForFolder("bin");
         var f = folder.searchForFolder("TK");
         if (f == null)
         {
             f = new Folder("TK");
             folder.folders.Add(f);
         }
         f.files.Add(
             new FileEntry(
                 FileEncrypter.EncryptString(PortExploits.crackExeData[12], "Vapor Trick Enc.", "NULL", "dx122DX",
                     ".exe"), Utils.GetNonRepeatingFilename("TraceKill", ".dec", f)));
         os.Flags.AddFlag("bitPathStarted");
         runCommand(10, "changeSong");
     }
     else if (name.Equals("junebugComplete"))
     {
         var computer = Programs.getComputer(os, "pacemaker01");
         if (computer != null)
         {
             var heartMonitorDaemon = (HeartMonitorDaemon) computer.getDaemon(typeof (HeartMonitorDaemon));
             if (heartMonitorDaemon != null)
                 heartMonitorDaemon.ForceStopBeepSustainSound();
         }
         runCommand(1, "addRank");
     }
     else if (name.Equals("eosIntroMissionSetup"))
     {
         findComp("entropy01")
             .files.root.searchForFolder("bin")
             .files.Add(new FileEntry(PortExploits.crackExeData[13], "eosDeviceScan.exe"));
         os.delayer.Post(ActionDelayer.Wait(8.0), () =>
         {
             var mail = MailServer.generateEmail("Fwd: eOS Stuff",
                 Utils.readEntireFile("Content/Post/eosScannerMail.txt"), "vtfx", new List<string>(new string[1]
                 {
                     "note#%#eOS Security Basics#%#" +
                     ("1: Get admin access to a computer that you suspect has an eOS device sync'd to it\n" +
                      "2: Run eosdevicescanner.exe\nto scan for paired devices and automatically open connection ports\n" +
                      "3: connect to the revealed device\n" +
                      "3: login with\nuser: \"admin\"\npassword: \"alpine\"\n\n" +
                      "The password is the same for all eOS devices!")
                 }));
             ((MailServer) os.netMap.mailServer.getDaemon(typeof (MailServer))).addMail(mail, os.defaultUser.name);
         });
         runCommand(4, "changeSong");
         os.saveGame();
     }
     else
     {
         if (!name.Equals("eosIntroEndFunc"))
             return;
         runCommand(1, "addRank");
         var missionListingServer =
             (MissionListingServer) findComp("entropy00").getDaemon(typeof (MissionListingServer));
         var list = os.branchMissions;
         var m =
             (ActiveMission)
                 ComputerLoader.readMission(
                     "Content/Missions/Entropy/StartingSet/eosMissions/eosAddedMission.xml");
         missionListingServer.addMisison(m);
         os.branchMissions = list;
     }
 }
Beispiel #18
0
 public string GetEncodedFileString()
 {
     return("MEMORY_DUMP : FORMAT v1.22 ----------\n\n" + Computer.generateBinaryString(512).Substring(0, 400) + "\n\n" + FileEncrypter.EncryptString(this.GetCompactSaveString(), "MEMORY DUMP", "------", "19474-217316293", (string)null));
 }
Beispiel #19
0
        public static void AddEOSComp(XmlReader rdr, Computer compAttatchedTo, object osObj)
        {
            OS     os       = (OS)osObj;
            string compName = "Unregistered eOS Device";
            string str1     = compAttatchedTo.idName + "_eos";
            bool   flag     = false;

            if (rdr.MoveToAttribute("name"))
            {
                compName = ComputerLoader.filter(rdr.ReadContentAsString());
            }
            if (rdr.MoveToAttribute("id"))
            {
                str1 = rdr.ReadContentAsString();
            }
            if (rdr.MoveToAttribute("empty"))
            {
                flag = rdr.ReadContentAsString().ToLower() == "true";
            }
            string newPass = "******";

            if (rdr.MoveToAttribute("passOverride"))
            {
                newPass = rdr.ReadContentAsString();
            }
            Computer device = new Computer(compName, NetworkMap.generateRandomIP(), os.netMap.getRandomPosition(), 0, (byte)5, os);

            device.idName = str1;
            string str2 = "ePhone";

            if (rdr.MoveToAttribute("icon"))
            {
                str2 = rdr.ReadContentAsString();
            }
            device.icon     = str2;
            device.location = compAttatchedTo.location + Corporation.getNearbyNodeOffset(compAttatchedTo.location, Utils.random.Next(12), 12, os.netMap, 0.0f, false);
            device.setAdminPassword(newPass);
            ComputerLoader.loadPortsIntoComputer("22,3659", (object)device);
            device.portsNeededForCrack = 2;
            EOSComp.GenerateEOSFilesystem(device);
            rdr.Read();
            Folder folder1 = device.files.root.searchForFolder("eos");
            Folder folder2 = folder1.searchForFolder("notes");
            Folder folder3 = folder1.searchForFolder("mail");

            while (!(rdr.Name == "eosDevice") || rdr.IsStartElement())
            {
                if (rdr.Name.ToLower() == "note" && rdr.IsStartElement())
                {
                    string nameEntry = (string)null;
                    if (rdr.MoveToAttribute("filename"))
                    {
                        nameEntry = ComputerLoader.filter(rdr.ReadContentAsString());
                    }
                    int    content   = (int)rdr.MoveToContent();
                    string dataEntry = ComputerLoader.filter(rdr.ReadElementContentAsString().TrimStart());
                    if (nameEntry == null)
                    {
                        int length = dataEntry.IndexOf("\n");
                        if (length == -1)
                        {
                            length = dataEntry.IndexOf("\n");
                        }
                        if (length == -1)
                        {
                            length = dataEntry.Length;
                        }
                        string str3 = dataEntry.Substring(0, length);
                        if (str3.Length > 50)
                        {
                            str3 = str3.Substring(0, 47) + "...";
                        }
                        nameEntry = str3.Replace(" ", "_").Replace(":", "").ToLower().Trim() + ".txt";
                    }
                    FileEntry fileEntry = new FileEntry(dataEntry, nameEntry);
                    folder2.files.Add(fileEntry);
                }
                if (rdr.Name.ToLower() == "mail" && rdr.IsStartElement())
                {
                    string str3 = (string)null;
                    string str4 = (string)null;
                    if (rdr.MoveToAttribute("username"))
                    {
                        str3 = ComputerLoader.filter(rdr.ReadContentAsString());
                    }
                    if (rdr.MoveToAttribute("pass"))
                    {
                        str4 = ComputerLoader.filter(rdr.ReadContentAsString());
                    }
                    string dataEntry = "MAIL ACCOUNT : " + str3 + "\nAccount   :" + str3 + "\nPassword :"******"\nLast Sync :" + DateTime.Now.ToString() + "\n\n" + Computer.generateBinaryString(512);
                    string nameEntry = str3 + ".act";
                    folder3.files.Add(new FileEntry(dataEntry, nameEntry));
                }
                if (rdr.Name.ToLower() == "file" && rdr.IsStartElement())
                {
                    string nameEntry = (string)null;
                    if (rdr.MoveToAttribute("name"))
                    {
                        nameEntry = rdr.ReadContentAsString();
                    }
                    string path = "home";
                    if (rdr.MoveToAttribute("path"))
                    {
                        path = rdr.ReadContentAsString();
                    }
                    int    content   = (int)rdr.MoveToContent();
                    string dataEntry = ComputerLoader.filter(rdr.ReadElementContentAsString()).TrimStart();
                    device.getFolderFromPath(path, true).files.Add(new FileEntry(dataEntry, nameEntry));
                }
                rdr.Read();
                if (rdr.EOF)
                {
                    break;
                }
            }
            if (flag)
            {
                Folder folder4 = folder1.searchForFolder("apps");
                if (folder4 != null)
                {
                    folder4.files.Clear();
                    folder4.folders.Clear();
                }
            }
            os.netMap.nodes.Add(device);
            ComputerLoader.postAllLoadedActions += (Action)(() => device.links.Add(os.netMap.nodes.IndexOf(compAttatchedTo)));
            if (compAttatchedTo.attatchedDeviceIDs != null)
            {
                compAttatchedTo.attatchedDeviceIDs += ",";
            }
            compAttatchedTo.attatchedDeviceIDs += device.idName;
        }
Beispiel #20
0
        public static void populate()
        {
            portNums     = new List <int>(64);
            exeNums      = new List <int>(64);
            services     = new Dictionary <int, string>(64);
            cracks       = new Dictionary <int, string>(64);
            needsPort    = new Dictionary <int, bool>(64);
            crackExeData = new Dictionary <int, string>(64);
            var random1 = new Random(17021990);
            var random2 = Utils.random;

            Utils.random = random1;
            portNums.Add(22);
            exeNums.Add(22);
            services[22]     = "SSH";
            cracks[22]       = "SSHcrack.exe";
            needsPort[22]    = true;
            crackExeData[22] = Computer.generateBinaryString(500);
            portNums.Add(21);
            exeNums.Add(21);
            services[21]     = "FTP Server";
            cracks[21]       = "FTPBounce.exe";
            needsPort[21]    = true;
            crackExeData[21] = Computer.generateBinaryString(500);
            portNums.Add(25);
            exeNums.Add(25);
            services[25]     = "SMTP MailServer";
            cracks[25]       = "SMTPoverflow.exe";
            needsPort[25]    = true;
            crackExeData[25] = Computer.generateBinaryString(500);
            portNums.Add(80);
            exeNums.Add(80);
            services[80]     = "HTTP WebServer";
            cracks[80]       = "WebServerWorm.exe";
            needsPort[80]    = true;
            crackExeData[80] = Computer.generateBinaryString(500);
            portNums.Add(3724);
            exeNums.Add(3724);
            services[3724]     = "Blizzard Updater";
            cracks[3724]       = "WoWHack.exe";
            needsPort[3724]    = true;
            crackExeData[3724] = Computer.generateBinaryString(500);
            portNums.Add(1433);
            exeNums.Add(1433);
            services[1433]     = "SQL Server";
            cracks[1433]       = "SQL_MemCorrupt.exe";
            needsPort[1433]    = true;
            crackExeData[1433] = Computer.generateBinaryString(500);
            portNums.Add(104);
            exeNums.Add(104);
            services[104]     = "Medical Services";
            cracks[104]       = "KBT_PortTest.exe";
            needsPort[104]    = true;
            crackExeData[104] = Computer.generateBinaryString(500);
            portNums.Add(3659);
            exeNums.Add(3659);
            services[3659]     = "eOS Connection Manager";
            cracks[3659]       = "confloodEOS.exe";
            needsPort[3659]    = true;
            crackExeData[3659] = Computer.generateBinaryString(500);
            exeNums.Add(1);
            cracks[1]       = "Tutorial.exe";
            needsPort[1]    = false;
            crackExeData[1] = Computer.generateBinaryString(500);
            exeNums.Add(4);
            cracks[4]       = "SecurityTracer.exe";
            needsPort[4]    = false;
            crackExeData[4] = Computer.generateBinaryString(500);
            exeNums.Add(8);
            cracks[8]       = "Notes.exe";
            needsPort[8]    = false;
            crackExeData[8] = Computer.generateBinaryString(500);
            exeNums.Add(9);
            cracks[9]       = "Decypher.exe";
            needsPort[9]    = false;
            crackExeData[9] = Computer.generateBinaryString(500);
            exeNums.Add(10);
            cracks[10]       = "DECHead.exe";
            needsPort[10]    = false;
            crackExeData[10] = Computer.generateBinaryString(500);
            exeNums.Add(11);
            cracks[11]       = "Clock.exe";
            needsPort[11]    = false;
            crackExeData[11] = Computer.generateBinaryString(500);
            exeNums.Add(12);
            cracks[12]       = "TraceKill.exe";
            needsPort[12]    = false;
            crackExeData[12] = Computer.generateBinaryString(500);
            exeNums.Add(13);
            cracks[13]       = "eosDeviceScan.exe";
            needsPort[13]    = false;
            crackExeData[13] = Computer.generateBinaryString(500);
            exeNums.Add(14);
            cracks[14]       = "themeSwitch.exe";
            needsPort[14]    = false;
            crackExeData[14] = Computer.generateBinaryString(500);
            exeNums.Add(15);
            cracks[15]       = "hacknet.exe";
            needsPort[15]    = false;
            crackExeData[15] = Computer.generateBinaryString(500);
            exeNums.Add(16);
            cracks[16]       = "HexClock.exe";
            needsPort[16]    = false;
            crackExeData[16] = Computer.generateBinaryString(500);
            exeNums.Add(17);
            cracks[17]       = "Sequencer.exe";
            needsPort[17]    = false;
            crackExeData[17] = Computer.generateBinaryString(500);
            var streamReader = new StreamReader(TitleContainer.OpenStream("Content/passwords.txt"));
            var str          = streamReader.ReadToEnd();

            streamReader.Close();
            passwords = new List <string>(str.Replace("\n", " ").Replace("\r", "").Split(' ', '\t', '\n'));
            ValidPacemakerFirmware     = Computer.generateBinaryString(500);
            DangerousPacemakerFirmware = Computer.generateBinaryString(500);
            Utils.random = random2;
        }
Beispiel #21
0
        public static void populate()
        {
            PortExploits.portNums             = new List <int>(64);
            PortExploits.exeNums              = new List <int>(64);
            PortExploits.services             = new Dictionary <int, string>(64);
            PortExploits.cracks               = new Dictionary <int, string>(64);
            PortExploits.needsPort            = new Dictionary <int, bool>(64);
            PortExploits.crackExeData         = new Dictionary <int, string>(64);
            PortExploits.crackExeDataLocalRNG = new Dictionary <int, string>(64);
            Random   random1 = new Random(17021990);
            MSRandom rng     = new MSRandom(17021990);
            Random   random2 = Utils.random;

            Utils.random = random1;
            PortExploits.portNums.Add(22);
            PortExploits.exeNums.Add(22);
            PortExploits.services[22]             = "SSH";
            PortExploits.cracks[22]               = "SSHcrack.exe";
            PortExploits.needsPort[22]            = true;
            PortExploits.crackExeData[22]         = Computer.generateBinaryString(500, rng);
            PortExploits.crackExeDataLocalRNG[22] = Computer.generateBinaryString(500);
            PortExploits.portNums.Add(21);
            PortExploits.exeNums.Add(21);
            PortExploits.services[21]             = "FTP Server";
            PortExploits.cracks[21]               = "FTPBounce.exe";
            PortExploits.needsPort[21]            = true;
            PortExploits.crackExeData[21]         = Computer.generateBinaryString(500, rng);
            PortExploits.crackExeDataLocalRNG[21] = Computer.generateBinaryString(500);
            PortExploits.portNums.Add(25);
            PortExploits.exeNums.Add(25);
            PortExploits.services[25]             = "SMTP MailServer";
            PortExploits.cracks[25]               = "SMTPoverflow.exe";
            PortExploits.needsPort[25]            = true;
            PortExploits.crackExeData[25]         = Computer.generateBinaryString(500, rng);
            PortExploits.crackExeDataLocalRNG[25] = Computer.generateBinaryString(500);
            PortExploits.portNums.Add(80);
            PortExploits.exeNums.Add(80);
            PortExploits.services[80]             = "HTTP WebServer";
            PortExploits.cracks[80]               = "WebServerWorm.exe";
            PortExploits.needsPort[80]            = true;
            PortExploits.crackExeData[80]         = Computer.generateBinaryString(500, rng);
            PortExploits.crackExeDataLocalRNG[80] = Computer.generateBinaryString(500);
            PortExploits.portNums.Add(3724);
            PortExploits.exeNums.Add(3724);
            PortExploits.services[3724]             = "Blizzard Updater";
            PortExploits.cracks[3724]               = "WoWHack.exe";
            PortExploits.needsPort[3724]            = true;
            PortExploits.crackExeData[3724]         = Computer.generateBinaryString(500, rng);
            PortExploits.crackExeDataLocalRNG[3724] = Computer.generateBinaryString(500);
            PortExploits.portNums.Add(1433);
            PortExploits.exeNums.Add(1433);
            PortExploits.services[1433]             = "SQL Server";
            PortExploits.cracks[1433]               = "SQL_MemCorrupt.exe";
            PortExploits.needsPort[1433]            = true;
            PortExploits.crackExeData[1433]         = Computer.generateBinaryString(500, rng);
            PortExploits.crackExeDataLocalRNG[1433] = Computer.generateBinaryString(500);
            PortExploits.portNums.Add(104);
            PortExploits.exeNums.Add(104);
            PortExploits.services[104]             = "Medical Services";
            PortExploits.cracks[104]               = "KBT_PortTest.exe";
            PortExploits.needsPort[104]            = true;
            PortExploits.crackExeData[104]         = Computer.generateBinaryString(500, rng);
            PortExploits.crackExeDataLocalRNG[104] = Computer.generateBinaryString(500);
            PortExploits.portNums.Add(3659);
            PortExploits.exeNums.Add(3659);
            PortExploits.services[3659]             = "eOS Connection Manager";
            PortExploits.cracks[3659]               = "confloodEOS.exe";
            PortExploits.needsPort[3659]            = true;
            PortExploits.crackExeData[3659]         = Computer.generateBinaryString(500, rng);
            PortExploits.crackExeDataLocalRNG[3659] = Computer.generateBinaryString(500);
            PortExploits.exeNums.Add(1);
            PortExploits.cracks[1]               = "Tutorial.exe";
            PortExploits.needsPort[1]            = false;
            PortExploits.crackExeData[1]         = Computer.generateBinaryString(500, rng);
            PortExploits.crackExeDataLocalRNG[1] = Computer.generateBinaryString(500);
            PortExploits.exeNums.Add(4);
            PortExploits.cracks[4]               = "SecurityTracer.exe";
            PortExploits.needsPort[4]            = false;
            PortExploits.crackExeData[4]         = Computer.generateBinaryString(500, rng);
            PortExploits.crackExeDataLocalRNG[4] = Computer.generateBinaryString(500);
            PortExploits.exeNums.Add(8);
            PortExploits.cracks[8]               = "Notes.exe";
            PortExploits.needsPort[8]            = false;
            PortExploits.crackExeData[8]         = Computer.generateBinaryString(500, rng);
            PortExploits.crackExeDataLocalRNG[8] = Computer.generateBinaryString(500);
            PortExploits.exeNums.Add(9);
            PortExploits.cracks[9]               = "Decypher.exe";
            PortExploits.needsPort[9]            = false;
            PortExploits.crackExeData[9]         = Computer.generateBinaryString(500, rng);
            PortExploits.crackExeDataLocalRNG[9] = Computer.generateBinaryString(500);
            PortExploits.exeNums.Add(10);
            PortExploits.cracks[10]               = "DECHead.exe";
            PortExploits.needsPort[10]            = false;
            PortExploits.crackExeData[10]         = Computer.generateBinaryString(500, rng);
            PortExploits.crackExeDataLocalRNG[10] = Computer.generateBinaryString(500);
            PortExploits.exeNums.Add(11);
            PortExploits.cracks[11]               = "Clock.exe";
            PortExploits.needsPort[11]            = false;
            PortExploits.crackExeData[11]         = Computer.generateBinaryString(500, rng);
            PortExploits.crackExeDataLocalRNG[11] = Computer.generateBinaryString(500);
            PortExploits.exeNums.Add(12);
            PortExploits.cracks[12]               = "TraceKill.exe";
            PortExploits.needsPort[12]            = false;
            PortExploits.crackExeData[12]         = Computer.generateBinaryString(500, rng);
            PortExploits.crackExeDataLocalRNG[12] = Computer.generateBinaryString(500);
            PortExploits.exeNums.Add(13);
            PortExploits.cracks[13]               = "eosDeviceScan.exe";
            PortExploits.needsPort[13]            = false;
            PortExploits.crackExeDataLocalRNG[13] = Computer.generateBinaryString(500);
            PortExploits.exeNums.Add(14);
            PortExploits.cracks[14]               = "themechanger.exe";
            PortExploits.needsPort[14]            = false;
            PortExploits.crackExeData[14]         = Computer.generateBinaryString(500, rng);
            PortExploits.crackExeDataLocalRNG[14] = Computer.generateBinaryString(500);
            PortExploits.exeNums.Add(15);
            PortExploits.cracks[15]               = "hacknet.exe";
            PortExploits.needsPort[15]            = false;
            PortExploits.crackExeData[15]         = Computer.generateBinaryString(500, rng);
            PortExploits.crackExeDataLocalRNG[15] = Computer.generateBinaryString(500);
            PortExploits.exeNums.Add(16);
            PortExploits.cracks[16]               = "HexClock.exe";
            PortExploits.needsPort[16]            = false;
            PortExploits.crackExeData[16]         = Computer.generateBinaryString(500, rng);
            PortExploits.crackExeDataLocalRNG[16] = Computer.generateBinaryString(500);
            PortExploits.exeNums.Add(17);
            PortExploits.cracks[17]               = "Sequencer.exe";
            PortExploits.needsPort[17]            = false;
            PortExploits.crackExeData[17]         = Computer.generateBinaryString(500, rng);
            PortExploits.crackExeDataLocalRNG[17] = Computer.generateBinaryString(500);
            PortExploits.crackExeData[13]         = Computer.generateBinaryString(500, rng);
            StreamReader streamReader = new StreamReader(TitleContainer.OpenStream("Content/passwords.txt"));
            string       end          = streamReader.ReadToEnd();

            streamReader.Close();
            PortExploits.passwords = new List <string>((IEnumerable <string>)end.Replace("\n", " ").Replace("\r", "").Split(new char[3]
            {
                ' ',
                '\t',
                '\n'
            }));
            PortExploits.ValidPacemakerFirmware         = Computer.generateBinaryString(500, rng);
            PortExploits.DangerousPacemakerFirmware     = Computer.generateBinaryString(500, rng);
            PortExploits.ValidPacemakerFirmwareLRNG     = Computer.generateBinaryString(500);
            PortExploits.DangerousPacemakerFirmwareLRNG = Computer.generateBinaryString(500);
            PortExploits.portNums.Add(6881);
            PortExploits.exeNums.Add(6881);
            PortExploits.services[6881]             = "BitTorrent";
            PortExploits.cracks[6881]               = "TorrentStreamInjector.exe";
            PortExploits.needsPort[6881]            = true;
            PortExploits.crackExeData[6881]         = Computer.generateBinaryString(500, rng);
            PortExploits.crackExeDataLocalRNG[6881] = Computer.generateBinaryString(500);
            PortExploits.portNums.Add(443);
            PortExploits.exeNums.Add(443);
            PortExploits.services[443]             = "HTTPS (SSL)";
            PortExploits.cracks[443]               = "SSLTrojan.exe";
            PortExploits.needsPort[443]            = true;
            PortExploits.crackExeData[443]         = Computer.generateBinaryString(500, rng);
            PortExploits.crackExeDataLocalRNG[443] = Computer.generateBinaryString(500);
            PortExploits.exeNums.Add(31);
            PortExploits.cracks[31]               = "KaguyaTrial.exe";
            PortExploits.needsPort[31]            = false;
            PortExploits.crackExeData[31]         = Computer.generateBinaryString(500, rng);
            PortExploits.crackExeDataLocalRNG[31] = Computer.generateBinaryString(500);
            PortExploits.portNums.Add(211);
            PortExploits.exeNums.Add(211);
            PortExploits.services[211]             = "Transfer";
            PortExploits.cracks[211]               = "FTPSprint.exe";
            PortExploits.needsPort[211]            = true;
            PortExploits.crackExeData[211]         = Computer.generateBinaryString(500, rng);
            PortExploits.crackExeDataLocalRNG[211] = Computer.generateBinaryString(500);
            PortExploits.portNums.Add(32);
            PortExploits.exeNums.Add(32);
            PortExploits.services[32]             = "SignalScramble";
            PortExploits.cracks[32]               = "SignalScramble.exe";
            PortExploits.needsPort[32]            = false;
            PortExploits.crackExeData[32]         = Computer.generateBinaryString(500, rng);
            PortExploits.crackExeDataLocalRNG[32] = Computer.generateBinaryString(500);
            PortExploits.portNums.Add(9418);
            PortExploits.exeNums.Add(9418);
            PortExploits.services[9418]             = "Version Control";
            PortExploits.cracks[9418]               = "GitTunnel.exe";
            PortExploits.needsPort[9418]            = false;
            PortExploits.crackExeData[9418]         = Computer.generateBinaryString(500, rng);
            PortExploits.crackExeDataLocalRNG[9418] = Computer.generateBinaryString(500);
            PortExploits.portNums.Add(192);
            PortExploits.exeNums.Add(192);
            PortExploits.services[192]             = "Pacific Dedicated";
            PortExploits.cracks[192]               = "PacificPortcrusher.exe";
            PortExploits.needsPort[192]            = true;
            PortExploits.crackExeData[192]         = Computer.generateBinaryString(500, rng);
            PortExploits.crackExeDataLocalRNG[192] = Computer.generateBinaryString(500);
            PortExploits.portNums.Add(33);
            PortExploits.exeNums.Add(33);
            PortExploits.cracks[33]               = "MemForensics.exe";
            PortExploits.needsPort[33]            = false;
            PortExploits.crackExeData[33]         = Computer.generateBinaryString(500, rng);
            PortExploits.crackExeDataLocalRNG[33] = Computer.generateBinaryString(500);
            PortExploits.portNums.Add(34);
            PortExploits.exeNums.Add(34);
            PortExploits.cracks[34]               = "MemDumpGenerator.exe";
            PortExploits.needsPort[34]            = false;
            PortExploits.crackExeData[34]         = Computer.generateBinaryString(500, rng);
            PortExploits.crackExeDataLocalRNG[34] = Computer.generateBinaryString(500);
            PortExploits.portNums.Add(35);
            PortExploits.exeNums.Add(35);
            PortExploits.cracks[35]               = "NetmapOrganizer.exe";
            PortExploits.needsPort[35]            = false;
            PortExploits.crackExeData[35]         = Computer.generateBinaryString(500, rng);
            PortExploits.crackExeDataLocalRNG[35] = Computer.generateBinaryString(500);
            PortExploits.portNums.Add(36);
            PortExploits.exeNums.Add(36);
            PortExploits.cracks[36]               = "ComShell.exe";
            PortExploits.needsPort[36]            = false;
            PortExploits.crackExeData[36]         = Computer.generateBinaryString(500, rng);
            PortExploits.crackExeDataLocalRNG[36] = Computer.generateBinaryString(500);
            PortExploits.portNums.Add(37);
            PortExploits.exeNums.Add(37);
            PortExploits.cracks[37]               = "DNotes.exe";
            PortExploits.needsPort[37]            = false;
            PortExploits.crackExeData[37]         = Computer.generateBinaryString(500, rng);
            PortExploits.crackExeDataLocalRNG[37] = Computer.generateBinaryString(500);
            PortExploits.portNums.Add(38);
            PortExploits.exeNums.Add(38);
            PortExploits.cracks[38]               = "ClockV2.exe";
            PortExploits.needsPort[38]            = false;
            PortExploits.crackExeData[38]         = Computer.generateBinaryString(500, rng);
            PortExploits.crackExeDataLocalRNG[38] = Computer.generateBinaryString(500);
            PortExploits.portNums.Add(39);
            PortExploits.exeNums.Add(39);
            PortExploits.cracks[39]                = "Tuneswap.exe";
            PortExploits.needsPort[39]             = false;
            PortExploits.crackExeData[39]          = Computer.generateBinaryString(500, rng);
            PortExploits.crackExeDataLocalRNG[39]  = Computer.generateBinaryString(500);
            PortExploits.ValidAircraftOperatingDLL = Computer.generateBinaryString(500, rng);
            PortExploits.portNums.Add(554);
            PortExploits.exeNums.Add(554);
            PortExploits.services[554]             = "RTSP";
            PortExploits.cracks[554]               = "RTSPCrack.exe";
            PortExploits.needsPort[554]            = true;
            PortExploits.crackExeData[554]         = Computer.generateBinaryString(500, rng);
            PortExploits.crackExeDataLocalRNG[554] = Computer.generateBinaryString(500);
            PortExploits.exeNums.Add(40);
            PortExploits.cracks[40]               = "ESequencer.exe";
            PortExploits.needsPort[40]            = false;
            PortExploits.crackExeData[40]         = Computer.generateBinaryString(500, rng);
            PortExploits.crackExeDataLocalRNG[40] = Computer.generateBinaryString(500);
            PortExploits.portNums.Add(41);
            PortExploits.exeNums.Add(41);
            PortExploits.cracks[41]               = "OpShell.exe";
            PortExploits.needsPort[41]            = false;
            PortExploits.crackExeData[41]         = Computer.generateBinaryString(500, rng);
            PortExploits.crackExeDataLocalRNG[41] = Computer.generateBinaryString(500);
            Utils.random = random2;
        }
Beispiel #22
0
        public static void runCommand(int value, string name)
        {
            MissionFunctions.assertOS();
            if (name.ToLower().Trim() == "none")
            {
                return;
            }
            if (name.Equals("addRank"))
            {
                if (!OS.TestingPassOnly || MissionFunctions.os.currentFaction != null)
                {
                    MissionFunctions.os.currentFaction.addValue(value, (object)MissionFunctions.os);
                    string email = MailServer.generateEmail(LocaleTerms.Loc("Contract Successful"), string.Format(Utils.readEntireFile("Content/LocPost/MissionCompleteEmail.txt"), (object)MissionFunctions.os.currentFaction.getRank(), (object)MissionFunctions.os.currentFaction.getMaxRank(), (object)MissionFunctions.os.currentFaction.name), MissionFunctions.os.currentFaction.name + " ReplyBot");
                    ((MailServer)MissionFunctions.os.netMap.mailServer.getDaemon(typeof(MailServer))).addMail(email, MissionFunctions.os.defaultUser.name);
                }
                else if (OS.DEBUG_COMMANDS && MissionFunctions.os.currentFaction == null)
                {
                    MissionFunctions.os.write("----------");
                    MissionFunctions.os.write("----------");
                    MissionFunctions.os.write("ERROR IN FUNCTION 'addRank'");
                    MissionFunctions.os.write("Player is not assigned to a faction, so rank cannot be added!");
                    MissionFunctions.os.write("Make sure you have assigned a player a faction with the 'SetFaction' function before using this!");
                    MissionFunctions.os.write("----------");
                    MissionFunctions.os.write("----------");
                }
            }
            else if (name.Equals("addRankSilent"))
            {
                if (OS.TestingPassOnly && MissionFunctions.os.currentFaction == null)
                {
                    return;
                }
                MissionFunctions.os.currentFaction.addValue(value, (object)MissionFunctions.os);
            }
            else if (name.StartsWith("addFlags:"))
            {
                foreach (string flag in name.Substring("addFlags:".Length).Split(Utils.commaDelim, StringSplitOptions.RemoveEmptyEntries))
                {
                    MissionFunctions.os.Flags.AddFlag(flag);
                }
                CustomFaction currentFaction = MissionFunctions.os.currentFaction as CustomFaction;
                if (currentFaction == null)
                {
                    return;
                }
                currentFaction.CheckForAllCustomActionsToRun((object)MissionFunctions.os);
            }
            else if (name.StartsWith("removeFlags:"))
            {
                string[] strArray = name.Substring("removeFlags:".Length).Split(Utils.commaDelim, StringSplitOptions.RemoveEmptyEntries);
                for (int index = 0; index < strArray.Length; ++index)
                {
                    if (MissionFunctions.os.Flags.HasFlag(strArray[index]))
                    {
                        MissionFunctions.os.Flags.RemoveFlag(strArray[index]);
                    }
                }
                CustomFaction currentFaction = MissionFunctions.os.currentFaction as CustomFaction;
                if (currentFaction == null)
                {
                    return;
                }
                currentFaction.CheckForAllCustomActionsToRun((object)MissionFunctions.os);
            }
            else if (name.StartsWith("setFaction:"))
            {
                string newFaction = name.Substring("setFaction:".Length);
                bool   flag       = false;
                foreach (KeyValuePair <string, Faction> faction in MissionFunctions.os.allFactions.factions)
                {
                    if (faction.Value.idName.ToLower() == newFaction.ToLower())
                    {
                        MissionFunctions.os.allFactions.setCurrentFaction(newFaction, MissionFunctions.os);
                        flag = true;
                        break;
                    }
                }
                if (!flag && OS.TestingPassOnly)
                {
                    throw new NullReferenceException("Faction " + newFaction + "not found for setFaction action!");
                }
            }
            else if (name.StartsWith("loadConditionalActions:"))
            {
                RunnableConditionalActions.LoadIntoOS(name.Substring("loadConditionalActions:".Length), (object)MissionFunctions.os);
            }
            else if (name.Equals("triggerThemeHackRevenge"))
            {
                MissionFunctions.os.delayer.Post(ActionDelayer.Wait(5.0), (Action)(() =>
                {
                    string email = MailServer.generateEmail(LocaleTerms.Loc("Are you Kidding me?"), Utils.readEntireFile("Content/LocPost/NaixEmail.txt"), "*****@*****.**");
                    ((MailServer)MissionFunctions.os.netMap.mailServer.getDaemon(typeof(MailServer))).addMail(email, MissionFunctions.os.defaultUser.name);
                    MissionFunctions.os.delayer.Post(ActionDelayer.Wait(24.0), (Action)(() =>
                    {
                        try
                        {
                            HackerScriptExecuter.runScript("HackerScripts/ThemeHack.txt", (object)MissionFunctions.os, (string)null, (string)null);
                        }
                        catch (Exception ex)
                        {
                            if (!Settings.recoverFromErrorsSilently)
                            {
                                throw ex;
                            }
                            MissionFunctions.os.write("CAUTION: UNSYNDICATED OUTSIDE CONNECTION ATTEMPT");
                            MissionFunctions.os.write("RECOVERED FROM CONNECTION SUBTERFUGE SUCCESSFULLY");
                            Console.WriteLine("Critical error loading hacker script - aborting");
                        }
                    }));
                }));
            }
            else if (name.Equals("changeSong"))
            {
                switch (value)
                {
                case 2:
                    MusicManager.transitionToSong("Music\\The_Quickening");
                    break;

                case 3:
                    MusicManager.transitionToSong("Music\\TheAlgorithm");
                    break;

                case 4:
                    MusicManager.transitionToSong("Music\\Ryan3");
                    break;

                case 5:
                    MusicManager.transitionToSong("Music\\Bit(Ending)");
                    break;

                case 6:
                    MusicManager.transitionToSong("Music\\Rico_Puestel-Roja_Drifts_By");
                    break;

                case 7:
                    MusicManager.transitionToSong("Music\\out_run_the_wolves");
                    break;

                case 8:
                    MusicManager.transitionToSong("Music\\Irritations");
                    break;

                case 9:
                    MusicManager.transitionToSong("Music\\Broken_Boy");
                    break;

                case 10:
                    MusicManager.transitionToSong("Music\\Ryan10");
                    break;

                case 11:
                    MusicManager.transitionToSong("Music\\tetrameth");
                    break;

                default:
                    MusicManager.transitionToSong("Music\\Revolve");
                    break;
                }
            }
            else if (name.Equals("entropyEndMissionSetup"))
            {
                MissionFunctions.runCommand(3, "changeSong");
                Computer  comp1      = MissionFunctions.findComp("corp0#IS");
                Computer  comp2      = MissionFunctions.findComp("corp0#MF");
                Computer  comp3      = MissionFunctions.findComp("corp0#BU");
                FileEntry fileEntry1 = new FileEntry(Computer.generateBinaryString(5000), "HacknetOS.rar");
                FileEntry fileEntry2 = new FileEntry(Computer.generateBinaryString(4000), "HacknetOS_Data.xnb");
                FileEntry fileEntry3 = new FileEntry(Computer.generateBinaryString(4000), "HacknetOS_Content.xnb");
                Folder    folder1    = comp1.files.root.folders[2];
                folder1.files.Add(fileEntry1);
                folder1.files.Add(fileEntry2);
                folder1.files.Add(fileEntry3);
                Folder folder2 = comp2.files.root.folders[2];
                folder2.files.Add(fileEntry1);
                folder2.files.Add(fileEntry2);
                folder2.files.Add(fileEntry3);
                FileEntry fileEntry4 = new FileEntry(fileEntry1.data, fileEntry1.name + "_backup");
                FileEntry fileEntry5 = new FileEntry(fileEntry2.data, fileEntry2.name + "_backup");
                FileEntry fileEntry6 = new FileEntry(fileEntry3.data, fileEntry3.name + "_backup");
                Folder    folder3    = comp3.files.root.folders[2];
                folder3.files.Add(fileEntry4);
                folder3.files.Add(fileEntry5);
                folder3.files.Add(fileEntry6);
                comp1.traceTime           = Computer.BASE_TRACE_TIME * 7.5f;
                comp3.traceTime           = Computer.BASE_TRACE_TIME * 7.5f;
                comp2.traceTime           = Computer.BASE_TRACE_TIME * 7.5f;
                comp2.portsNeededForCrack = 3;
                comp1.portsNeededForCrack = 2;
                comp3.portsNeededForCrack = 2;
                Folder folder4 = MissionFunctions.findComp("entropy01").files.root.folders[2];
                folder4.files.Add(new FileEntry(PortExploits.crackExeData[25], "SMTPoverflow.exe"));
                folder4.files.Add(new FileEntry(PortExploits.crackExeData[80], "WebServerWorm.exe"));
            }
            else if (name.Equals("entropyAddSMTPCrack"))
            {
                Folder folder = MissionFunctions.findComp("entropy01").files.root.folders[2];
                bool   flag   = false;
                for (int index = 0; index < folder.files.Count; ++index)
                {
                    if (folder.files[index].data == PortExploits.crackExeData[25] || folder.files[index].name == "SMTPoverflow.exe")
                    {
                        flag = true;
                    }
                }
                if (!flag)
                {
                    folder.files.Add(new FileEntry(PortExploits.crackExeData[25], Utils.GetNonRepeatingFilename("SMTPoverflow", ".exe", folder)));
                }
                MissionFunctions.os.Flags.AddFlag("ThemeHackTransitionAssetsAdded");
            }
            else if (name.Equals("transitionToBitMissions"))
            {
                if (Settings.isDemoMode)
                {
                    MissionFunctions.runCommand(6, "changeSong");
                    if (Settings.isPressBuildDemo)
                    {
                        ComputerLoader.loadMission("Content/Missions/Demo/PressBuild/DemoMission01.xml", false);
                    }
                    else
                    {
                        ComputerLoader.loadMission("Content/Missions/Demo/AvconDemo.xml", false);
                    }
                }
                else
                {
                    ComputerLoader.loadMission("Content/Missions/BitMission0.xml", false);
                }
            }
            else if (name.Equals("entropySendCSECInvite"))
            {
                MissionFunctions.os.delayer.Post(ActionDelayer.Wait(6.0), (Action)(() => ComputerLoader.loadMission("Content/Missions/MainHub/Intro/Intro01.xml", false)));
            }
            else if (name.Equals("hubBitSetComplete01"))
            {
                MissionFunctions.os.delayer.Post(ActionDelayer.Wait(4.0), (Action)(() => MissionFunctions.runCommand(1, "addRank")));
                MissionFunctions.runCommand(3, "changeSong");
                MissionFunctions.os.Flags.AddFlag("csecBitSet01Complete");
            }
            else if (name.Equals("enTechEnableOfflineBackup"))
            {
                Programs.getComputer(MissionFunctions.os, "EnTechOfflineBackup");
                MissionFunctions.os.Flags.AddFlag("VaporSequencerEnabled");
                Folder folder1 = MissionFunctions.findComp("mainHubAssets").files.root.searchForFolder("bin");
                Folder folder2 = folder1.searchForFolder("Sequencer");
                if (folder2 == null)
                {
                    folder2 = new Folder("Sequencer");
                    folder1.folders.Add(folder2);
                }
                if (folder2.searchForFile("Sequencer.exe") != null)
                {
                    return;
                }
                folder2.files.Add(new FileEntry(PortExploits.crackExeData[17], "Sequencer.exe"));
            }
            else if (name.Equals("rudeNaixResponse"))
            {
                AchievementsManager.Unlock("rude_response", false);
            }
            else if (name.Equals("assignPlayerToHubServerFaction"))
            {
                MissionFunctions.os.allFactions.setCurrentFaction("hub", MissionFunctions.os);
                Computer         computer   = Programs.getComputer(MissionFunctions.os, "mainHub");
                MissionHubServer daemon     = (MissionHubServer)computer.getDaemon(typeof(MissionHubServer));
                UserDetail       userDetail = new UserDetail(MissionFunctions.os.defaultUser.name, "reptile", (byte)3);
                computer.addNewUser(computer.ip, userDetail);
                daemon.addUser(userDetail);
                MissionFunctions.os.homeNodeID        = "mainHub";
                MissionFunctions.os.homeAssetServerID = "mainHubAssets";
                MissionFunctions.runCommand(3, "changeSong");
                MissionFunctions.os.Flags.AddFlag("CSEC_Member");
                AchievementsManager.Unlock("progress_csec", false);
                if (!MissionFunctions.os.HasLoadedDLCContent || !Settings.EnableDLC || MissionFunctions.os.Flags.HasFlag("dlc_complete"))
                {
                    return;
                }
                daemon.AddMissionToListings("Content/DLC/Missions/BaseGameConnectors/Missions/CSEC_DLCConnectorIntro.xml", 1);
            }
            else if (name.Equals("assignPlayerToEntropyFaction"))
            {
                MissionFunctions.runCommand(6, "changeSong");
                MissionFunctions.os.homeNodeID        = "entropy00";
                MissionFunctions.os.homeAssetServerID = "entropy01";
                AchievementsManager.Unlock("progress_entropy", false);
            }
            else if (name.Equals("assignPlayerToLelzSec"))
            {
                MissionFunctions.os.homeNodeID        = "lelzSecHub";
                MissionFunctions.os.homeAssetServerID = "lelzSecHub";
                MissionFunctions.os.Flags.AddFlag("LelzSec_Member");
                AchievementsManager.Unlock("progress_lelz", false);
            }
            else if (name.Equals("lelzSecVictory"))
            {
                AchievementsManager.Unlock("secret_path_complete", false);
            }
            else if (name.Equals("demoFinalMissionEnd"))
            {
                MissionFunctions.os.exes.Clear();
                PostProcessor.EndingSequenceFlashOutActive             = true;
                PostProcessor.EndingSequenceFlashOutPercentageComplete = 1f;
                MusicManager.stop();
                MissionFunctions.os.delayer.Post(ActionDelayer.Wait(0.2), (Action)(() => MissionFunctions.os.content.Load <SoundEffect>("Music/Ambient/spiral_gauge_down").Play()));
                MissionFunctions.os.delayer.Post(ActionDelayer.Wait(3.0), (Action)(() =>
                {
                    PostProcessor.dangerModeEnabled = false;
                    PostProcessor.dangerModePercentComplete = 0.0f;
                    MissionFunctions.os.ExitScreen();
                    MissionFunctions.os.ScreenManager.AddScreen((GameScreen) new DemoEndScreen());
                }));
            }
            else if (name.Equals("demoFinalMissionEndDLC"))
            {
                if (!Settings.isDemoMode)
                {
                    return;
                }
                MissionFunctions.os.exes.Clear();
                PostProcessor.EndingSequenceFlashOutActive             = true;
                PostProcessor.EndingSequenceFlashOutPercentageComplete = 1f;
                MusicManager.stop();
                MissionFunctions.os.delayer.Post(ActionDelayer.Wait(0.0), (Action)(() => MissionFunctions.os.content.Load <SoundEffect>("SFX/BrightFlash").Play()));
                MissionFunctions.os.delayer.Post(ActionDelayer.Wait(0.4), (Action)(() => MissionFunctions.os.content.Load <SoundEffect>("SFX/TraceKill").Play()));
                MissionFunctions.os.delayer.Post(ActionDelayer.Wait(1.6), (Action)(() =>
                {
                    MusicManager.playSongImmediatley("DLC/Music/DreamHead");
                    PostProcessor.dangerModeEnabled = false;
                    PostProcessor.dangerModePercentComplete = 0.0f;
                    MissionFunctions.os.ScreenManager.AddScreen((GameScreen) new DemoEndScreen()
                    {
                        StopsMusic = false,
                        IsDLCDemoScreen = true
                    });
                    MissionFunctions.os.ExitScreen();
                }));
            }
            else if (name.Equals("demoFinalMissionStart"))
            {
                MissionFunctions.os.Flags.AddFlag("DemoSequencerEnabled");
                MusicManager.transitionToSong("Music/Ambient/dark_drone_008");
            }
            else if (name.Equals("CSECTesterGameWorldSetup"))
            {
                for (int index = 0; index < PortExploits.services.Count && index < 4; ++index)
                {
                    MissionFunctions.os.thisComputer.files.root.folders[2].files.Add(new FileEntry(PortExploits.crackExeData[PortExploits.portNums[index]], PortExploits.cracks[PortExploits.portNums[index]]));
                }
                for (int index = 0; index < 4; ++index)
                {
                    Computer c = new Computer("DebugShell" + (object)index, NetworkMap.generateRandomIP(), MissionFunctions.os.netMap.getRandomPosition(), 0, (byte)2, MissionFunctions.os);
                    c.adminIP = MissionFunctions.os.thisComputer.adminIP;
                    MissionFunctions.os.netMap.nodes.Add(c);
                    MissionFunctions.os.netMap.discoverNode(c);
                }
                MissionFunctions.os.delayer.Post(ActionDelayer.Wait(0.2), (Action)(() =>
                {
                    MissionFunctions.os.allFactions.setCurrentFaction("entropy", MissionFunctions.os);
                    MissionFunctions.os.currentMission = (ActiveMission)null;
                    MissionFunctions.os.netMap.discoverNode(Programs.getComputer(MissionFunctions.os, "entropy00"));
                    MissionFunctions.os.netMap.discoverNode(Programs.getComputer(MissionFunctions.os, "entropy01"));
                }));
            }
            else if (name.Equals("EntropyFastFowardSetup"))
            {
                MissionFunctions.os.thisComputer.files.root.folders[2].files.Add(new FileEntry(PortExploits.crackExeData[22], PortExploits.cracks[22]));
                MissionFunctions.os.thisComputer.files.root.folders[2].files.Add(new FileEntry(PortExploits.crackExeData[21], PortExploits.cracks[21]));
                for (int index = 0; index < 3; ++index)
                {
                    Computer c = new Computer("DebugShell" + (object)index, NetworkMap.generateRandomIP(), MissionFunctions.os.netMap.getRandomPosition(), 0, (byte)2, MissionFunctions.os);
                    c.adminIP = MissionFunctions.os.thisComputer.adminIP;
                    MissionFunctions.os.netMap.nodes.Add(c);
                    MissionFunctions.os.netMap.discoverNode(c);
                }
                MissionFunctions.os.delayer.Post(ActionDelayer.Wait(0.2), (Action)(() =>
                {
                    MissionFunctions.os.allFactions.setCurrentFaction("entropy", MissionFunctions.os);
                    MissionFunctions.os.currentMission = (ActiveMission)null;
                    MissionFunctions.os.netMap.discoverNode(Programs.getComputer(MissionFunctions.os, "entropy00"));
                    MissionFunctions.os.netMap.discoverNode(Programs.getComputer(MissionFunctions.os, "entropy01"));
                    Computer computer = Programs.getComputer(MissionFunctions.os, "entropy01");
                    UserDetail user = computer.users[0];
                    user.known = true;
                    computer.users[0] = user;
                    MissionFunctions.os.allFactions.factions[MissionFunctions.os.allFactions.currentFaction].playerValue = 2;
                    MissionFunctions.os.delayer.Post(ActionDelayer.Wait(0.2), (Action)(() =>
                    {
                        MissionFunctions.os.Flags.AddFlag("eosPathStarted");
                        ComputerLoader.loadMission("Content/Missions/Entropy/StartingSet/eosMissions/eosIntroDelayer.xml", false);
                    }));
                }));
            }
            else if (name.Equals("CSECFastFowardSetup"))
            {
                MissionFunctions.os.thisComputer.files.root.folders[2].files.Add(new FileEntry(PortExploits.crackExeData[22], PortExploits.cracks[22]));
                MissionFunctions.os.thisComputer.files.root.folders[2].files.Add(new FileEntry(PortExploits.crackExeData[21], PortExploits.cracks[21]));
                for (int index = 0; index < 3; ++index)
                {
                    Computer c = new Computer("DebugShell" + (object)index, NetworkMap.generateRandomIP(), MissionFunctions.os.netMap.getRandomPosition(), 0, (byte)2, MissionFunctions.os);
                    c.adminIP = MissionFunctions.os.thisComputer.adminIP;
                    MissionFunctions.os.netMap.nodes.Add(c);
                    MissionFunctions.os.netMap.discoverNode(c);
                }
                MissionFunctions.os.delayer.Post(ActionDelayer.Wait(0.2), (Action)(() =>
                {
                    MissionFunctions.runCommand(0, "assignPlayerToHubServerFaction");
                    MissionFunctions.os.currentMission = (ActiveMission)null;
                    MissionFunctions.os.netMap.discoverNode(Programs.getComputer(MissionFunctions.os, "mainHub"));
                    MissionFunctions.os.netMap.discoverNode(Programs.getComputer(MissionFunctions.os, "mainHubAssets"));
                    Computer computer = Programs.getComputer(MissionFunctions.os, "mainHubAssets");
                    UserDetail user = computer.users[0];
                    user.known = true;
                    computer.users[0] = user;
                }));
            }
            else if (name.Equals("csecAddTraceKill"))
            {
                Folder folder = MissionFunctions.findComp("mainHubAssets").files.root.searchForFolder("bin");
                Folder f      = folder.searchForFolder("TK");
                if (f == null)
                {
                    f = new Folder("TK");
                    folder.folders.Add(f);
                }
                f.files.Add(new FileEntry(FileEncrypter.EncryptString(PortExploits.crackExeData[12], "Vapor Trick Enc.", "NULL", "dx122DX", ".exe"), Utils.GetNonRepeatingFilename("TraceKill", ".dec", f)));
                MissionFunctions.os.Flags.AddFlag("bitPathStarted");
                MissionFunctions.runCommand(10, "changeSong");
            }
            else if (name.Equals("junebugComplete"))
            {
                Computer computer = Programs.getComputer(MissionFunctions.os, "pacemaker01");
                if (computer != null)
                {
                    HeartMonitorDaemon daemon = (HeartMonitorDaemon)computer.getDaemon(typeof(HeartMonitorDaemon));
                    if (daemon != null)
                    {
                        daemon.ForceStopBeepSustainSound();
                    }
                }
                MissionFunctions.runCommand(1, "addRank");
            }
            else if (name.Equals("eosIntroMissionSetup"))
            {
                MissionFunctions.findComp("entropy01").files.root.searchForFolder("bin").files.Add(new FileEntry(PortExploits.crackExeData[13], "eosDeviceScan.exe"));
                MissionFunctions.os.delayer.Post(ActionDelayer.Wait(8.0), (Action)(() =>
                {
                    string email = MailServer.generateEmail("Fwd: eOS Stuff", Utils.readEntireFile("Content/Post/eosScannerMail.txt"), "vtfx", new List <string>((IEnumerable <string>) new string[1] {
                        "note#%#" + LocaleTerms.Loc("eOS Security Basics") + "#%#" + Utils.readEntireFile("Content/LocPost/eOSNote.txt")
                    }));
                    ((MailServer)MissionFunctions.os.netMap.mailServer.getDaemon(typeof(MailServer))).addMail(email, MissionFunctions.os.defaultUser.name);
                    MissionFunctions.os.saveGame();
                }));
                MissionFunctions.runCommand(4, "changeSong");
                MissionFunctions.os.saveGame();
            }
            else if (name.Equals("eosIntroEndFunc"))
            {
                MissionFunctions.runCommand(1, "addRank");
                MissionListingServer daemon         = (MissionListingServer)MissionFunctions.findComp("entropy00").getDaemon(typeof(MissionListingServer));
                List <ActiveMission> branchMissions = MissionFunctions.os.branchMissions;
                ActiveMission        m = (ActiveMission)ComputerLoader.readMission("Content/Missions/Entropy/StartingSet/eosMissions/eosAddedMission.xml");
                daemon.addMisison(m, false);
                MissionFunctions.os.branchMissions = branchMissions;
            }
            else if (name.Equals("changeSongDLC"))
            {
                switch (value)
                {
                case 2:
                    MusicManager.transitionToSong("DLC\\Music\\snidelyWhiplash");
                    break;

                case 3:
                    MusicManager.transitionToSong("DLC\\Music\\Slow_Motion");
                    break;

                case 4:
                    MusicManager.transitionToSong("DLC\\Music\\World_Chase");
                    break;

                case 5:
                    MusicManager.transitionToSong("DLC\\Music\\HOME_Resonance");
                    break;

                case 6:
                    MusicManager.transitionToSong("DLC\\Music\\Remi_Finale");
                    break;

                case 7:
                    MusicManager.transitionToSong("DLC\\Music\\RemiDrone");
                    break;

                case 8:
                    MusicManager.transitionToSong("DLC\\Music\\DreamHead");
                    break;

                case 9:
                    MusicManager.transitionToSong("DLC\\Music\\Userspacelike");
                    break;

                case 10:
                    MusicManager.transitionToSong("DLC\\Music\\CrashTrack");
                    break;

                default:
                    MusicManager.transitionToSong("DLC\\Music\\Remi2");
                    break;
                }
            }
            else if (name.Equals("scanAndStartDLCVenganceHack"))
            {
                Computer comp = MissionFunctions.findComp("dAttackTarget");
                if (comp == null)
                {
                    return;
                }
                Folder folder = comp.files.root.searchForFolder("log");
                bool   flag   = false;
                for (int index = 0; index < folder.files.Count; ++index)
                {
                    if (folder.files[index].data.Contains(MissionFunctions.os.thisComputer.ip))
                    {
                        SARunFunction saRunFunction = new SARunFunction()
                        {
                            DelayHost = "dhs", FunctionName = "triggerDLCHackRevenge", FunctionValue = 1
                        };
                        ((DLCHubServer)Programs.getComputer(MissionFunctions.os, "dhs").getDaemon(typeof(DLCHubServer))).DelayedActions.AddAction((SerializableAction)saRunFunction, 16f);
                        break;
                    }
                }
                if (!flag)
                {
                    MissionFunctions.runCommand(4, "changeSongDLC");
                }
            }
            else if (name.Equals("triggerDLCHackRevenge"))
            {
                try
                {
                    HackerScriptExecuter.runScript("DLC/ActionScripts/Hackers/SystemHack.txt", (object)MissionFunctions.os, (string)null, (string)null);
                }
                catch (Exception ex)
                {
                    if (!Settings.recoverFromErrorsSilently)
                    {
                        throw ex;
                    }
                    MissionFunctions.os.write("CAUTION: UNSYNDICATED OUTSIDE CONNECTION ATTEMPT");
                    MissionFunctions.os.write("RECOVERED FROM CONNECTION SUBTERFUGE SUCCESSFULLY");
                    Console.WriteLine("Critical error loading hacker script - aborting\r\n" + Utils.GenerateReportFromException(ex));
                }
            }
            else if (name.Equals("activateAircraftStatusOverlay"))
            {
                MissionFunctions.os.AircraftInfoOverlay.Activate();
                MissionFunctions.os.AircraftInfoOverlay.IsMonitoringDLCEndingCases = true;
            }
            else if (name.Equals("activateAircraftStatusOverlayLabyrinthsMonitoring"))
            {
                MissionFunctions.os.AircraftInfoOverlay.IsMonitoringDLCEndingCases = true;
            }
            else if (name.Equals("deActivateAircraftStatusOverlay"))
            {
                MissionFunctions.os.AircraftInfoOverlay.IsActive = false;
                MissionFunctions.os.AircraftInfoOverlay.IsMonitoringDLCEndingCases = false;
                MissionFunctions.os.Flags.AddFlag("AircraftInfoOverlayDeactivated");
            }
            else if (name.Equals("defAttackAircraft"))
            {
                Computer computer = Programs.getComputer(MissionFunctions.os, "dair_crash");
                Folder   folder   = computer.files.root.searchForFolder("FlightSystems");
                for (int index = 0; index < folder.files.Count; ++index)
                {
                    if (folder.files[index].name == "747FlightOps.dll")
                    {
                        folder.files.RemoveAt(index);
                        break;
                    }
                }
                ((AircraftDaemon)computer.getDaemon(typeof(AircraftDaemon))).StartReloadFirmware();
                if (MissionFunctions.os.AircraftInfoOverlay.IsActive)
                {
                    return;
                }
                MissionFunctions.os.AircraftInfoOverlay.Activate();
                MissionFunctions.os.AircraftInfoOverlay.IsMonitoringDLCEndingCases = true;
            }
            else if (name.Equals("playAirlineCrashSongSequence"))
            {
                MusicManager.playSongImmediatley("DLC\\Music\\Remi_Finale");
                MediaPlayer.IsRepeating = false;
            }
            else if (name.Equals("flashUI"))
            {
                MissionFunctions.os.warningFlash();
            }
            else if (name.Equals("addRankSilent"))
            {
                MissionFunctions.os.currentFaction.addValue(value, (object)MissionFunctions.os);
            }
            else if (name.StartsWith("addRankFaction:"))
            {
                string str = name.Substring("addRankFaction:".Length);
                foreach (KeyValuePair <string, Faction> faction in MissionFunctions.os.allFactions.factions)
                {
                    if (faction.Value.idName.ToLower() == str.ToLower())
                    {
                        faction.Value.addValue(value, (object)MissionFunctions.os);
                        break;
                    }
                }
            }
            else if (name.StartsWith("setHubServer:"))
            {
                string str = name.Substring("setHubServer:".Length);
                MissionFunctions.os.homeNodeID = str;
            }
            else if (name.StartsWith("setAssetServer:"))
            {
                string str = name.Substring("setAssetServer:".Length);
                MissionFunctions.os.homeAssetServerID = str;
            }
            else if (name.StartsWith("playCustomSong:"))
            {
                string songName = Utils.GetFileLoadPrefix() + name.Substring("playCustomSong:".Length);
                if (songName.EndsWith(".ogg"))
                {
                    songName = songName.Substring(0, songName.Length - ".ogg".Length);
                }
                if (songName.StartsWith("Content"))
                {
                    songName = songName.Substring("Content/".Length);
                }
                else if (songName.StartsWith("Extensions"))
                {
                    songName = "../" + songName;
                }
                MusicManager.transitionToSong(songName);
            }
            else if (name.StartsWith("playCustomSongImmediatley:"))
            {
                string songname = Utils.GetFileLoadPrefix() + name.Substring("playCustomSongImmediatley:".Length);
                if (songname.EndsWith(".ogg"))
                {
                    songname = songname.Substring(0, songname.Length - ".ogg".Length);
                }
                if (songname.StartsWith("Content"))
                {
                    songname = songname.Substring("Content/".Length);
                }
                else if (songname.StartsWith("Extensions"))
                {
                    songname = "../" + songname;
                }
                MusicManager.playSongImmediatley(songname);
            }
            else
            {
                if (OS.TestingPassOnly && !string.IsNullOrWhiteSpace(name))
                {
                    throw new FormatException("No Command Function " + name);
                }
                if (MissionFunctions.ReportErrorInCommand != null)
                {
                    MissionFunctions.ReportErrorInCommand("No command found for \"" + name + "\" with value \"" + (object)value + "\"");
                }
            }
        }