예제 #1
0
 private static int AttemptExeProgramExecution(OS os, string[] p)
 {
     var computer = os.connectedComp != null ? os.connectedComp : os.thisComputer;
     var folder = os.thisComputer.files.root.searchForFolder("bin");
     var indexOfExeProgram = GetFileIndexOfExeProgram(p[0], folder);
     var flag = indexOfExeProgram == int.MaxValue;
     var index1 = -1;
     if (indexOfExeProgram < 0)
         return -1;
     string exeFileData = null;
     string exeName = null;
     if (!flag)
     {
         exeFileData = folder.files[indexOfExeProgram].data;
         for (var index2 = 0; index2 < PortExploits.exeNums.Count; ++index2)
         {
             var index3 = PortExploits.exeNums[index2];
             if (PortExploits.crackExeData[index3].Equals(exeFileData))
             {
                 exeName = PortExploits.cracks[index3].Replace(".exe", "").ToLower();
                 index1 = index3;
                 break;
             }
         }
     }
     else
     {
         exeName = p[0].Replace(".exe", "").ToLower();
         if (exeName == "notes")
             exeFileData = PortExploits.crackExeData[8];
         if (exeName == "tutorial")
             exeFileData = PortExploits.crackExeData[1];
     }
     if (exeName == null)
         return -1;
     var targetPort = -1;
     if (!flag)
     {
         if (PortExploits.needsPort[index1])
         {
             try
             {
                 for (var index2 = 0; index2 < computer.ports.Count; ++index2)
                 {
                     if (computer.ports[index2] == Convert.ToInt32(p[1]))
                     {
                         targetPort = computer.ports[index2];
                         break;
                     }
                 }
             }
             catch
             {
                 os.write("No port number Provided");
                 return 0;
             }
             if (targetPort == -1)
             {
                 os.write("Target Port is Closed");
                 return 0;
             }
             if (exeFileData != PortExploits.crackExeData[targetPort])
             {
                 os.write("Target Port running incompatible service for this executable");
                 return 0;
             }
         }
     }
     os.launchExecutable(exeName, exeFileData, targetPort, p);
     return 1;
 }
예제 #2
0
        private static int AttemptExeProgramExecution(OS os, string[] p)
        {
            var computer          = os.connectedComp != null ? os.connectedComp : os.thisComputer;
            var folder            = os.thisComputer.files.root.searchForFolder("bin");
            var indexOfExeProgram = GetFileIndexOfExeProgram(p[0], folder);
            var flag   = indexOfExeProgram == int.MaxValue;
            var index1 = -1;

            if (indexOfExeProgram < 0)
            {
                return(-1);
            }
            string exeFileData = null;
            string exeName     = null;

            if (!flag)
            {
                exeFileData = folder.files[indexOfExeProgram].data;
                for (var index2 = 0; index2 < PortExploits.exeNums.Count; ++index2)
                {
                    var index3 = PortExploits.exeNums[index2];
                    if (PortExploits.crackExeData[index3].Equals(exeFileData))
                    {
                        exeName = PortExploits.cracks[index3].Replace(".exe", "").ToLower();
                        index1  = index3;
                        break;
                    }
                }
            }
            else
            {
                exeName = p[0].Replace(".exe", "").ToLower();
                if (exeName == "notes")
                {
                    exeFileData = PortExploits.crackExeData[8];
                }
                if (exeName == "tutorial")
                {
                    exeFileData = PortExploits.crackExeData[1];
                }
            }
            if (exeName == null)
            {
                return(-1);
            }
            var targetPort = -1;

            if (!flag)
            {
                if (PortExploits.needsPort[index1])
                {
                    try
                    {
                        for (var index2 = 0; index2 < computer.ports.Count; ++index2)
                        {
                            if (computer.ports[index2] == Convert.ToInt32(p[1]))
                            {
                                targetPort = computer.ports[index2];
                                break;
                            }
                        }
                    }
                    catch
                    {
                        os.write("No port number Provided");
                        return(0);
                    }
                    if (targetPort == -1)
                    {
                        os.write("Target Port is Closed");
                        return(0);
                    }
                    if (exeFileData != PortExploits.crackExeData[targetPort])
                    {
                        os.write("Target Port running incompatible service for this executable");
                        return(0);
                    }
                }
            }
            os.launchExecutable(exeName, exeFileData, targetPort, p);
            return(1);
        }
