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(); }
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(); }
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")); }
public override void LoadContent() { base.LoadContent(); if (binary.Equals("")) { binary = Computer.generateBinaryString(5064); } charsWide = (int)(bounds.Width / 7.69999980926514 + 0.5); }
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); }
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")); }
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); }
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); }
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); }
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")); }
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")); }); } }
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); }
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; }
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; } }
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)); }
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; }
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; }
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; }
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 + "\""); } } }