Exemplo n.º 1
0
 public static void Log(string username, string action)
 {
     if (!Constants.Initialized)
     {
         MessageBox.Show("Please initialize your application first!");
         Process.GetCurrentProcess().Kill();
     }
     if (string.IsNullOrWhiteSpace(action))
     {
         MessageBox.Show("Missing log information!");
         Process.GetCurrentProcess().Kill();
     }
     string[] response = new string[] { };
     using (WebClient wc = new WebClient())
     {
         try
         {
             Security.Start();
             wc.Proxy = null;
             response = (Encryption.DecryptService(Encoding.Default.GetString(wc.UploadValues(Constants.ApiUrl, new NameValueCollection
             {
                 ["token"] = Encryption.EncryptService(Constants.Token),
                 ["aid"] = Encryption.APIService(OnProgramStart.AID),
                 ["username"] = Encryption.APIService(username),
                 ["pcuser"] = Encryption.APIService(Environment.UserName),
                 ["session_id"] = Constants.IV,
                 ["api_id"] = Constants.APIENCRYPTSALT,
                 ["api_key"] = Constants.APIENCRYPTKEY,
                 ["data"] = Encryption.APIService(action),
                 ["session_key"] = Constants.Key,
                 ["secret"] = Encryption.APIService(OnProgramStart.Secret),
                 ["type"] = Encryption.APIService("log")
             }))).Split("|".ToCharArray()));
             Security.End();
         }
         catch (Exception ex)
         {
             MessageBox.Show(ex.Message);
             Process.GetCurrentProcess().Kill();
         }
     }
 }
