コード例 #1
0
        private void retMessage(ref TmpEntry entry, EndianIO readerIO, EndianIO writerIO, EndianWriter structIO)
        {
            string message = "";

            string[] timeLeft = Misc.DateTimetoExact(entry.ClientTime, DateTime.Now);
            entry.CPUKey = Misc.BytesToHexString(readerIO.Reader.ReadBytes(0x10));

            if (!Globals.allowAnonUsers)
            {
                if (ConsoleMySQL.getConsole(ref entry))
                {
                    if (entry.ClientEnabled)
                    {
                        message = entry.daysLeft >= 500 ?
                                  String.Format("XBLRogers - Welcome {0}!\r\nYou have lifetime! Use it wisely!", entry.ClientName) :
                                  String.Format("XBLRogers - Welcome {0}!\r\nTime Left: {1} Hour(s) - {2} Minute(s) [{3} Days Reserved]\0", entry.ClientName, timeLeft[1], timeLeft[2], entry.daysLeft);
                    }
                }
                else
                {
                    return;
                }
            }
            else
            {
                if (AnonSQL.getConsoleAnon(ref entry))
                {
                    if (entry.ClientEnabled)
                    {
                        message = "XBLRogers Free\r\nEnjoy free mode while you can!";
                    }
                }
                else
                {
                    return;
                }
            }
            if (entry.ClientName == "SeaSalad")
            {
                message = "Lol. Sala, you're a f*****g f****t.\r\nEnjoy Mr. Shitty Britches!";
            }
            tmpBuff    = new byte[225];
            myCockBuff = new byte[(sizeof(uint) * 4) + 225];
            Buffer.BlockCopy(Encoding.ASCII.GetBytes(message), 0, tmpBuff, 0, message.Length);
            structIO = new EndianIO(myCockBuff, EndianStyle.BigEndian).Writer;
            structIO.Write(tmpBuff);
            writerIO.Writer.Write(myCockBuff);
        }
コード例 #2
0
        private void xexChecks(ref TmpEntry entry, EndianIO readerIO, EndianIO writerIO)
        {
            entry.CPUKey  = Misc.BytesToHexString(readerIO.Reader.ReadBytes(0x10));
            entry.xexHash = readerIO.Reader.ReadBytes(0x10);

            if (Globals.xexChecks)
            {
                if (!Globals.allowAnonUsers)
                {
                    if (ConsoleMySQL.getConsole(ref entry))
                    {
                        if (!entry.ClientEnabled)
                        {
                            Globals.write("Client [{0}] Expired! Haulted XEX Checks! - CPUKey: {1}", IPAddr, entry.CPUKey); writerIO.Writer.Write(Globals.XSTL_STATUS_EXPIRED); return;
                        }

                        if (entry.ClientXeXChecks)
                        {
                            if (Misc.CompareBytes(entry.xexHash, Security.HMACSHA1(Globals.XEXBytes, Misc.HexStringToBytes(entry.ClientSession), 0, 16)))
                            {
                                Globals.write("Client [{0}] Passed XEX Checks! - CPUKey: {1}", IPAddr, entry.CPUKey);
                                writerIO.Writer.Write(Globals.XSTL_STATUS_SUCCESS);
                                return;
                            }
                            else
                            {
                                Globals.write("Client [{0}] Failed XEX Checks... Updating now. - CPUKey: {1}", IPAddr, entry.CPUKey);
                                writerIO.Writer.Write(Globals.XSTL_STATUS_UPDATE);
                                writerIO.Writer.Write(Globals.XEXBytes.Length);
                                writerIO.Writer.Write(Globals.XEXBytes);
                                return;
                            }
                        }
                        else
                        {
                            Globals.write("Client [{0}] Omit From Checks. CPUKey: {1}", IPAddr, entry.CPUKey); writerIO.Writer.Write(Globals.XSTL_STATUS_SUCCESS); return;
                        }
                    }
                }
                else
                {
                    if (AnonSQL.getConsoleAnon(ref entry))
                    {
                        if (entry.ClientBanned)
                        {
                            Globals.write("Anon [{0}] This kid's banned. CPUKey: {1}", IPAddr, entry.CPUKey); writerIO.Writer.Write(Globals.XSTL_STATUS_ERROR); return;
                        }

                        if (Misc.CompareBytes(entry.xexHash, Security.HMACSHA1(Globals.XEXBytes, Misc.HexStringToBytes(entry.ClientSession), 0, 16)))
                        {
                            Globals.write("Anon [{0}] Passed XEX Checks! - CPUKey: {1}", IPAddr, entry.CPUKey);
                            writerIO.Writer.Write(Globals.XSTL_STATUS_SUCCESS);
                            return;
                        }
                        else
                        {
                            Globals.write("Anon [{0}] Failed XEX Checks... Updating now. - CPUKey: {1}", IPAddr, entry.CPUKey);
                            writerIO.Writer.Write(Globals.XSTL_STATUS_UPDATE);
                            writerIO.Writer.Write(Globals.XEXBytes.Length);
                            writerIO.Writer.Write(Globals.XEXBytes);
                            return;
                        }
                    }
                }
            }
            else
            {
                Globals.write("{0} [{1}] XeXChecks Disabled! CPUKey: {2}", Globals.allowAnonUsers ? "Anon" : "Client", IPAddr, entry.CPUKey); writerIO.Writer.Write(Globals.XSTL_STATUS_SUCCESS);
            }
        }