예제 #3
0
 public static void firstTimeInit(string[] args, OS os)
 {
     var flag = Settings.initShowsTutorial;
     if (flag)
     {
         os.display.visible = false;
         os.ram.visible = false;
         os.netMap.visible = false;
         os.terminal.visible = true;
         os.mailicon.isEnabled = false;
     }
     var msDelay = Settings.isConventionDemo ? 80 : 200;
     var millisecondsTimeout = Settings.isConventionDemo ? 150 : 300;
     if (Settings.debugCommandsEnabled && GuiData.getKeyboadState().IsKeyDown(Keys.LeftAlt))
         msDelay = millisecondsTimeout = 1;
     typeOut("Initializing .", os, 50);
     doDots(7, msDelay + 100, os);
     typeOut("Loading modules.", os, 50);
     doDots(5, msDelay, os);
     os.writeSingle("Complete");
     if (!Utils.DebugGoFast())
         Thread.Sleep(millisecondsTimeout);
     typeOut("Loading nodes.", os, 50);
     doDots(5, msDelay, os);
     os.writeSingle("Complete");
     if (!Utils.DebugGoFast())
         Thread.Sleep(millisecondsTimeout);
     typeOut("Reticulating splines.", os, 50);
     doDots(5, msDelay - 50, os);
     os.writeSingle("Complete");
     if (!Utils.DebugGoFast())
         Thread.Sleep(millisecondsTimeout);
     if (os.crashModule.BootLoadErrors.Length > 0)
     {
         typeOut("\n------ BOOT ERROS DETECTED ------", os, 50);
         Thread.Sleep(200);
         foreach (
             var s in
                 os.crashModule.BootLoadErrors.Split(Utils.newlineDelim, StringSplitOptions.RemoveEmptyEntries))
         {
             typeOut(s, os, 50);
             Thread.Sleep(100);
         }
         typeOut("---------------------------------\n", os, 50);
         Thread.Sleep(200);
     }
     typeOut("\n--Initialization Complete--\n", os, 50);
     GuiData.getFilteredKeys();
     os.inputEnabled = true;
     if (!Utils.DebugGoFast())
         Thread.Sleep(millisecondsTimeout + 100);
     if (!flag)
     {
         typeOut("For A Command List, type \"help\"", os, 50);
         if (!Utils.DebugGoFast())
             Thread.Sleep(millisecondsTimeout + 100);
     }
     os.write("");
     if (!Utils.DebugGoFast())
         Thread.Sleep(millisecondsTimeout);
     os.write("");
     if (!Utils.DebugGoFast())
         Thread.Sleep(millisecondsTimeout);
     os.write("");
     if (!Utils.DebugGoFast())
         Thread.Sleep(millisecondsTimeout);
     os.write("\n");
     if (flag)
     {
         os.write("Launching Tutorial...");
         os.launchExecutable("Tutorial.exe", PortExploits.crackExeData[1], -1, null);
         Settings.initShowsTutorial = false;
         var num1 = 100;
         for (var index = 0; index < num1; ++index)
         {
             var num2 = index/(double) num1;
             if (Utils.random.NextDouble() < num2)
             {
                 os.ram.visible = true;
                 os.netMap.visible = false;
                 os.terminal.visible = false;
             }
             else
             {
                 os.ram.visible = false;
                 os.netMap.visible = false;
                 os.terminal.visible = true;
             }
             Thread.Sleep(16);
         }
         os.ram.visible = true;
         os.netMap.visible = false;
         os.terminal.visible = false;
     }
     else
         os.runCommand("connect " + os.thisComputer.ip);
 }