Exemplo n.º 2
0
            public static bool ExtendSubscription(string username, string password, string license)
            {
                if (!Constants.Initialized)
                {
                    MessageBox.Show("Please initialize your application first!");
                    Security.End();
                    Process.GetCurrentProcess().Kill();
                }
                if (string.IsNullOrWhiteSpace(username) || string.IsNullOrWhiteSpace(password) || string.IsNullOrWhiteSpace(license))
                {
                    MessageBox.Show("Invalid registrar information!");
                    Process.GetCurrentProcess().Kill();
                }
                string[] response = new string[] { };
                using (WebClient wc = new WebClient())
                {
                    try
                    {
                        Security.Start();
                        wc.Proxy = null;
                        response = Encryption.DecryptService(Encoding.Default.GetString(wc.UploadValues(Constants.ApiUrl, new NameValueCollection
                        {
                            ["token"]       = Encryption.EncryptService(Constants.Token),
                            ["timestamp"]   = Encryption.EncryptService(DateTime.Now.ToString()),
                            ["aid"]         = Encryption.APIService(OnProgramStart.AID),
                            ["session_id"]  = Constants.IV,
                            ["api_id"]      = Constants.APIENCRYPTSALT,
                            ["api_key"]     = Constants.APIENCRYPTKEY,
                            ["session_key"] = Constants.Key,
                            ["secret"]      = Encryption.APIService(OnProgramStart.Secret),
                            ["type"]        = Encryption.APIService("extend"),
                            ["username"]    = Encryption.APIService(username),
                            ["password"]    = Encryption.APIService(password),
                            ["license"]     = Encryption.APIService(license),
                        }))).Split("|".ToCharArray());
                        if (response[0] != Constants.Token)
                        {
                            MessageBox.Show("Security error has been triggered!");
                            Security.End();
                            Process.GetCurrentProcess().Kill();
                        }
                        if (Security.MaliciousCheck(response[1]))
                        {
                            MessageBox.Show("Possible malicious activity detected!");
                            Process.GetCurrentProcess().Kill();
                        }
                        if (Constants.Breached)
                        {
                            MessageBox.Show("Possible malicious activity detected!");
                            Process.GetCurrentProcess().Kill();
                        }
                        switch (response[2])
                        {
                        case "success":
                            Security.End();
                            return(true);

                        case "invalid_token":
                            MessageBox.Show("Token does not exist!");
                            Security.End();
                            return(false);

                        case "invalid_details":
                            MessageBox.Show("Your user details are invalid!");
                            Security.End();
                            return(false);
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                        Process.GetCurrentProcess().Kill();
                    }
                    return(false);
                }
            }
Exemplo n.º 3
0
            public static bool Login(string username, string password)
            {
                if (!Constants.Initialized)
                {
                    MessageBox.Show("Please initialize your application first!");
                    Process.GetCurrentProcess().Kill();
                }
                if (string.IsNullOrWhiteSpace(username) || string.IsNullOrWhiteSpace(password))
                {
                    MessageBox.Show("Missing user login information!");
                    Process.GetCurrentProcess().Kill();
                }
                string[] response = new string[] { };
                using (WebClient wc = new WebClient())
                {
                    try
                    {
                        Security.Start();
                        wc.Proxy = null;
                        response = (Encryption.DecryptService(Encoding.Default.GetString(wc.UploadValues(Constants.ApiUrl, new NameValueCollection
                        {
                            ["token"] = Encryption.EncryptService(Constants.Token),
                            ["timestamp"] = Encryption.EncryptService(DateTime.Now.ToString()),
                            ["aid"] = Encryption.APIService(OnProgramStart.AID),
                            ["session_id"] = Constants.IV,
                            ["api_id"] = Constants.APIENCRYPTSALT,
                            ["api_key"] = Constants.APIENCRYPTKEY,
                            ["username"] = Encryption.APIService(username),
                            ["password"] = Encryption.APIService(password),
                            ["hwid"] = Encryption.APIService(Constants.HWID()),
                            ["session_key"] = Constants.Key,
                            ["secret"] = Encryption.APIService(OnProgramStart.Secret),
                            ["type"] = Encryption.APIService("login")
                        }))).Split("|".ToCharArray()));
                        if (response[0] != Constants.Token)
                        {
                            MessageBox.Show("Security error has been triggered!");
                            Process.GetCurrentProcess().Kill();
                        }
                        if (Security.MaliciousCheck(response[1]))
                        {
                            MessageBox.Show("Possible malicious activity detected!");
                            Process.GetCurrentProcess().Kill();
                        }
                        if (Constants.Breached)
                        {
                            MessageBox.Show("Possible malicious activity detected!");
                            Process.GetCurrentProcess().Kill();
                        }
                        switch (response[2])
                        {
                        case "success":
                            User.ID           = response[3];
                            User.Username     = response[4];
                            User.Password     = response[5];
                            User.Email        = response[6];
                            User.HWID         = response[7];
                            User.UserVariable = response[8];
                            User.Rank         = response[9];
                            User.IP           = response[10];
                            User.Expiry       = response[11];
                            User.LastLogin    = response[12];
                            User.RegisterDate = response[13];
                            string Variables = response[14];
                            foreach (string var in Variables.Split('~'))
                            {
                                string[] items = var.Split('^');
                                try
                                {
                                    App.Variables.Add(items[0], items[1]);
                                }
                                catch
                                {
                                    //If some are null or not loaded, just ignore.
                                    //Error will be shown when loading the variable anyways
                                }
                            }
                            Security.End();
                            return(true);

                        case "invalid_details":
                            MessageBox.Show("Sorry, your username/password does not match!");
                            Security.End();
                            return(false);

                        case "time_expired":
                            MessageBox.Show("Your subscription has expired!");
                            Security.End();
                            return(false);

                        case "hwid_updated":
                            MessageBox.Show("New machine has been binded, re-open the application!");
                            Security.End();
                            return(false);

                        case "invalid_hwid":
                            MessageBox.Show("This user is binded to another computer, please contact support!");
                            Security.End();
                            return(false);
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                        Security.End();
                        Process.GetCurrentProcess().Kill();
                    }
                    return(false);
                }
            }
Exemplo n.º 4
0
            public static void Initialize(string name, string aid, string secret, string version)
            {
                if (string.IsNullOrWhiteSpace(name) || string.IsNullOrWhiteSpace(aid) || string.IsNullOrWhiteSpace(secret) || string.IsNullOrWhiteSpace(version))
                {
                    MessageBox.Show("Invalid application information!");
                    Process.GetCurrentProcess().Kill();
                }
                AID     = aid;
                Secret  = secret;
                Version = version;
                Name    = name;
                string[] response = new string[] { };
                using (WebClient wc = new WebClient())
                {
                    try
                    {
                        wc.Proxy = null;
                        Security.Start();
                        response = (Encryption.DecryptService(Encoding.Default.GetString(wc.UploadValues(Constants.ApiUrl, new NameValueCollection
                        {
                            ["token"] = Encryption.EncryptService(Constants.Token),
                            ["timestamp"] = Encryption.EncryptService(DateTime.Now.ToString()),
                            ["aid"] = Encryption.APIService(AID),
                            ["session_id"] = Constants.IV,
                            ["api_id"] = Constants.APIENCRYPTSALT,
                            ["api_key"] = Constants.APIENCRYPTKEY,
                            ["session_key"] = Constants.Key,
                            ["secret"] = Encryption.APIService(Secret),
                            ["type"] = Encryption.APIService("start")
                        }))).Split("|".ToCharArray()));
                        if (Security.MaliciousCheck(response[1]))
                        {
                            MessageBox.Show("Possible malicious activity detected!");
                            Process.GetCurrentProcess().Kill();
                        }
                        if (Constants.Breached)
                        {
                            MessageBox.Show("Possible malicious activity detected!");
                            Process.GetCurrentProcess().Kill();
                        }
                        if (response[0] != Constants.Token)
                        {
                            MessageBox.Show("Security error has been triggered!");
                            Process.GetCurrentProcess().Kill();
                        }
                        switch (response[2])
                        {
                        case "success":
                            Constants.Initialized = true;
                            if (response[3] == "Enabled")
                            {
                                ApplicationSettings.Status = true;
                            }
                            if (response[4] == "Enabled")
                            {
                                ApplicationSettings.DeveloperMode = true;
                            }
                            ApplicationSettings.Hash        = response[5];
                            ApplicationSettings.Version     = response[6];
                            ApplicationSettings.Update_Link = response[7];
                            if (response[8] == "Enabled")
                            {
                                ApplicationSettings.Freemode = true;
                            }
                            if (response[9] == "Enabled")
                            {
                                ApplicationSettings.Login = true;
                            }
                            ApplicationSettings.Name = response[10];
                            if (response[11] == "Enabled")
                            {
                                ApplicationSettings.Register = true;
                            }
                            if (ApplicationSettings.DeveloperMode)
                            {
                                MessageBox.Show("Application is in Developer Mode, bypassing integrity and update check!");
                                File.Create(Environment.CurrentDirectory + "/integrity.log").Close();
                                string hash = Security.Integrity(Process.GetCurrentProcess().MainModule.FileName);
                                File.WriteAllText(Environment.CurrentDirectory + "/integrity.log", hash);
                                MessageBox.Show("Your applications hash has been saved to integrity.txt, please refer to this when your application is ready for release!");
                            }
                            else
                            {
                                if (response[12] == "Enabled")
                                {
                                    if (ApplicationSettings.Hash != Security.Integrity(Process.GetCurrentProcess().MainModule.FileName))
                                    {
                                        MessageBox.Show($"File has been tampered with, couldn't verify integrity!");
                                        Process.GetCurrentProcess().Kill();
                                    }
                                }
                                if (ApplicationSettings.Version != Version)
                                {
                                    MessageBox.Show($"Update {ApplicationSettings.Version} available, redirecting to update!");
                                    Process.Start(ApplicationSettings.Update_Link);
                                    Process.GetCurrentProcess().Kill();
                                }
                            }
                            if (ApplicationSettings.Status == false)
                            {
                                MessageBox.Show("Looks like this application is disabled, please try again later!");
                                Process.GetCurrentProcess().Kill();
                            }
                            break;

                        case "binderror":
                            MessageBox.Show(Encryption.Decode("RmFpbGVkIHRvIGJpbmQgdG8gc2VydmVyLCBjaGVjayB5b3VyIEFJRCAmIFNlY3JldCBpbiB5b3VyIGNvZGUh"));
                            Process.GetCurrentProcess().Kill();
                            return;

                        case "banned":
                            MessageBox.Show("This application has been banned for violating the TOS" + Environment.NewLine + "Contact us at [email protected]");
                            Process.GetCurrentProcess().Kill();
                            return;
                        }
                        Security.End();
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                        Process.GetCurrentProcess().Kill();
                    }
                }
            }
Exemplo n.º 5
0
    public static bool Register(string username, string password, string email, string license)
    {
        if (!Constants.Initialized)
        {
            System.Windows.Forms.MessageBox.Show("Please initialize your application first!", OnProgramStart.Name, System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);
            Security.End();
            Process.GetCurrentProcess().Kill();
        }
        if (string.IsNullOrWhiteSpace(username) || string.IsNullOrWhiteSpace(password) || string.IsNullOrWhiteSpace(email) || string.IsNullOrWhiteSpace(license))
        {
            System.Windows.Forms.MessageBox.Show("Invalid registrar information!", ApplicationSettings.Name, System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);
            Process.GetCurrentProcess().Kill();
        }
        string[] response = new string[] { };
        using (WebClient wc = new WebClient())
        {
            try
            {
                Security.Start();
                wc.Proxy = null;

                response = Encryption.DecryptService(Encoding.Default.GetString(wc.UploadValues(Constants.ApiUrl, new NameValueCollection
                {
                    ["token"]       = Encryption.EncryptService(Constants.Token),
                    ["timestamp"]   = Encryption.EncryptService(DateTime.Now.ToString()),
                    ["aid"]         = Encryption.APIService(OnProgramStart.AID),
                    ["session_id"]  = Constants.IV,
                    ["api_id"]      = Constants.APIENCRYPTSALT,
                    ["api_key"]     = Constants.APIENCRYPTKEY,
                    ["session_key"] = Constants.Key,
                    ["secret"]      = Encryption.APIService(OnProgramStart.Secret),
                    ["type"]        = Encryption.APIService("register"),
                    ["username"]    = Encryption.APIService(username),
                    ["password"]    = Encryption.APIService(password),
                    ["email"]       = Encryption.APIService(email),
                    ["license"]     = Encryption.APIService(license),
                    ["hwid"]        = Encryption.APIService(Constants.HWID()),
                }))).Split("|".ToCharArray());
                if (response[0] != Constants.Token)
                {
                    System.Windows.Forms.MessageBox.Show("Security error has been triggered!", OnProgramStart.Name, System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);
                    Security.End();
                    Process.GetCurrentProcess().Kill();
                }
                if (Security.MaliciousCheck(response[1]))
                {
                    System.Windows.Forms.MessageBox.Show("Possible malicious activity detected!", OnProgramStart.Name, System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Warning);
                    Process.GetCurrentProcess().Kill();
                }
                if (Constants.Breached)
                {
                    System.Windows.Forms.MessageBox.Show("Possible malicious activity detected!", OnProgramStart.Name, System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Warning);
                    Process.GetCurrentProcess().Kill();
                }
                switch (response[2])
                {
                case "success":
                    Security.End();
                    return(true);

                case "invalid_license":
                    System.Windows.Forms.MessageBox.Show("License does not exist!", ApplicationSettings.Name, System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);
                    Security.End();
                    return(false);

                case "email_used":
                    System.Windows.Forms.MessageBox.Show("Email has already been used!", ApplicationSettings.Name, System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);
                    Security.End();
                    return(false);

                case "invalid_username":
                    System.Windows.Forms.MessageBox.Show("You entered an invalid/used username!", ApplicationSettings.Name, System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);
                    Security.End();
                    return(false);
                }
            }
            catch
            {
                System.Windows.Forms.MessageBox.Show("Failed to establish a secure SSL tunnel with the server!", ApplicationSettings.Name, System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);
                Process.GetCurrentProcess().Kill();
            }
            return(false);
        }
    }