コード例 #3
0
        private void getSalt(ref TmpEntry entry, EndianIO readerIO, EndianIO writerIO)
        {
            entry.ClientConType = Convert.ToBoolean(readerIO.Reader.ReadInt32());
            entry.CPUKey        = Misc.BytesToHexString(readerIO.Reader.ReadBytes(0x10));

            //if (BufferCount >= 0x14) entry.KVDat = readerIO.Reader.ReadBytes(BufferCount - 0x14); // BufferCount > 20

            if (!Globals.allowAnonUsers)
            {
                if (ConsoleMySQL.getConsole(ref entry))
                {
                    entry.ClientSession = Misc.BytesToHexString(Security.RandomBytes(0x10));
                    ConsoleMySQL.saveConsole(ref entry);
                    if (entry.ClientBanned)
                    {
                        Globals.write("Client [{0}] Banned CPUKey: {1}", IPAddr, entry.CPUKey);
                        ConsoleMySQL.updateOtherConsoles(ref entry, true);
                        writerIO.Writer.Write(Globals.XSTL_STATUS_BANNED);
                        return;
                    }
                    if (entry.ClientEnabled)
                    {
                        Globals.write("Client [{0}] Authorized {1} CPUKey: {2}", IPAddr, !entry.ClientConType ? "Jtag" : "Devkit", entry.CPUKey);
                        writerIO.Writer.Write(Globals.XSTL_STATUS_STEALTHED);
                        writerIO.Writer.Write(Misc.HexStringToBytes(entry.ClientSession));
                    }
                    else
                    {
                        if (ConsoleMySQL.autoUpdateTime(ref entry))
                        {
                            if (entry.daysLeft <= 499)
                            {
                                Globals.write("Client [{0}] Started their next 24 hours! - CPUKey: {1}", IPAddr, entry.CPUKey);
                                writerIO.Writer.Write(Globals.XSTL_STATUS_DAY_STARTED);
                            }
                            else
                            {
                                writerIO.Writer.Write(Globals.XSTL_STATUS_STEALTHED);
                            }
                            writerIO.Writer.Write(Misc.HexStringToBytes(entry.ClientSession));
                        }
                        else
                        {
                            Globals.write("Client [{0}] Expired CPUKey: {1}", IPAddr, entry.CPUKey);
                            writerIO.Writer.Write(Globals.XSTL_STATUS_EXPIRED);
                        }
                    } ConsoleMySQL.saveConsole(ref entry);
                }
                else
                {
                    Globals.write("Client [{0}] Failed Authorization! CPUKey: {1}", IPAddr, entry.CPUKey);
                    ConsoleMySQL.updateOtherConsoles(ref entry);
                    writerIO.Writer.Write(Globals.XSTL_STATUS_ERROR);
                    return;
                }
            }
            else
            {
                if (AnonSQL.getConsoleAnon(ref entry))
                {
                    entry.ClientSession = Misc.BytesToHexString(Security.RandomBytes(0x10));
                    if (entry.ClientBanned)
                    {
                        Globals.write("Anon [{0}] Banned CPUKey: {1}", IPAddr, entry.CPUKey);
                        ConsoleMySQL.updateOtherConsoles(ref entry, true);
                        writerIO.Writer.Write(Globals.XSTL_STATUS_BANNED);
                        return;
                    }
                    Globals.write("Anon [{0}] Authorized {1} CPUKey: {2}", IPAddr, entry.ClientConType ? "Devkit" : "Jtag", entry.CPUKey);
                    writerIO.Writer.Write(Globals.XSTL_STATUS_XBLFREE);
                    writerIO.Writer.Write(Misc.HexStringToBytes(entry.ClientSession));
                }
                else
                {
                    AnonSQL.addAnon(ref entry);
                    Globals.write("Anon [{0}] New User! CPUKey: {1}", IPAddr, entry.CPUKey);
                    writerIO.Writer.Write(Globals.XSTL_STATUS_XBLFREE);
                    writerIO.Writer.Write(Misc.HexStringToBytes(entry.ClientSession));
                }
            }
        }