Changeset 9791 for 2018/26/PyryS/HackSim


Ignore:
Timestamp:
2018-06-27 15:01:40 (4 years ago)
Author:
pymasalm
Message:

Here be codes.

Location:
2018/26/PyryS/HackSim/HackSim
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • 2018/26/PyryS/HackSim/HackSim/HackSim/HackSim/HackSim.cs

    r9790 r9791  
    77using Jypeli.Effects; 
    88using Jypeli.Widgets; 
     9using System.Reflection; 
    910 
    1011public class HackSim : Game 
     
    2021    Widget netmap; 
    2122    Device current_device; 
    22  
     23    Device null_device; 
     24    Widget device_info; 
     25    Label cmd_out; 
     26    List<Ware> player_software; 
     27 
     28    Label info_label = new Label("Hostname: "); 
     29    List<string> info_text = new List<string>() { "\nTitle: ", "\nAddr: ", "\nPorts: " }; 
    2330 
    2431    protected override void Update(Time time) 
     
    2633        cmd_cursor.Position = cmd_line.Cursor.Position; 
    2734        /*checkHover();*/ 
     35        List<String> info_text_fin = new List<string>(info_text); 
     36        //foreach (String i in info_text) 
     37        for (int n = 0; n < info_text.Count; n++) 
     38        { 
     39            String i = info_text[n]; 
     40            if (current_device != null && i != "") 
     41            { 
     42                var v = current_device.GetType(); 
     43                var v2 = v.GetField(i.Split(':')[0].Split('\n')[1] as String); 
     44                var v3 = v2.GetValue(current_device); 
     45                if (!v3.GetType().Name.StartsWith("Dictionary")) 
     46                { 
     47                    info_text_fin[n] = i + "\n" + v3.ToString(); 
     48                    info_label.Text = String.Join("\n", info_text_fin.ToArray()); 
     49                    info_label.Top = info_label.Top = device_info.Top + MARGINS; 
     50                } 
     51                else 
     52                { 
     53                    String info_str = new String(' ', 0); 
     54                    foreach (var k in (v3 as Dictionary<int, Tuple<String, bool>>).Keys) 
     55                    { 
     56                        info_str += (v3 as Dictionary<int, Tuple<String, bool>>)[k].Item1 + " : " + (v3 as Dictionary<int, Tuple<String, bool>>)[k].Item2.ToString() + "\n"; 
     57                    } 
     58                    //info_str = i.ToString() + " : " + info_str; 
     59                    info_text_fin[n] = i + "\n" + info_str; 
     60                    info_label.Text = String.Join("\n", info_text_fin.ToArray()); 
     61                    info_str = ""; 
     62                    info_text_fin = info_text; 
     63                    info_label.Top = info_label.Top = device_info.Top + MARGINS; 
     64                } 
     65            } 
     66        } 
    2867        base.Update(time); 
    2968    } 
    3069    public override void Begin() 
    3170    { 
     71        null_device = new Device(null, "", "", "", new List<Tuple<int, String>> { Tuple.Create(0, "None") }, false); 
     72        current_device = null_device; 
    3273        netmap_list = new List<Device>(); 
    33         netmap_list.Add(new Device(device_icon, "TestBox", "tb", "1234", false)); 
     74        netmap_list.Add(new Device(device_icon, "TestBox", "10.0.1.54", "1234", new List<Tuple<int, String>> { Tuple.Create(22, "SSH"), Tuple.Create(21, "FTP"), Tuple.Create(25, "SMTP") }, false)); 
     75 
     76        player_software = new List<Ware>(); 
     77        player_software.Add(new Ware(true, "FTP", "FTPBruteForce", "FTP Brute Force crack complete", "ERR: Invalid port", "ERR: Security error", 5)); 
    3478 
    3579        SOURCECODE_FONT = LoadFont("SourceCode"); 
     
    58102 
    59103        // Create command line output box 
    60         Label cmd_out = new Label(); 
     104        cmd_out = new Label(); 
    61105        cmd_out.Font = SOURCECODE_FONT; 
    62106        cmd_out.BorderColor = Color.LimeGreen; 
     
    88132        { 
    89133            netmap.Add(i); 
    90         } 
    91  
    92  
    93         Widget device_info = new Widget(cmd_out.Width + MARGINS, Window.Height / 2 - MARGINS * 2); 
     134            Mouse.ListenOn(i, MouseButton.Left, ButtonState.Pressed, ClickConnect, "", i); 
     135        } 
     136        // Create info window 
     137        device_info = new Widget(cmd_out.Width + MARGINS, Window.Height / 2 - MARGINS * 2); 
    94138        device_info.SizingByLayout = false; 
    95139        device_info.Layout = new VerticalLayout(); 
     
    100144        Add(device_info); 
    101145 
    102         Label info_title = new Label("Hostname: "); 
    103         info_title.TextColor = Color.LimeGreen; 
    104         info_title.Font = SOURCECODE_FONT; 
    105         Label info_ports = new Label("Open Ports: "); 
    106         info_ports.TextColor = Color.LimeGreen; 
    107         info_ports.Font = SOURCECODE_FONT; 
    108         Label info_fwall = new Label("Firewall: "); 
    109         info_fwall.TextColor = Color.LimeGreen; 
    110         info_fwall.Font = SOURCECODE_FONT; 
    111  
    112         device_info.Add(info_title); 
    113         device_info.Add(info_ports); 
    114         device_info.Add(info_fwall); 
    115  
    116         /* foreach (Device i in netmap_list) 
    117          { 
    118              for (int j = 0; j < i.Image.Width; j++) 
    119                  for (int k = 0; k < i.Image.Height; k++) 
    120                  { 
    121                      //i.Image[k, j] = Color.Red; 
    122  
    123                      if (i.Image[k, j] != Color.Transparent) 
    124                      { 
    125                          i.Image[k, j] = Color.LimeGreen; 
    126                      } 
    127                  } 
    128              //i.Image.ReplaceColor(Color.White, Color.LimeGreen); 
    129          }*/ 
     146        info_label.HorizontalAlignment = HorizontalAlignment.Left; 
     147        info_label.Tag = "Title"; 
     148        info_label.Left = device_info.Left + MARGINS; 
     149        info_label.Top = device_info.Top - info_label.Height * 2 - MARGINS * 2; 
     150        info_label.TextColor = Color.LimeGreen; 
     151        info_label.Font = SOURCECODE_FONT; 
     152 
     153        Add(info_label); 
     154 
    130155 
    131156        Mouse.ListenMovement(1.0, checkHover, ""); 
    132157    } 
    133     void ProcessCommands(InputBox cmd_line, Label cmd_out) 
     158 
     159    void ClickConnect(Device dev) 
     160    { 
     161        Console.WriteLine(dev.Addr); 
     162        ProcessCommands(cmd_line, cmd_out, ("ssh " + dev.Addr)); 
     163    } 
     164 
     165    void ProcessCommands(InputBox cmd_line, Label cmd_out, String cmd="") 
    134166    { 
    135167        /* 
    136168         * Processes commands entered by the user. 
    137169         */ 
    138         String cmd = cmd_line.Text; 
    139         PrintOutput(cmd_out, usr_name + "@Host ~/ #" + cmd_line.Text); 
    140         cmd_line.Text = ""; 
     170        if (cmd == "") 
     171        { 
     172            cmd = cmd_line.Text; 
     173            cmd_line.Text = ""; 
     174        } 
     175        PrintOutput(cmd_out, usr_name + "@" + current_device.Addr + " ~/# " + cmd); 
    141176        String output = ""; 
     177 
    142178        // Echo something 
    143179        if (cmd.StartsWith("echo ")) 
     
    145181            output = cmd.Split(' ')[1]; 
    146182        } 
     183 
    147184        // Exit 
    148185        else if (cmd.StartsWith("shutdown")) 
     
    150187            Exit(); 
    151188        } 
     189 
    152190        // Connect to system 
    153191        else if (cmd.StartsWith("connect") || cmd.StartsWith("ssh")) 
    154192        { 
    155193            String address = cmd.Split(' ')[1]; 
    156             Console.WriteLine("Address Entered : " + address); 
    157194            bool is_dev_found = new bool(); 
    158195            is_dev_found = false; 
    159             foreach(Device i in netmap_list) 
     196            foreach (Device i in netmap_list) 
    160197            { 
    161198                if (i.Addr == address) 
    162199                { 
     200                    output = "Connected to " + address; 
    163201                    current_device = i; 
     202                    is_dev_found = true; 
    164203                    break; 
    165                     is_dev_found = true; 
    166                 }   
     204                } 
    167205            } 
    168206            if (is_dev_found) 
     
    174212                output = cmd + " : Invalid address."; 
    175213            } 
    176         }    
     214        } 
    177215        else 
    178216        { 
     217            foreach (Ware i in player_software) 
     218            { 
     219                if (cmd.StartsWith(i.Name)) 
     220                { 
     221                    i.Run(Int32.Parse(cmd.Split(' ')[1]), current_device); 
     222                } 
     223            } 
     224        } 
     225         
     226        /*else 
     227        { 
    179228            output = cmd + " : Command not found."; 
    180         } 
     229        }*/ 
    181230        Timer.SingleShot(0.1, () => PrintOutput(cmd_out, output)); 
    182231    } 
     
    207256        { 
    208257 
    209             if (Vector.Distance(i.AbsolutePosition, Mouse.PositionOnWorld) < 23) 
     258            if (Mouse.IsCursorOn(i)) 
    210259            { 
    211260                i.Image = device_icon_hover; 
     
    227276    public Dictionary<int, Tuple<String, bool>> Ports; 
    228277    public bool Firewall; 
    229  
    230     public Device(Image device_icon, String title, String address, String password, bool firewall) : base(50, 50) 
     278    public bool Admin; 
     279 
     280    public Device(Image device_icon, String title, String address, String password, List<Tuple<int, String>> ports, bool firewall) : base(50, 50) 
    231281    { 
    232282        Image = device_icon; 
     
    235285        Password = password; 
    236286        Firewall = firewall; 
     287        Admin = false; 
     288        Ports = new Dictionary<int, Tuple<String, bool>>(); 
     289        foreach (var i in ports) 
     290        { 
     291            Ports.Add(i.Item1, Tuple.Create(i.Item2, false)); 
     292        } 
    237293    } 
    238294 
     
    246302        return 0; 
    247303    } 
     304 
     305    public String GetAdmin(bool is_login) 
     306    { 
     307        if (!is_login) 
     308        { 
     309            foreach (KeyValuePair<int, Tuple<String, bool>> i in Ports) 
     310            { 
     311                if (!i.Value.Item2) 
     312                { 
     313                    return "ERR: Port " + i.Key.ToString() + " is closed."; 
     314                } 
     315            } 
     316            if (Firewall) 
     317            { 
     318                return "ERR: Firewall active."; 
     319            } 
     320        } 
     321        return "Logged in as administrator."; 
     322    } 
    248323} 
     324 
     325class Ware 
     326{ 
     327    private bool Bypass_Firewall; 
     328    public String Port_Type; 
     329    public String Name; 
     330    public String Finish_Message; 
     331    public String Fail_Message_Port; 
     332    public String Fail_Message_Sec; 
     333    public int Speed; 
     334 
     335    public Ware(bool bypass_firewall, string port_type, string name, string finish_msg, string fail_msg_port, string fail_msg_sec, int speed) 
     336    { 
     337        Bypass_Firewall = bypass_firewall; 
     338        Port_Type = port_type; 
     339        Name = name; 
     340        Finish_Message = finish_msg; 
     341        Fail_Message_Port = fail_msg_port; 
     342        Fail_Message_Sec = fail_msg_sec; 
     343        Speed = speed; 
     344    } 
     345    public String Run(int port, Device device) 
     346    { 
     347        foreach(int i in device.Ports.Keys) 
     348        { 
     349            if (device.Ports[i].Item1 == Port_Type) 
     350            { 
     351                if (Bypass_Firewall || !device.Firewall) 
     352                { 
     353                    device.OpenPort(port); 
     354                    return Finish_Message; 
     355                } 
     356                return Fail_Message_Sec; 
     357            } 
     358        } 
     359        return Fail_Message_Port; 
     360    } 
     361} 
  • 2018/26/PyryS/HackSim/HackSim/HackSim/HackSim/obj/x86/Debug/ContentPipeline-{C4F28CD1-C400-4CEE-BA35-F90CCAD917FD}.xml

    r9790 r9791  
    88      <Processor>FontDescriptionProcessor</Processor> 
    99      <Options>None</Options> 
    10       <Output>C:\MyTemp\PyrySalminen\GameDev\HackSim\HackSim\HackSim\HackSim\bin\x86\Debug\Content\SourceCode.xnb</Output> 
     10      <Output>C:\MyTemp\PyrySalminen\GameDev\PyryS\HackSim\HackSim\HackSim\HackSim\bin\x86\Debug\Content\SourceCode.xnb</Output> 
    1111      <Time>2018-06-26T09:47:10.1131777+03:00</Time> 
    1212    </Item> 
     
    1717      <Processor>TextureProcessor</Processor> 
    1818      <Options>None</Options> 
    19       <Output>C:\MyTemp\PyrySalminen\GameDev\HackSim\HackSim\HackSim\HackSim\bin\x86\Debug\Content\SysIcon.xnb</Output> 
     19      <Output>C:\MyTemp\PyrySalminen\GameDev\PyryS\HackSim\HackSim\HackSim\HackSim\bin\x86\Debug\Content\SysIcon.xnb</Output> 
    2020      <Time>2018-06-26T13:53:36.5072724+03:00</Time> 
    2121    </Item> 
     
    2626      <Processor>TextureProcessor</Processor> 
    2727      <Options>None</Options> 
    28       <Output>C:\MyTemp\PyrySalminen\GameDev\HackSim\HackSim\HackSim\HackSim\bin\x86\Debug\Content\SysIconHover.xnb</Output> 
     28      <Output>C:\MyTemp\PyrySalminen\GameDev\PyryS\HackSim\HackSim\HackSim\HackSim\bin\x86\Debug\Content\SysIconHover.xnb</Output> 
    2929      <Time>2018-06-26T13:53:47.6954313+03:00</Time> 
    3030    </Item> 
     
    3636      <BuildConfiguration>Debug</BuildConfiguration> 
    3737      <CompressContent>false</CompressContent> 
    38       <RootDirectory>C:\MyTemp\PyrySalminen\GameDev\HackSim\HackSim\HackSim\HackSimContent\</RootDirectory> 
    39       <LoggerRootDirectory>C:\MyTemp\PyrySalminen\GameDev\HackSim\HackSim\HackSim\HackSim\</LoggerRootDirectory> 
    40       <IntermediateDirectory>C:\MyTemp\PyrySalminen\GameDev\HackSim\HackSim\HackSim\HackSim\obj\x86\Debug\</IntermediateDirectory> 
    41       <OutputDirectory>C:\MyTemp\PyrySalminen\GameDev\HackSim\HackSim\HackSim\HackSim\bin\x86\Debug\Content\</OutputDirectory> 
     38      <RootDirectory>C:\MyTemp\PyrySalminen\GameDev\PyryS\HackSim\HackSim\HackSim\HackSimContent\</RootDirectory> 
     39      <LoggerRootDirectory>C:\MyTemp\PyrySalminen\GameDev\PyryS\HackSim\HackSim\HackSim\HackSim\</LoggerRootDirectory> 
     40      <IntermediateDirectory>C:\MyTemp\PyrySalminen\GameDev\PyryS\HackSim\HackSim\HackSim\HackSim\obj\x86\Debug\</IntermediateDirectory> 
     41      <OutputDirectory>C:\MyTemp\PyrySalminen\GameDev\PyryS\HackSim\HackSim\HackSim\HackSim\bin\x86\Debug\Content\</OutputDirectory> 
    4242    </Settings> 
    4343    <Assemblies> 
  • 2018/26/PyryS/HackSim/HackSim/HackSim/HackSim/obj/x86/Debug/HackSim.csproj.CoreCompileInputs.cache

    r9790 r9791  
    1 957b9cf5cdb238316de38111b4a065a02ceb5ae7 
     17ee8dfc1e6ec42c4462adc75753e6b1ad5f1a609 
  • 2018/26/PyryS/HackSim/HackSim/HackSim/HackSim/obj/x86/Debug/HackSim.csproj.FileListAbsolute.txt

    r9790 r9791  
    1111C:\MyTemp\PyrySalminen\GameDev\HackSim\HackSim\HackSim\HackSim\bin\x86\Debug\Content\SysIcon.xnb 
    1212C:\MyTemp\PyrySalminen\GameDev\HackSim\HackSim\HackSim\HackSim\bin\x86\Debug\Content\SysIconHover.xnb 
     13C:\MyTemp\PyrySalminen\GameDev\PyryS\HackSim\HackSim\HackSim\HackSim\bin\x86\Debug\Content\SourceCode.xnb 
     14C:\MyTemp\PyrySalminen\GameDev\PyryS\HackSim\HackSim\HackSim\HackSim\bin\x86\Debug\Content\SysIcon.xnb 
     15C:\MyTemp\PyrySalminen\GameDev\PyryS\HackSim\HackSim\HackSim\HackSim\bin\x86\Debug\Content\SysIconHover.xnb 
     16C:\MyTemp\PyrySalminen\GameDev\PyryS\HackSim\HackSim\HackSim\HackSim\bin\x86\Debug\HackSim.exe 
     17C:\MyTemp\PyrySalminen\GameDev\PyryS\HackSim\HackSim\HackSim\HackSim\bin\x86\Debug\HackSim.pdb 
     18C:\MyTemp\PyrySalminen\GameDev\PyryS\HackSim\HackSim\HackSim\HackSim\bin\x86\Debug\Jypeli.dll 
     19C:\MyTemp\PyrySalminen\GameDev\PyryS\HackSim\HackSim\HackSim\HackSim\bin\x86\Debug\Jypeli.xml 
     20C:\MyTemp\PyrySalminen\GameDev\PyryS\HackSim\HackSim\HackSim\HackSim\obj\x86\Debug\HackSim.csprojResolveAssemblyReference.cache 
     21C:\MyTemp\PyrySalminen\GameDev\PyryS\HackSim\HackSim\HackSim\HackSim\obj\x86\Debug\Microsoft.Xna.Framework.RuntimeProfile.txt 
     22C:\MyTemp\PyrySalminen\GameDev\PyryS\HackSim\HackSim\HackSim\HackSim\obj\x86\Debug\HackSim.csproj.CoreCompileInputs.cache 
     23C:\MyTemp\PyrySalminen\GameDev\PyryS\HackSim\HackSim\HackSim\HackSim\obj\x86\Debug\HackSim.exe 
     24C:\MyTemp\PyrySalminen\GameDev\PyryS\HackSim\HackSim\HackSim\HackSim\obj\x86\Debug\HackSim.pdb 
  • 2018/26/PyryS/HackSim/HackSim/HackSim/HackSimContent/obj/x86/Debug/HackSimContent.contentproj.CoreCompileInputs.cache

    r9790 r9791  
    1 2dedb4e5804ece08160b51ddb7e2de4170653892 
     1814f3d91d4894051309dae844957e5d1987c5540 
  • 2018/26/PyryS/HackSim/HackSim/HackSim/HackSimContent/obj/x86/Debug/HackSimContent.contentproj.FileListAbsolute.txt

    r9790 r9791  
    11C:\MyTemp\PyrySalminen\GameDev\HackSim\HackSim\HackSim\HackSimContent\obj\x86\Debug\HackSimContent.contentproj.CoreCompileInputs.cache 
    22C:\MyTemp\PyrySalminen\GameDev\HackSim\HackSim\HackSim\HackSimContent\obj\x86\Debug\HackSimContent.contentprojResolveAssemblyReference.cache 
     3C:\MyTemp\PyrySalminen\GameDev\PyryS\HackSim\HackSim\HackSim\HackSimContent\obj\x86\Debug\HackSimContent.contentprojResolveAssemblyReference.cache 
     4C:\MyTemp\PyrySalminen\GameDev\PyryS\HackSim\HackSim\HackSim\HackSimContent\obj\x86\Debug\HackSimContent.contentproj.CoreCompileInputs.cache 
Note: See TracChangeset for help on using the changeset viewer.