예제 #1
0
파일: Program.cs 프로젝트: 20100dbg/ShaKeyz
        // Processing Data objects received
        static void HandleData(Data data)
        {
            if (data.type == DataType.FileSearch)
            {
                DataFileSearch dfs = (DataFileSearch)data;
                Console.WriteLine("[+] Received search for " + dfs.search);

                String[] tabFile = Directory.GetFiles(Program.incomingFolder, dfs.search);
                for (int i = 0; i < tabFile.Length; i++)
                {
                    tabFile[i] = Path.GetFileName(tabFile[i]);
                }

                SendData(new DataFileResults {
                    results = tabFile
                });
            }
            else if (data.type == DataType.FileResults)
            {
                DataFileResults dfr = (DataFileResults)data;

                Console.WriteLine("[+] Received this results : ");
                for (int i = 0; i < dfr.results.Length; i++)
                {
                    Console.WriteLine("- " + dfr.results[i]);
                }
            }
            else if (data.type == DataType.FileRequest)
            {
                DataFileRequest dfr = (DataFileRequest)data;

                sFile f = new sFile(incomingFolder + dfr.request);
                SendFile(f);

                Console.WriteLine("[+] Peer requested for " + dfr.request + ", file sent");
            }
            else if (data.type == DataType.FileSend)
            {
                DataFileSend dfs = (DataFileSend)data;
                ReceiveFile(dfs);

                //BASIC check
                //since TCP is reliable, there should be no problem. But you can add checksum for integrity
                if (dfs.fileinfo.size == new FileInfo(incomingFolder + dfs.fileinfo.name).Length)
                {
                    Console.WriteLine("[+] Received " + dfs.fileinfo.name);
                }
            }
        }
예제 #2
0
파일: Program.cs 프로젝트: 20100dbg/ShaKeyz
        //looping for input commands
        //available commands : search, send, request
        static void InputLoop()
        {
            while (alive)
            {
                String   txt  = Console.ReadLine();
                String[] args = txt.Split(' ');

                if (args[0] == "search")
                {
                    if (args.Length == 2)
                    {
                        SendData(new DataFileSearch {
                            search = args[1]
                        });
                    }
                    else
                    {
                        Console.WriteLine("[-] Please provide an argument. Ex : search *.jpg");
                    }
                }
                else if (args[0] == "send")
                {
                    if (args.Length == 2)
                    {
                        if (File.Exists(incomingFolder + args[1]))
                        {
                            sFile f = new sFile(incomingFolder + args[1]);
                            if (f.size == 0)
                            {
                                Console.WriteLine("[-] Specified file is empty");
                            }
                            else
                            {
                                SendFile(f);
                            }
                        }
                        else
                        {
                            Console.WriteLine("[-] File doesn't exist");
                        }
                    }
                    else
                    {
                        Console.WriteLine("[-] Please provide an argument. Ex : send myfile.png");
                    }
                }
                else if (args[0] == "request")
                {
                    if (args.Length == 2)
                    {
                        SendData(new DataFileRequest {
                            request = args[1]
                        });
                    }
                    else
                    {
                        Console.WriteLine("[-] Please provide an argument. Ex : request yourfile.png");
                    }
                }
                else if (args[0] == "exit")
                {
                    alive = false;
                    Console.WriteLine("[+] Exiting, good bye");
                }
                else
                {
                    Console.WriteLine("[-] Unknow command : " + args[0]);
                }
            }
        }