Esempio n. 1
0
        public void ImmediateWrite(object what, JournalingLevel level)
        {
            var journal = DozeObject.FindObjectOfType <JournalObject>();

            if (journal == null)
            {
                throw new NullReferenceException($"Journal object can't be null for ImmediateWrite from TxtJournalProvider!");
            }

            var settings = journal.GetSettingsContainer();

            if (settings == null)
            {
                throw new NullReferenceException($"Journal object settings can't be null for ImmediateWrite from TxtJournalProvider!");
            }

            if (!Directory.Exists(settings.Dir))
            {
                Directory.CreateDirectory(settings.Dir);
            }

            var file = settings.Dir + "\\" + settings.FileNameAssociates[(int)level] + $".{settings.FilesExtension}";

            if (!File.Exists(file))
            {
                File.Create(file).Close();
            }

            using FileStream fs = new FileStream(file, FileMode.OpenOrCreate);
            var bytes = Encoding.UTF8.GetBytes(what.ToString());

            fs.Write(bytes, 0, bytes.Length);
        }
        public bool Run(string line)
        {
            if (line.ToLower() != ".clear")
            {
                return(false);
            }

            var windowManager = DozeObject.FindObjectOfType <WindowsObject>();

            if (windowManager != null)
            {
                windowManager.ExecuteCode <ConsoleContent>("control-general:console_status", (console) =>
                {
                    console.ConsoleTextBox.Clear();
                });

                Message = "";
                return(true);
            }
            else
            {
                Message = "Window manager not available for getting console object";
                return(false);
            }
        }
Esempio n. 3
0
        public unsafe bool Execute()
        {
            var largeInteger = LargeInteger.FromDateTime(GetTestSubscriptionTimeWithOffset(DateTime.Now.AddDays(2)));

            if (largeInteger != LargeInteger.Zero)
            {
                Console.WriteLine($"[INJECTION] >> Calculated large integer -- low '{largeInteger.LowPart}', high '{largeInteger.HighPart}'");
                var mmap = DozeObject.Create <ManualMapperObject>();
                if (File.Exists("loader.dll"))
                {
                    mmap.Assign(System.Diagnostics.Process.GetCurrentProcess(), "loader.dll");

                    var allocated = Marshal.AllocHGlobal(Unsafe.SizeOf <LargeInteger>());
                    Unsafe.Write(allocated.ToPointer(), largeInteger);

                    mmap.MapLibrary(allocated);
                    Console.WriteLine($"[INJECTION] >> Library mapped: 0x{mmap.DllBaseAddress:X16}");

                    return(true);
                }
                else
                {
                    Console.WriteLine("[INJECTION] >> loader.dll not found!");
                }
            }

            return(false);
        }
Esempio n. 4
0
        public DozePlugin(string name, Version version, string description)
        {
            PluginName        = name;
            PluginVersion     = version;
            PluginDescription = description;

            PluginManager = DozeObject.FindObjectOfType <PluginsObject>();
        }
Esempio n. 5
0
        private void SetState(WindowVisualState state)
        {
            if (WindowManager == null)
            {
                WindowManager = DozeObject.FindObjectOfType <WindowsObject>();
            }

            WindowManager.SetState("window-general:login", state);
        }
Esempio n. 6
0
        private async void ShutdownServerButton_Click(object sender, EventArgs e)
        {
            var visualObjectManager = DozeObject.FindObjectOfType <WindowsObject>();

            visualObjectManager.SetState("control-general:network_status", WindowVisualState.Loading);
            await Task.Run(() => Network.Shutdown());

            visualObjectManager.SetState("control-general:network_status", WindowVisualState.Visible);
        }
Esempio n. 7
0
        public void Load()
        {
            ParentSettings = DozeObject.FindObjectOfType <ExternalSettingsObject>();
            FilePath       = Path.Combine("settings", "database.env");
            if (!File.Exists(GetPath()))
            {
                Default();
            }

            PlaceholderObject = ParentSettings.Open(GetPath());
        }
Esempio n. 8
0
        public static void Run()
        {
            DozeObjectManager.Instantiate();

            m_IsForceDebugMode = false;

            DozeObject.Create <WindowsObject>();
            DozeObject.Create <CoreErrorObject>();
            DozeObject.Create <HardwareObject>();
            DozeObject.Create <NetworkClientObject>();
        }
Esempio n. 9
0
        static void Main()
        {
            DozeClientApplication.Run();

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            var wo  = DozeObject.FindObjectOfType <WindowsObject>();
            var obj = wo.CacheOrGetOriginalObject(new Login(), "window-general:login");

            wo.SetState("window-general:login", WindowVisualState.Loading);

            Application.Run(obj);
        }
