Changeset 9793


Ignore:
Timestamp:
2018-06-28 15:02:17 (17 months ago)
Author:
pymasalm
Message:

My hands are typing words

Location:
2018/26/PyryS/HackSim/HackSim
Files:
2 added
17 edited

Legend:

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

    r9791 r9793  
    1515    InputBox cmd_line; 
    1616    Widget cmd_cursor; 
     17    Color accent_color = Color.Lime; 
     18    List<String> command_list; 
    1719    List<Device> netmap_list; 
    1820    String usr_name; 
    19     Image device_icon = LoadImage("SysIcon"); 
     21    Image device_icon = LoadImage("SysIconHome"); 
    2022    Image device_icon_hover = LoadImage("SysIconHover"); 
    2123    Widget netmap; 
     
    2325    Device null_device; 
    2426    Widget device_info; 
    25     Label cmd_out; 
     27    static Label cmd_out; 
     28    IntMeter mem_counter; 
    2629    List<Ware> player_software; 
    2730 
    2831    Label info_label = new Label("Hostname: "); 
    29     List<string> info_text = new List<string>() { "\nTitle: ", "\nAddr: ", "\nPorts: " }; 
     32    List<string> info_text = new List<string>() { "\nTitle: ", "\nAddr: ", "\nPorts: "}; 
    3033 
    3134    protected override void Update(Time time) 
     
    4851                    info_label.Text = String.Join("\n", info_text_fin.ToArray()); 
    4952                    info_label.Top = info_label.Top = device_info.Top + MARGINS; 
     53                    info_label.Left = device_info.Left + MARGINS; 
    5054                } 
    5155                else 
    5256                { 
    5357                    String info_str = new String(' ', 0); 
     58                    int l = 0; 
    5459                    foreach (var k in (v3 as Dictionary<int, Tuple<String, bool>>).Keys) 
    5560                    { 
    56                         info_str += (v3 as Dictionary<int, Tuple<String, bool>>)[k].Item1 + " : " + (v3 as Dictionary<int, Tuple<String, bool>>)[k].Item2.ToString() + "\n"; 
    57                     } 
     61                        l++; 
     62                        info_str += k + " : " + (v3 as Dictionary<int, Tuple<String, bool>>)[k].Item1 + " : " + ((v3 as Dictionary<int, Tuple<String, bool>>)[k].Item2 ? "Open" : "Closed") + "\n"; 
     63                    } 
     64                    l = 0; 
    5865                    //info_str = i.ToString() + " : " + info_str; 
    5966                    info_text_fin[n] = i + "\n" + info_str; 
     
    6168                    info_str = ""; 
    6269                    info_text_fin = info_text; 
    63                     info_label.Top = info_label.Top = device_info.Top + MARGINS; 
     70                    info_label.Top = device_info.Top + MARGINS; 
     71                    info_label.Left = device_info.Left + MARGINS; 
    6472                } 
    6573            } 
     
    6977    public override void Begin() 
    7078    { 
     79        mem_counter = new IntMeter(0); 
     80        File test_file = new File("Test", "text", "Lorem Ipsum"); 
     81        mem_counter.MaxValue = 256; 
     82        Level.Background.Color = Color.Black; 
    7183        null_device = new Device(null, "", "", "", new List<Tuple<int, String>> { Tuple.Create(0, "None") }, false); 
    7284        current_device = null_device; 
    7385        netmap_list = new List<Device>(); 
    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)); 
     86        netmap_list.Add(new Device(device_icon, "Your PC", "10.0.1.54", "ThePasswordIsVeryStronkHere", new List<Tuple<int, String>> { Tuple.Create(22, "SSH"), Tuple.Create(21, "FTP"), Tuple.Create(25, "SMTP"), Tuple.Create(9999, "PSC") }, false, new List<File> { })); 
     87        netmap_list.Add(new Device(device_icon, "CCC FileDrop", "122.34.5.99", "1331337337", new List<Tuple<int, String>> {/* Tuple.Create(22, "SSH"), Tuple.Create(21, "FTP"), Tuple.Create(25, "SMTP") */}, false, new List<File> { new File("FTPBruteForce", "ware", "FTP_Crack") })); 
    7588 
    7689        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)); 
     90        Ware FTP_Crack = new Ware(true, "FTP", "FTPBruteForce", "FTP Brute Force attack complete", "Invalid port", "Security error", 3, 64); 
     91        Ware SSH_Crack = new Ware(false, "SSH", "SSHDictAttack", "SSH Cracking complete", "Invalid port", "Security error", 5, 52); 
     92        Ware SMTP_Crack = new Ware(true, "SMTP", "SMTPOverload", "SMTP Port overloaded", "Invalid port", "Security error", 7, 100); 
     93 
    7894 
    7995        SOURCECODE_FONT = LoadFont("SourceCode"); 
     96 
     97        command_list = new List<string>(); 
     98        foreach (Ware i in player_software) 
     99        { 
     100            command_list.Add(i.Name); 
     101        } 
     102        command_list.Add("cat "); 
     103        command_list.Add("ls"); 
     104        command_list.Add("ssh"); 
     105        command_list.Add("connect"); 
     106        command_list.Add("shutdown now"); 
     107        command_list.Add("exit"); 
     108        command_list.Add("disconnect"); 
     109        command_list.Add("recoverpwd"); 
     110 
    80111 
    81112        usr_name = "Guest"; 
     
    85116        cmd_line.Font = SOURCECODE_FONT; 
    86117        cmd_line.Color = Color.Black; 
    87         cmd_line.TextColor = Color.LimeGreen; 
    88         cmd_line.BorderColor = Color.LimeGreen; 
     118        cmd_line.TextColor = accent_color; 
     119        cmd_line.BorderColor = accent_color; 
    89120        cmd_line.Cursor.IsVisible = false; 
    90121        cmd_cursor = new Widget(cmd_line.Cursor.Width, cmd_line.Cursor.Height); 
    91         cmd_cursor.Color = Color.LimeGreen; 
     122        cmd_cursor.Color = accent_color; 
    92123        Timer t = new Timer(); 
    93124        t.Interval = 0.5; 
     
    97128        cmd_line.X = Window.Width / 2 - cmd_line.Width / 2 - MARGINS; 
    98129        cmd_line.Y -= Window.Height / 2 - cmd_line.Height / 2 - MARGINS; 
    99         Add(cmd_line); 
     130        Timer.SingleShot(0.5, () => Add(cmd_line)); 
    100131        cmd_line.Add(cmd_cursor); 
    101132 
     
    104135        cmd_out = new Label(); 
    105136        cmd_out.Font = SOURCECODE_FONT; 
    106         cmd_out.BorderColor = Color.LimeGreen; 
    107         cmd_out.TextColor = Color.LimeGreen; 
     137        cmd_out.BorderColor = accent_color; 
     138        cmd_out.TextColor = accent_color; 
    108139        cmd_out.Color = Color.Black; 
    109140        cmd_out.Width = cmd_line.Width; 
     
    114145        cmd_out.HorizontalAlignment = HorizontalAlignment.Left; 
    115146        cmd_out.VerticalAlignment = VerticalAlignment.Top; 
    116         Add(cmd_out); 
     147        Timer.SingleShot(0.7, () => Add(cmd_out)); 
     148 
    117149 
    118150        PhoneBackButton.Listen(ConfirmExit, ""); 
    119151        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, ""); 
    120152        Keyboard.Listen(Key.Enter, ButtonState.Pressed, () => ProcessCommands(cmd_line, cmd_out), ""); 
     153        Keyboard.Listen(Key.Tab, ButtonState.Pressed, () => AutoComplete(), ""); 
    121154 
    122155        // Create netmap 
     
    127160        netmap.Y = netmap.Height / 2 + MARGINS; 
    128161        netmap.Color = Color.Black; 
    129         netmap.BorderColor = Color.LimeGreen; 
    130         Add(netmap); 
     162        netmap.BorderColor = accent_color; 
     163        Timer.SingleShot(0.8, () => Add(netmap)); 
     164 
    131165        foreach (Device i in netmap_list) 
    132166        { 
     
    135169        } 
    136170        // Create info window 
    137         device_info = new Widget(cmd_out.Width + MARGINS, Window.Height / 2 - MARGINS * 2); 
     171        device_info = new Widget(cmd_out.Width + MARGINS, Window.Height / 2 - MARGINS * 2 - cmd_line.Height); 
    138172        device_info.SizingByLayout = false; 
    139173        device_info.Layout = new VerticalLayout(); 
    140174        device_info.X = Window.Width - cmd_out.Width * 2.5 - MARGINS * 4.5; 
    141         device_info.Y = Window.Height - device_info.Height * 2.5 - MARGINS * 4; 
     175        device_info.Bottom = cmd_line.Bottom; 
    142176        device_info.Color = Color.Black; 
    143         device_info.BorderColor = Color.LimeGreen; 
    144         Add(device_info); 
     177        device_info.BorderColor = accent_color; 
     178        Timer.SingleShot(0.3, () => Add(device_info)); 
    145179 
    146180        info_label.HorizontalAlignment = HorizontalAlignment.Left; 
     
    148182        info_label.Left = device_info.Left + MARGINS; 
    149183        info_label.Top = device_info.Top - info_label.Height * 2 - MARGINS * 2; 
    150         info_label.TextColor = Color.LimeGreen; 
     184        info_label.TextColor = accent_color; 
    151185        info_label.Font = SOURCECODE_FONT; 
    152186 
    153         Add(info_label); 
    154  
     187        Timer.SingleShot(0.6, () => Add(info_label)); 
     188 
     189        // Create RAM bar 
     190        ProgressBar ram_bar = new ProgressBar(device_info.Width, cmd_line.Height); 
     191        ram_bar.Bottom = device_info.Top + MARGINS; 
     192        ram_bar.X = device_info.X; 
     193        ram_bar.BorderColor = accent_color; 
     194        ram_bar.Color = Color.Black; 
     195        ram_bar.BarColor = Color.Green; 
     196        ram_bar.BindTo(mem_counter); 
     197        Timer.SingleShot(1.1, () => Add(ram_bar)); 
    155198 
    156199        Mouse.ListenMovement(1.0, checkHover, ""); 
     
    161204        Console.WriteLine(dev.Addr); 
    162205        ProcessCommands(cmd_line, cmd_out, ("ssh " + dev.Addr)); 
     206    } 
     207 
     208    void AutoComplete() 
     209    { 
     210        List<String> file_matches = new List<String>(); 
     211        List<String> matches = new List<String>(); 
     212        foreach(String i in command_list) 
     213        { 
     214            if (i.ToLower().StartsWith(cmd_line.Text.Split(' ')[0].ToLower())) 
     215            { 
     216                matches.Add(i); 
     217            } 
     218        } 
     219        if (matches.Count == 1) 
     220        { 
     221            if (cmd_line.Text.ToLower().StartsWith(matches[0].ToLower())) 
     222            { 
     223                foreach (File i in current_device.Files) 
     224                { 
     225                    if (i.Name.ToLower().StartsWith(cmd_line.Text.Split(' ')[1].ToLower())) 
     226                    { 
     227                        file_matches.Add(i.Name); 
     228                    } 
     229                } 
     230                if (file_matches.Count == 1) 
     231                { 
     232                    cmd_line.Text = cmd_line.Text.Split(' ')[0].Trim(' ') + " " + file_matches[0]; 
     233                } 
     234                else 
     235                { 
     236                    foreach (String i in file_matches) 
     237                    { 
     238                        PrintOutput(i); 
     239                    } 
     240                } 
     241            } 
     242            else 
     243            { 
     244                cmd_line.Text = matches[0]; 
     245            } 
     246        } 
     247        else 
     248        { 
     249            foreach (string i in matches) 
     250            { 
     251                PrintOutput(i); 
     252            } 
     253        } 
    163254    } 
    164255 
     
    173264            cmd_line.Text = ""; 
    174265        } 
    175         PrintOutput(cmd_out, usr_name + "@" + current_device.Addr + " ~/# " + cmd); 
     266        PrintOutput((current_device.Admin ? "root" : "guest") + "@" + current_device.Addr + " ~/# " + cmd); 
    176267        String output = ""; 
    177268 
     269        // Clone a file to your system (always index 0) 
     270        if (cmd.StartsWith("scp")||cmd.StartsWith("copy")) 
     271        { 
     272            if (current_device.Admin) 
     273            { 
     274                String file_name = cmd.Split(' ')[1]; 
     275                foreach (File i in current_device.Files) 
     276                { 
     277                    if (i.Name == file_name) 
     278                    { 
     279                        if (i.File_Type == "ware") 
     280                        { 
     281                            // TODO: Implement this 
     282                            //player_software.Add 
     283                        }  
     284                    } 
     285                } 
     286            } 
     287        } 
     288 
    178289        // Echo something 
    179         if (cmd.StartsWith("echo ")) 
     290        else if (cmd.StartsWith("echo ")) 
    180291        { 
    181292            output = cmd.Split(' ')[1]; 
     
    186297        { 
    187298            Exit(); 
     299        } 
     300 
     301        // Read a file 
     302        else if (cmd.StartsWith("cat")) 
     303        { 
     304            if (current_device.Admin) 
     305            { 
     306                String file_name = cmd.Split(' ')[1]; 
     307                foreach (File i in current_device.Files) 
     308                { 
     309                    if (i.Name == file_name) 
     310                    { 
     311                        if (i.File_Type != "ware") 
     312                        { 
     313                            PrintOutput(i.File_Contents); 
     314                        } 
     315                    } 
     316                    else 
     317                    { 
     318                        PrintOutput("ERRNO2: " + file_name + ": No such file"); 
     319                    } 
     320                } 
     321            } 
     322            else 
     323            { 
     324                PrintOutput("ERRNO1: Permission Denied"); 
     325            } 
     326        } 
     327 
     328        // Get admin password 
     329        else if (cmd == "recoverpwd") 
     330        { 
     331            bool failure = false; 
     332            foreach (var i in current_device.Ports.Keys) 
     333            { 
     334                if (!current_device.Ports[i].Item2) 
     335                { 
     336                    PrintOutput("Unable to recover password until all ports open"); 
     337                    failure = true; 
     338                } 
     339            } 
     340            if (!failure) 
     341            { 
     342                if (!current_device.Firewall) 
     343                { 
     344                    PrintOutput("Administrator Password: " + current_device.Password); 
     345                } 
     346                else 
     347                { 
     348                    PrintOutput("Firewall active, cannot proceed"); 
     349                } 
     350            } 
     351        } 
     352 
     353        // Login admin 
     354        else if (cmd == "su " + current_device.Password) 
     355        { 
     356            current_device.GetAdmin(true); 
     357        } 
     358 
     359        // List files 
     360        else if (cmd == "ls") 
     361        { 
     362            foreach(File i in current_device.Files) 
     363            { 
     364                PrintOutput("- " + i.Name); 
     365            } 
    188366        } 
    189367 
     
    210388            else 
    211389            { 
    212                 output = cmd + " : Invalid address."; 
     390                output = "ERRNO127: Invalid address."; 
    213391            } 
    214392        } 
     
    219397                if (cmd.StartsWith(i.Name)) 
    220398                { 
    221                     i.Run(Int32.Parse(cmd.Split(' ')[1]), current_device); 
     399                    if (Int32.TryParse(cmd.Split(' ')[1], out int asd)) 
     400                    { 
     401                        PrintOutput("Running " + i.Name + ". ETA " + i.Speed + "s"); 
     402                        i.Run(Int32.Parse(cmd.Split(' ')[1]), current_device, mem_counter); 
     403                    } 
    222404                } 
    223405            } 
     
    228410            output = cmd + " : Command not found."; 
    229411        }*/ 
    230         Timer.SingleShot(0.1, () => PrintOutput(cmd_out, output)); 
    231     } 
    232     void PrintOutput(Label cmd_out, String txt) 
     412        Timer.SingleShot(0.1, () => PrintOutput(output)); 
     413    } 
     414    public static void PrintOutput(String txt) 
    233415    { 
    234416        /* 
     
    273455    public String Addr; 
    274456    public String Password; 
    275     public Dictionary<String, String> Files; 
     457    public List<File> Files; 
    276458    public Dictionary<int, Tuple<String, bool>> Ports; 
    277459    public bool Firewall; 
    278460    public bool Admin; 
    279461 
    280     public Device(Image device_icon, String title, String address, String password, List<Tuple<int, String>> ports, bool firewall) : base(50, 50) 
     462    public Device(Image device_icon, String title, String address, String password, List<Tuple<int, String>> ports, bool firewall, List<File> files=null, bool isVisible=true) : base(50, 50) 
    281463    { 
    282464        Image = device_icon; 
    283465        Title = title; 
     466        Files = new List<File>(); 
    284467        Addr = address; 
    285468        Password = password; 
     
    287470        Admin = false; 
    288471        Ports = new Dictionary<int, Tuple<String, bool>>(); 
     472        if (files != null) 
     473        { 
     474            foreach (File i in files) 
     475            { 
     476                Files.Add(i); 
     477            } 
     478        } 
    289479        foreach (var i in ports) 
    290480        { 
     
    297487        if (!Firewall) 
    298488        { 
    299             Ports[num] = Tuple.Create(Ports[num].Item1, false); 
     489            Ports[num] = Tuple.Create(Ports[num].Item1, true); 
    300490            return 1; 
    301491        } 
     
    311501                if (!i.Value.Item2) 
    312502                { 
    313                     return "ERR: Port " + i.Key.ToString() + " is closed."; 
     503                    return "ERRNO125: Port " + i.Key.ToString() + " is closed."; 
    314504                } 
    315505            } 
    316506            if (Firewall) 
    317507            { 
    318                 return "ERR: Firewall active."; 
    319             } 
    320         } 
     508                return "ERRNO126: Firewall active."; 
     509            } 
     510        } 
     511        Admin = true; 
    321512        return "Logged in as administrator."; 
    322513    } 
     
    329520    public String Name; 
    330521    public String Finish_Message; 
    331     public String Fail_Message_Port; 
    332     public String Fail_Message_Sec; 
     522    private String Fail_Message_Port; 
     523    private String Fail_Message_Sec; 
     524    private String Fail_Message_Mem; 
    333525    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     { 
     526    public int Size; 
     527    public String output; 
     528 
     529    public Ware(bool bypass_firewall, string port_type, string name, string finish_msg, string fail_msg_port, string fail_msg_sec, int speed, int size) 
     530    { 
     531        output = ""; 
    337532        Bypass_Firewall = bypass_firewall; 
    338533        Port_Type = port_type; 
     
    342537        Fail_Message_Sec = fail_msg_sec; 
    343538        Speed = speed; 
    344     } 
    345     public String Run(int port, Device device) 
    346     { 
    347         foreach(int i in device.Ports.Keys) 
     539        Size = size; 
     540        Fail_Message_Mem = "ERRNO12: Out Of Memory"; 
     541    } 
     542 
     543    public void Run(int port, Device device, IntMeter mem) 
     544    { 
     545        if (mem.MaxValue - mem.Value > Size) 
     546        { 
     547            mem.Value += Size; 
     548            Timer.SingleShot(Speed, () => RunB(port, device, mem)); 
     549        } 
     550        else 
     551        { 
     552            output = Fail_Message_Mem; 
     553        } 
     554    } 
     555 
     556    public void RunB(int port, Device device, IntMeter mem) 
     557    { 
     558        mem.Value -= Size; 
     559        foreach (int i in device.Ports.Keys) 
    348560        { 
    349561            if (device.Ports[i].Item1 == Port_Type) 
     
    351563                if (Bypass_Firewall || !device.Firewall) 
    352564                { 
     565                    output = Finish_Message; 
    353566                    device.OpenPort(port); 
    354                     return Finish_Message; 
    355                 } 
    356                 return Fail_Message_Sec; 
    357             } 
    358         } 
    359         return Fail_Message_Port; 
     567                } 
     568                else 
     569                { 
     570                    output = Fail_Message_Sec; 
     571                } 
     572                HackSim.PrintOutput(output); 
     573                return; 
     574            } 
     575        } 
     576        output = Fail_Message_Port; 
     577        HackSim.PrintOutput(output); 
    360578    } 
    361579} 
     580 
     581class File 
     582{ 
     583    public String Name; 
     584    public String File_Type; 
     585    public List<File> Folder_Contents; 
     586    public String File_Contents; 
     587    public File(String name, String file_type, String file_contents=null) 
     588    { 
     589        Name = name; 
     590        File_Type = file_type; 
     591        File_Contents = file_contents; 
     592    } 
     593} 
  • 2018/26/PyryS/HackSim/HackSim/HackSim/HackSim/HackSim.csproj.Debug.cachefile

    r9790 r9793  
    22Content\SysIcon.xnb 
    33Content\SysIconHover.xnb 
     4Content\SysIconHome.xnb 
  • 2018/26/PyryS/HackSim/HackSim/HackSim/HackSim/obj/x86/Debug/ContentPipeline-{C4F28CD1-C400-4CEE-BA35-F90CCAD917FD}.xml

    r9791 r9793  
    1818      <Options>None</Options> 
    1919      <Output>C:\MyTemp\PyrySalminen\GameDev\PyryS\HackSim\HackSim\HackSim\HackSim\bin\x86\Debug\Content\SysIcon.xnb</Output> 
    20       <Time>2018-06-26T13:53:36.5072724+03:00</Time> 
     20      <Time>2018-06-28T11:23:06.6823154+03:00</Time> 
    2121    </Item> 
    2222    <Item> 
     
    2727      <Options>None</Options> 
    2828      <Output>C:\MyTemp\PyrySalminen\GameDev\PyryS\HackSim\HackSim\HackSim\HackSim\bin\x86\Debug\Content\SysIconHover.xnb</Output> 
    29       <Time>2018-06-26T13:53:47.6954313+03:00</Time> 
     29      <Time>2018-06-28T11:23:04.2774599+03:00</Time> 
     30    </Item> 
     31    <Item> 
     32      <Source>SysIconHome.png</Source> 
     33      <Name>SysIconHome</Name> 
     34      <Importer>TextureImporter</Importer> 
     35      <Processor>TextureProcessor</Processor> 
     36      <Options>None</Options> 
     37      <Output>C:\MyTemp\PyrySalminen\GameDev\PyryS\HackSim\HackSim\HackSim\HackSim\bin\x86\Debug\Content\SysIconHome.xnb</Output> 
     38      <Time>2018-06-28T14:54:05.7564469+03:00</Time> 
    3039    </Item> 
    3140    <BuildSuccessful>true</BuildSuccessful> 
  • 2018/26/PyryS/HackSim/HackSim/HackSim/HackSim/obj/x86/Debug/HackSim.csproj.FileListAbsolute.txt

    r9791 r9793  
    2323C:\MyTemp\PyrySalminen\GameDev\PyryS\HackSim\HackSim\HackSim\HackSim\obj\x86\Debug\HackSim.exe 
    2424C:\MyTemp\PyrySalminen\GameDev\PyryS\HackSim\HackSim\HackSim\HackSim\obj\x86\Debug\HackSim.pdb 
     25C:\MyTemp\PyrySalminen\GameDev\PyryS\HackSim\HackSim\HackSim\HackSim\bin\x86\Debug\Content\SysIconHome.xnb 
  • 2018/26/PyryS/HackSim/HackSim/HackSim/HackSim/obj/x86/Debug/cachefile-{C4F28CD1-C400-4CEE-BA35-F90CCAD917FD}-targetpath.txt

    r9790 r9793  
    22Content\SysIcon.xnb 
    33Content\SysIconHover.xnb 
     4Content\SysIconHome.xnb 
  • 2018/26/PyryS/HackSim/HackSim/HackSim/HackSimContent/HackSimContent.contentproj

    r9790 r9793  
    6767    </Compile> 
    6868  </ItemGroup> 
     69  <ItemGroup> 
     70    <Compile Include="SysIconHome.png"> 
     71      <Name>SysIconHome</Name> 
     72      <Importer>TextureImporter</Importer> 
     73      <Processor>TextureProcessor</Processor> 
     74    </Compile> 
     75  </ItemGroup> 
    6976  <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 
    7077  <!--  To modify your build process, add your task inside one of the targets below and uncomment it.  
  • 2018/26/PyryS/HackSim/HackSim/HackSim/HackSimContent/obj/x86/Debug/HackSimContent.contentproj.CoreCompileInputs.cache

    r9791 r9793  
    1 814f3d91d4894051309dae844957e5d1987c5540 
     15c6bc5145ec911f6e5428bd910cc9f40daaaabc0 
Note: See TracChangeset for help on using the changeset viewer.