예제 #4
0
        private static int AttemptExeProgramExecution(OS os, string[] p)
        {
            Computer target            = os.connectedComp != null ? os.connectedComp : os.thisComputer;
            Folder   folder            = os.thisComputer.files.root.searchForFolder("bin");
            int      indexOfExeProgram = ProgramRunner.GetFileIndexOfExeProgram(p[0], (object)folder);
            bool     flag   = indexOfExeProgram == int.MaxValue;
            int      index1 = -1;
            int      index2 = -1;

            if (indexOfExeProgram < 0)
            {
                return(-1);
            }
            string exeFileData = (string)null;
            string exeName     = (string)null;

            if (!flag)
            {
                exeFileData = folder.files[indexOfExeProgram].data;
                for (int index3 = 0; index3 < PortExploits.exeNums.Count; ++index3)
                {
                    int exeNum = PortExploits.exeNums[index3];
                    if (PortExploits.crackExeData[exeNum].Equals(exeFileData) || PortExploits.crackExeDataLocalRNG[exeNum].Equals(exeFileData))
                    {
                        exeName = PortExploits.cracks[exeNum].Replace(".exe", "").ToLower();
                        index2  = exeNum;
                        break;
                    }
                }
                if (exeName == "ftpsprint")
                {
                    int num;
                    index2 = num = 21;
                    if (exeFileData == PortExploits.crackExeData[211] || exeFileData == PortExploits.crackExeDataLocalRNG[211])
                    {
                        index1 = 211;
                    }
                }
            }
            else
            {
                exeName = p[0].Replace(".exe", "").ToLower();
                if (exeName == "notes")
                {
                    exeFileData = PortExploits.crackExeData[8];
                }
                if (exeName == "tutorial")
                {
                    exeFileData = PortExploits.crackExeData[1];
                }
            }
            if (exeName == null)
            {
                return(-1);
            }
            int targetPort = -1;
            int codePort   = -1;

            if (!flag && PortExploits.needsPort[index2])
            {
                if (p.Length > 1)
                {
                    try
                    {
                        int int32 = Convert.ToInt32(p[1]);
                        int num   = int32;
                        codePort = target.GetCodePortNumberFromDisplayPort(int32);
                        if (num == codePort)
                        {
                            int numberFromCodePort = target.GetDisplayPortNumberFromCodePort(codePort);
                            if (codePort != numberFromCodePort)
                            {
                                codePort = -1;
                            }
                        }
                    }
                    catch (FormatException ex)
                    {
                        codePort = -1;
                    }
                }
                else
                {
                    if (exeName == "ssltrojan")
                    {
                        SSLPortExe.GenerateInstanceOrNullFromArguments(p, Rectangle.Empty, (object)os, target);
                        return(0);
                    }
                    os.write(LocaleTerms.Loc("No port number Provided"));
                    return(0);
                }
            }
            if (!flag && PortExploits.needsPort[index2])
            {
                try
                {
                    for (int index3 = 0; index3 < target.ports.Count; ++index3)
                    {
                        if (target.ports[index3] == codePort)
                        {
                            targetPort = target.ports[index3];
                            break;
                        }
                    }
                }
                catch
                {
                    os.write(LocaleTerms.Loc("No port number Provided"));
                    return(0);
                }
                if (targetPort == -1)
                {
                    os.write(LocaleTerms.Loc("Target Port is Closed"));
                    return(0);
                }
                if (index1 <= -1)
                {
                    index1 = targetPort;
                }
                if (index1 == 211 && targetPort != 21 || exeFileData != PortExploits.crackExeData[index1] && exeFileData != PortExploits.crackExeDataLocalRNG[index1])
                {
                    os.write(LocaleTerms.Loc("Target Port running incompatible service for this executable"));
                    return(0);
                }
            }
            os.launchExecutable(exeName, exeFileData, targetPort, p, p[0]);
            return(1);
        }