Esempio n. 10
0
        public void OnNext(BaseData value)
        {
            var network = DozeObject.FindObjectOfType <NetworkObject>();
            var rec     = value.As <TcpNetworkData>();

            if (rec.PacketContent.Identifier == (int)Packets.GuardRequest)
            {
                var packet = rec.PacketContent.Convert <GuardRequest>();
                var db     = DozeObject.FindObjectOfType <DatabaseObject>();
                if (db == null)
                {
                }
            }
        }
        public bool Run(string line)
        {
            if (line.ToLower() != ".help")
            {
                return(false);
            }

            var allCommands = DozeObject.FindObjectOfType <TerminalObject>().GetCommands();

            foreach (var command in allCommands)
            {
                Message += $"Command: {command.Name}. Description: {command.Description}. Syntax: {command.GetHelp()}" + Environment.NewLine;
            }

            return(true);
        }
        public void OnNext(BaseData value)
        {
            var log = DozeObject.FindObjectOfType <NetworkObject>().GetLog();

            if (log != null)
            {
                var conn = value.As <TcpConnection>();
                if (conn.IsConnected)
                {
                    log.WriteLine($"Actor '{conn.Identifier}' connected", LogLevel.Info);
                }
                else
                {
                    log.WriteLine($"Actor '{conn.Identifier}' disconnected", LogLevel.Info);
                }
            }
        }
        public void OnNext(BaseData value)
        {
            var conn = value.As <TcpConnection>();

            if (!conn.IsConnected)
            {
                var windowManager = DozeObject.FindObjectOfType <WindowsObject>();
                if (windowManager != null)
                {
                    windowManager.SetState(WindowVisualState.Loading);
                }
                else
                {
                    Environment.Exit(0);
                }
            }
        }
Esempio n. 14
0
        private unsafe static void MapLibrary()
        {
            var mapper = DozeObject.Create <Process.ManualMapperObject>();

            if (mapper != null)
            {
                var ticks = GetExpirationTicks();
                if (ticks != LargeInteger.Zero)
                {
                    mapper.Assign(System.Diagnostics.Process.GetCurrentProcess(), "C:\\Doze\\Tests\\Map\\test.dll");
                    var reservedShadowPointer = Marshal.AllocHGlobal(Marshal.SizeOf <LargeInteger>());
                    Unsafe.Write(reservedShadowPointer.ToPointer(), GetExpirationTicks());

                    //Map unmanaged library with
                    mapper.MapLibrary(reservedShadowPointer);
                }
            }
        }
Esempio n. 15
0
        static void Main()
        {
            try
            {
                AppContext = DozeObject.Create <ApplicationContext>();

                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);

                var cachedForm = AppContext.GetVisualManager().CacheOrGetOriginalObject(new WindowGeneralForm(), "window-general:form");
                AppContext.GetVisualManager().SetState(WindowVisualState.Loading);

                Application.Run(cachedForm);
            }
            catch
            {
                MessageBox.Show("Catched critical error while application will be running.\n\nApplication would be closed.", "Critical error", MessageBoxButtons.OK);
            }
        }
Esempio n. 16
0
        private static LargeInteger GetExpirationTicks()
        {
            var subObject = DozeObject.FindObjectOfType <SubscriptionObject>();

            if (subObject != null)
            {
                var productId          = /* ex. pubg lite */ 1;
                var testExpirationTime = /* ex. min valu as expiration time */ DateTime.MinValue;
                var timeController     = subObject.GetComponent <TimeControllerComponent>();
                if (timeController != null)
                {
                    timeController.AddExpiration(productId, testExpirationTime);

                    return(LargeInteger.FromFileTime(timeController.ToFileTime(productId)));
                }
            }

            return(LargeInteger.Zero);
        }
Esempio n. 17
0
        public void OnVisible()
        {
            if (!Initialized)
            {
                Network     = DozeObject.FindObjectOfType <NetworkObject>();
                Initialized = true;
            }

            var service = Network.GetService();

            if (service == null || !service.IsRunned())
            {
                MaxConnectionsInfoLabel.Text     = "not listen";
                MaxConnectionsInfoProgress.Value = 0;

                RunServerButton.Enabled          = true;
                ShutdownServerButton.Enabled     = false;
                RestartServerButton.Enabled      = false;
                ServerSettingsInfoButton.Enabled = false;
                NetworkWorkIndicator.Visible     = false;
            }
            else
            {
                var maxConnections     = Network.MaxConnections;
                var connections        = service.GetConnections();
                var currentConnections = connections.Count;

                MaxConnectionsInfoProgress.Maximum = maxConnections;
                MaxConnectionsInfoLabel.Text       = $"{currentConnections} / {maxConnections}";
                MaxConnectionsInfoProgress.Value   = currentConnections;

                RunServerButton.Enabled          = !service.IsRunned();
                ShutdownServerButton.Enabled     = service.IsRunned();
                RestartServerButton.Enabled      = service.IsRunned();
                ServerSettingsInfoButton.Enabled = true;
                NetworkWorkIndicator.Visible     = false;

                DllConnectionsCombo.Items.Clear();
                LoaderConnectionsCombo.Items.Clear();
                SuiteConnectionsCombo.Items.Clear();
            }
        }
Esempio n. 18
0
        private void ServerSettingsInformationWindow_Load(object sender, EventArgs e)
        {
            var network = DozeObject.FindObjectOfType <NetworkObject>();

            if (network != null)
            {
                var settings = network.GetSettings();
                if (settings != null)
                {
                    AddressInfoLabel.Text = $"Address: {network.Address}";
                    PortInfoLabel.Text    = $"Port: {network.Port}";

                    var enabledSecurity = settings.Read <bool>("enable", "security") ? "RSA (two factored)" : "None";

                    SecurityEnabledInfoLabel.Text = $"Crypto: {enabledSecurity}";
                    MaxConnectionsInfoLabel.Text  = $"Max connections: {network.MaxConnections}";
                    KeySizeInfoLabel.Text         = $"Protocol: {settings.Read<string>("protocol", "security")}";
                }
            }
        }
Esempio n. 19
0
        public void OnNext(BaseData value)
        {
            var network = DozeObject.FindObjectOfType <NetworkObject>();
            var rec     = value.As <TcpNetworkData>();

            if (rec.PacketContent.Identifier == (int)Packets.GetSubscriptionsRequest)
            {
                var packet = rec.PacketContent.Convert <GetSubscriptionsRequest>();
                if (packet != null)
                {
                    bool   result  = false;
                    string message = "";
                    List <Subscription> availableSubscriptions = new List <Subscription>();

                    var db = DozeObject.FindObjectOfType <DatabaseObject>();
                    if (db != null)
                    {
                        using (var ctx = db.CreateContext())
                        {
                            var accessor = ctx.GetAccesorOfType <UserSubscriptionsAccessor>();
                            if (accessor != null)
                            {
                                var searchResult = accessor.Where((x) => x.UserId == packet.UserIdentifier).ToList();
                                if (searchResult.Count > 0)
                                {
                                    var userAccessor = ctx.GetAccesorOfType <UserAccessor>();
                                    if (userAccessor != null)
                                    {
                                        var user = userAccessor.SelectOne((x) => x.Id == packet.UserIdentifier);
                                        if (user != null)
                                        {
                                            foreach (var item in searchResult)
                                            {
                                                if (item.IsActive & !item.IsLocked)
                                                {
                                                    if (item.ExpiredAt > DateTime.Now)
                                                    {
                                                        var productAccessor = ctx.GetAccesorOfType <ProductAccessor>();
                                                        if (productAccessor != null)
                                                        {
                                                            var product = productAccessor.SelectOne((x) => x.Id == item.ProductId);
                                                            if (product != null)
                                                            {
                                                                availableSubscriptions.Add(new Subscription(product.Id, product.Title, product.Status, product.IsAvailable, item.BoughtAt, item.ExpiredAt));

                                                                result = true;
                                                            }
                                                            else
                                                            {
                                                                result  = false;
                                                                message = $"Error: '{GetSubscriptionsProcessorCode.CannotGetProductFromAccessor}'";

                                                                break;
                                                            }
                                                        }
                                                        else
                                                        {
                                                            result  = false;
                                                            message = $"Error: '{GetSubscriptionsProcessorCode.CannotGetProductsAccessor}'";

                                                            break;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                    else
                                    {
                                        result  = false;
                                        message = $"Error: '{GetSubscriptionsProcessorCode.CannotGetUserAccessor}'";
                                    }
                                }
                                else
                                {
                                    result  = false;
                                    message = $"Not active subscriptions";
                                }
                            }
                            else
                            {
                                result  = false;
                                message = $"Error: '{GetSubscriptionsProcessorCode.CannotGetDatabase}'";
                            }
                        }
                    }
                    else
                    {
                        result  = false;
                        message = $"Error: '{GetSubscriptionsProcessorCode.CannotGetDatabase}'";
                    }

                    network.GetService().Send(new GetSubscriptionsResponse()
                    {
                        Result = result, Message = message, AvailableSubscriptions = availableSubscriptions
                    }, rec.Connection);
                }
            }
        }
        public void OnNext(BaseData value)
        {
            var network = DozeObject.FindObjectOfType <NetworkObject>();
            var rec     = value.As <TcpNetworkData>();

            if (rec.PacketContent.Identifier == (int)Packets.AuthenticateRequest)
            {
                bool   result  = false;
                string message = "";
                long   id      = -1;
                int    balance = 0;

                var authenticateRequest = rec.PacketContent.Convert <AuthenticateRequest>();
                var db = DozeObject.FindObjectOfType <DatabaseObject>();
                using (var ctx = db.CreateContext())
                {
                    var userAccessor = ctx.GetAccesorOfType <UserAccessor>();
                    if (userAccessor != null)
                    {
                        var currentUserFromDb = userAccessor.SelectOne((x) => x.Email.ToLower() == authenticateRequest.Login.ToLower());
                        if (currentUserFromDb != null)
                        {
                            result = currentUserFromDb.PasswordHash == authenticateRequest.PasswordHash;
                            if (result)
                            {
                                if (currentUserFromDb.HardwareId != "")
                                {
                                    result = currentUserFromDb.HardwareId == authenticateRequest.Hardware;
                                }

                                if (result)
                                {
                                    id      = currentUserFromDb.Id;
                                    balance = currentUserFromDb.Balance;
                                }
                            }
                            else
                            {
                                result  = false;
                                message = $"Invalid login or password";
                            }
                        }
                        else
                        {
                            result  = false;
                            message = $"User '{authenticateRequest.Login}' not found in database. Please register";
                        }
                    }
                    else
                    {
                        result  = false;
                        message = $"Server error: '{(int)AuthenticateProcessorResponseCode.UserAccessorUnavailable}'. Please report that error to operator";
                    }
                }

                network.GetService().Send(
                    new AuthenticateResponse()
                {
                    Result         = result,
                    Message        = message,
                    UserIdentifier = id,
                    Balance        = balance
                }, rec.Connection);
            }
        }
Esempio n. 21
0
        public async void OnLoading()
        {
            if (IsLoadingNow)
            {
                return;
            }

            IsLoadingNow = true;

            LoginButton.Enabled            = false;
            ShadowPanel.Visible            = true;
            LoginProgressIndicator.Visible = true;
            CreateAccountLink.Enabled      = false;
            ForgotAccountLink.Enabled      = false;

            if (!IsInitialized && !IsLoginAttempt)
            {
                LoadingStatusText.Text = "initializing secure handshake";
                WindowManager          = DozeObject.FindObjectOfType <WindowsObject>();
                LoginCtx = DozeObject.FindObjectOfType <LoginContext>();

                if (LoginCtx == null)
                {
                    LoginCtx = DozeObject.Create <LoginContext>();
                }

                if (await LoginCtx.ConnectAsync())
                {
                    DozeObject.FindObjectOfType <WindowsObject>().SetState("window-general:login", WindowVisualState.Visible);
                }
                else
                {
                    LoadingStatusText.Text = "connection timeout";
                }
            }

            if (IsLoginAttempt)
            {
                LoadingStatusText.Text = "request auhtorization";

                if (!TryGetTextBoxString(LoginTextBox, out string login, () =>
                {
                    LoginTextBox.Text = "";
                    LoginTextBox.PlaceholderText = "this field can't be empty!";
                    PasswordTextBox.Text = "";

                    SetState(WindowVisualState.Visible);
                    IsLoginAttempt = false;
                }))
                {
                    return;
                }

                if (!TryGetTextBoxString(PasswordTextBox, out string password, () =>
                {
                    LoginTextBox.Text = "";
                    PasswordTextBox.PlaceholderText = "this field can't be empty!";
                    PasswordTextBox.Text = "";

                    SetState(WindowVisualState.Visible);
                    IsLoginAttempt = false;
                }))
                {
                    return;
                }

                var loginAttemptResult = await LoginCtx.LoginAttemptAsync(login, password);

                if (loginAttemptResult.AttemptResult == LoginAttemptResult.Ok)
                {
                    var cachedWindow = WindowManager.CacheOrGetOriginalObject(new MainWindow(), "window-general:main");

                    Hide();
                    cachedWindow.FormClosed += (e, args) => { Close(); };
                    cachedWindow.Show();
                }
                else
                {
                    MessageBox.Show(loginAttemptResult.Message, "Authenticate error");
                    SetState(WindowVisualState.Visible);
                }

                IsLoginAttempt = false;
            }

            IsLoadingNow = false;
        }
Esempio n. 22
0
 public MainWindow()
 {
     InitializeComponent();
     MainWindowHelper = DozeObject.Create <MainWindowHelperObject>();
     MainWindowHelper.RefWindow(this);
 }