|
المشاركات 454 |
+التقييم 0.22 |
تاريخ التسجيل Jun 2019 |
الاقامة |
نظام التشغيل |
رقم العضوية 271 |
![]() |
تم الحل يا جماعه شكرا ليكم خلاص المشكله كانت عندي اانا ومختش بالي الاجابه كلها خطاء للاسف او معملتش بيها عموما يعني
بس شكرا لي رايدر واحمد فتحي انكم اهتميته بي الموضوع شكرا ليكم جميعا فوق راسي ♥ |
MsgPlayerTransfer
public unsafe class CMsgPlayerTransfer
{
public uint ConquerPoints = 2999;
public class Mode
{
public static uint
IsOnline,
cantrans,
WrathOfEmperor,
WarLord,
Perfection,
EpicWarrior,
Backfire_EU,
SkyFlame,
EveOfWar_EU,
AuroraLotus,
Conquer13_EU,
TempestWings_EU,
Dark,
Mercury,
Saturn,
KingOfKings,
NetDraogn;
}
public static bool DTrans = false;
public static void CheckServer(string server, GamePlayer client)
{
using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("accounts").Where("EntityID", client.Player.UID))
using (var reader = new MySqlReader(cmd))
{
if (reader.Read())
{
Mode.cantrans = reader.ReadUInt32("CanTrans");
}
}
if (Mode.cantrans >= 99999)
{
client.MessageBox("Oooh o.o ! you already transfered (100) times so you can`t transfer more for times.", null, null, 0);
return;
}
else if (Constants.ServerName == server)
{
client.MessageBox("Ooops O.o ! you already in Server " + server + ".", null, null, 0);
return;
}
else
{
client.MessageBox("Are you sure you want to transfer to " + server + " Server you have [" + (100 - Mode.cantrans) + "] times to transfer",
(p) =>
{
if (!client.WarehouseOpen && client.WarehousePW != 0)
{
client.MessageBox(" Make sure you have entered a correct secondary password in the warehouse!", null, null, 0);
return;
}
else
{
if (client.Player.ConquerPoints > 2999)
{
using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("servers").Where("Name", server))
using (var reader = new MySqlReader(cmd))
{
if (reader.Read())
{
Mode.IsOnline = reader.ReadUInt32("Online");
}
}
if (Mode.IsOnline == 1)
{
using (MySqlCommand cmd = new MySqlCommand(MySqlCommandType.UPDATE))
cmd.Update("accounts").Set("server", server)
.Where("EntityID", client.Player.UID).Execute();
Mode.cantrans++;
using (MySqlCommand cmd = new MySqlCommand(MySqlCommandType.UPDATE))
cmd.Update("accounts").Set("CanTrans", Mode.cantrans)
.Where("EntityID", client.Player.UID).Execute();
client.Player.ConquerPoints -= 2999;
client.MessageBox("transfer to server " + server + " [Successfully].", null, null, 0);
DTrans = true;
}
else
{
client.MessageBox("Sorry Server Connection Failed Try Again Later.", null, null, 0);
return;
}
}
else
{
client.MessageBox("You don't have " + 2999 + " CPs.", null, null, 0);
return;
}
}
});
}
}
public static void StatusServers()
{
#region KingOfKings
using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("servers").Where("Name", "KingOfKings"))
using (var reader = new MySqlReader(cmd))
{
if (reader.Read())
{
Mode.KingOfKings = reader.ReadUInt32("Online");
}
}
#endregion
#region Dark
using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("servers").Where("Name", "Dark"))
using (var reader = new MySqlReader(cmd))
{
if (reader.Read())
{
Mode.Dark = reader.ReadUInt32("Online");
}
}
#endregion
#region Mercury
using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("servers").Where("Name", "Mercury"))
using (var reader = new MySqlReader(cmd))
{
if (reader.Read())
{
Mode.Mercury = reader.ReadUInt32("Online");
}
}
#endregion
#region Saturn
using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("servers").Where("Name", "Saturn"))
using (var reader = new MySqlReader(cmd))
{
if (reader.Read())
{
Mode.Saturn = reader.ReadUInt32("Online");
}
}
#endregion
#region Conquer13_EU
using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("servers").Where("Name", "Conquer13_EU"))
using (var reader = new MySqlReader(cmd))
{
if (reader.Read())
{
Mode.Conquer13_EU = reader.ReadUInt32("Online");
}
}
#endregion
#region TempestWings_EU
using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("servers").Where("Name", "TempestWings_EU"))
using (var reader = new MySqlReader(cmd))
{
if (reader.Read())
{
Mode.TempestWings_EU = reader.ReadUInt32("Online");
}
}
#endregion
#region WrathOfEmperor
using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("servers").Where("Name", "WrathOfEmperor"))
using (var reader = new MySqlReader(cmd))
{
if (reader.Read())
{
Mode.WrathOfEmperor = reader.ReadUInt32("Online");
}
}
#endregion
#region SkyFlame
using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("servers").Where("Name", "SkyFlame"))
using (var reader = new MySqlReader(cmd))
{
if (reader.Read())
{
Mode.SkyFlame = reader.ReadUInt32("Online");
}
}
#endregion SkyFlame
#region AuroraLotus
using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("servers").Where("Name", "AuroraLotus"))
using (var reader = new MySqlReader(cmd))
{
if (reader.Read())
{
Mode.AuroraLotus = reader.ReadUInt32("Online");
}
}
#endregion AuroraLotus
#region Conquer13_EU
using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("servers").Where("Name", "Conquer13_EU"))
using (var reader = new MySqlReader(cmd))
{
if (reader.Read())
{
Mode.Conquer13_EU = reader.ReadUInt32("Online");
}
}
#endregion WrathOfEmperor
#region Perfection
using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("servers").Where("Name", "Perfection"))
using (var reader = new MySqlReader(cmd))
{
if (reader.Read())
{
Mode.Perfection = reader.ReadUInt32("Online");
}
}
#endregion Perfection
#region EpicWarrior
using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("servers").Where("Name", "EpicWarrior"))
using (var reader = new MySqlReader(cmd))
{
if (reader.Read())
{
Mode.EpicWarrior = reader.ReadUInt32("Online");
}
}
#endregion EpicWarrior
#region Backfire_EU
using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("servers").Where("Name", "Backfire_EU"))
using (var reader = new MySqlReader(cmd))
{
if (reader.Read())
{
Mode.Backfire_EU = reader.ReadUInt32("Online");
}
}
#endregion Backfire_EU
#region EveOfWar_EU
using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("servers").Where("Name", "EveOfWar_EU"))
using (var reader = new MySqlReader(cmd))
{
if (reader.Read())
{
Mode.EveOfWar_EU = reader.ReadUInt32("Online");
}
}
#endregion EveOfWar_EU
#region WarLord
using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("servers").Where("Name", "WarLord"))
using (var reader = new MySqlReader(cmd))
{
if (reader.Read())
{
Mode.WarLord = reader.ReadUInt32("Online");
}
}
#endregion WarLord
}
}
: DataHolder
public static MYSQLCONNECTION MySqlConnection
public static string ConnectionString2;
public static void CreateConnection_ACC_SERVER()
{
var list = System.Configuration.ConfigurationManager.ConnectionStrings;
ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings[list.Count - 1].ConnectionString;
}
public static MYSQLCONNECTION MySqlConnection
{
get
{
MYSQLCONNECTION conn = new MYSQLCONNECTION();
conn.ConnectionString = ConnectionString2;
return conn;
}
}
public static CONNECTION_ACC_SERVER ACC_SERVER
{
get
{
CONNECTION_ACC_SERVER conn = new CONNECTION_ACC_SERVER();
conn.ConnectionString = ConnectionString;
return conn;
}
}
using CONNECTION_ACC_SERVER = MySql.Data.MySqlClient.MySqlConnection;
using (var cmd = new MySqlCommand(MySqlCommandType.UPDATE))
AccServer.Database.MySqlCommandType
AccServer.Database.MySqlCommand
using (var cmd = new AccServer.Database.MySqlCommand(AccServer.Database.MySqlCommandType.SELECT).Select("claimitems").Where("GainerUID", client.Player.UID))
using (var reader = new AccServer.Database.MySqlReader(cmd))
GameServer.Enable(GamePort, "0.0.0.0");
void AppendConnect
public static void AppendConnect(MsgConnect appendConnect, GamePlayer client)
{
if (client.LoggedIn)
{
client.Disconnect(true);
return;
}
bool doLogin = false;
lock (LoginSyncRoot)
{
Database.AccountTable Account = new Database.AccountTable(null);
{
TransferCipher.Key = Encoding.ASCII.GetBytes("6D1B73DA0250473496C2845F91FA2A42");
TransferCipher.Salt = Encoding.ASCII.GetBytes("DDA177642131459FBFBD17D9003678A8");
TransferCipher transferCipher = new TransferCipher("127.0.0.1");
uint[] decrypted = transferCipher.Decrypt(new uint[] { appendConnect.Identifier, appendConnect.Identifier });
client.Account = Account;
client.Account.EntityID = appendConnect.Identifier = decrypted[0];
client.Account.State = (Database.AccountTable.AccountState)(appendConnect.Identifier = decrypted[1]);
client.Account.IP = client.Socket.IP;
using (var cmd = new AccServer.Database.MySqlCommand(AccServer.Database.MySqlCommandType.SELECT).Select("entities")
.Where("UID", client.Account.EntityID))
using (var reader = new AccServer.Database.MySqlReader(cmd))
{
if (!reader.Read())
{
client.Socket.OverrideTiming = true;
client.Send(new Message("NEW_ROLE", "ALLUSERS", System.Drawing.Color.Orange,
GamePackets.Message.Dialog));
return;
}
}
if (Kernel.DisconnectPool.ContainsKey(Account.EntityID))
{
client.Send(new Message("Please try again after a minute!", "ALLUSERS", System.Drawing.Color.Orange, GamePackets.Message.Dialog));
return;
}
VariableVault variables;
Database.EntityVariableTable.Load(client.Account.EntityID, out variables);
client.Variables = variables;
if (client["banhours"] == 0)
{
client["banhours"] = -1;
client["banreason"] = "Infinite time.";
client["banstamp"] = DateTime.Now.AddYears(100);
}
if (Account.State == Database.AccountTable.AccountState.Banned)
{
if (client["banhours"] != -1)
{
DateTime banStamp = client["banstamp"];
if (DateTime.Now > banStamp.AddDays(((int)client["banhours"]) / 24).AddHours(((int)client["banhours"]) % 24))
Account.State = Database.AccountTable.AccountState.Player;
}
}
string Message = "";
if (Account.State == Database.AccountTable.AccountState.Banned)
{
DateTime banStamp = client["banstamp"];
banStamp = banStamp.AddHours(client["banhours"]);
Message = "You are banned for " + client["banhours"] + " hours [until " + banStamp.ToString("HH:mm MM/dd/yyyy") + "]. Reason: " + client["banreason"];
}
else if (Account.State == Database.AccountTable.AccountState.NotActivated)
Message = "You cannot login until your account is activated.";
if (Message == string.Empty)
{
GamePlayer aClient = null;
if (Kernel.GamePool.TryGetValue(Account.EntityID, out aClient))
aClient.Disconnect();
Kernel.GamePool.Remove(Account.EntityID);
client.Player = new Player(PlayerFlag.Monster, false);
Kernel.GamePool.Add(Account.EntityID, client);
doLogin = true;
}
else
{
client.Send(new Message(Message, "ALLUSERS", System.Drawing.Color.Orange, GamePackets.Message.Dialog));
Thread.Execute<GamePlayer>((pClient, time) => { pClient.Disconnect(); }, client, 100);
}
}
if (doLogin)
{
DoLogin(client);
}
}
}
#region Transfer
DataHolder.CreateConnection_ACC_SERVER();
TransferCipher.Key = Encoding.ASCII.GetBytes("6D1B73DA0250473496C2845F9 1FA2A42");
TransferCipher.Salt = Encoding.ASCII.GetBytes("DDA177642131459FBFBD17D90 03678A8");
#endregion
Last updated on: 2017 From before Ranko */
/* Last updated in Project CMsgConquer */
/* Copyright © 2015 - 2017 by Ranko */
using System;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections.Generic;
using System.Security.Cryptography;
using System.Runtime.CompilerServices;
namespace COServer.Network
{
public unsafe sealed class TigerHashAlgorithm
{
private const int BLOCKSIZE = 64;
#region Substitution Boxes
public static ulong[] SBOX1 = new ulong[0x100] {
0x02AAB17CF7E90C5EUL, 0xAC424B03E243A8ECUL, 0x72CD5BE30DD5FCD3UL, 0x6D019B93F6F97F3AUL,
0xCD9978FFD21F9193UL, 0x7573A1C9708029E2UL, 0xB164326B922A83C3UL, 0x46883EEE04915870UL,
0xEAACE3057103ECE6UL, 0xC54169B808A3535CUL, 0x4CE754918DDEC47CUL, 0x0AA2F4DFDC0DF40CUL,
0x10B76F18A74DBEFAUL, 0xC6CCB6235AD1AB6AUL, 0x13726121572FE2FFUL, 0x1A488C6F199D921EUL,
0x4BC9F9F4DA0007CAUL, 0x26F5E6F6E85241C7UL, 0x859079DBEA5947B6UL, 0x4F1885C5C99E8C92UL,
0xD78E761EA96F864BUL, 0x8E36428C52B5C17DUL, 0x69CF6827373063C1UL, 0xB607C93D9BB4C56EUL,
0x7D820E760E76B5EAUL, 0x645C9CC6F07FDC42UL, 0xBF38A078243342E0UL, 0x5F6B343C9D2E7D04UL,
0xF2C28AEB600B0EC6UL, 0x6C0ED85F7254BCACUL, 0x71592281A4DB4FE5UL, 0x1967FA69CE0FED9FUL,
0xFD5293F8B96545DBUL, 0xC879E9D7F2A7600BUL, 0x860248920193194EUL, 0xA4F9533B2D9CC0B3UL,
0x9053836C15957613UL, 0xDB6DCF8AFC357BF1UL, 0x18BEEA7A7A370F57UL, 0x037117CA50B99066UL,
0x6AB30A9774424A35UL, 0xF4E92F02E325249BUL, 0x7739DB07061CCAE1UL, 0xD8F3B49CECA42A05UL,
0xBD56BE3F51382F73UL, 0x45FAED5843B0BB28UL, 0x1C813D5C11BF1F83UL, 0x8AF0E4B6D75FA169UL,
0x33EE18A487AD9999UL, 0x3C26E8EAB1C94410UL, 0xB510102BC0A822F9UL, 0x141EEF310CE6123BUL,
0xFC65B90059DDB154UL, 0xE0158640C5E0E607UL, 0x884E079826C3A3CFUL, 0x930D0D9523C535FDUL,
0x35638D754E9A2B00UL, 0x4085FCCF40469DD5UL, 0xC4B17AD28BE23A4CUL, 0xCAB2F0FC6A3E6A2EUL,
0x2860971A6B943FCDUL, 0x3DDE6EE212E30446UL, 0x6222F32AE01765AEUL, 0x5D550BB5478308FEUL,
0xA9EFA98DA0EDA22AUL, 0xC351A71686C40DA7UL, 0x1105586D9C867C84UL, 0xDCFFEE85FDA22853UL,
0xCCFBD0262C5EEF76UL, 0xBAF294CB8990D201UL, 0xE69464F52AFAD975UL, 0x94B013AFDF133E14UL,
0x06A7D1A32823C958UL, 0x6F95FE5130F61119UL, 0xD92AB34E462C06C0UL, 0xED7BDE33887C71D2UL,
0x79746D6E6518393EUL, 0x5BA419385D713329UL, 0x7C1BA6B948A97564UL, 0x31987C197BFDAC67UL,
0xDE6C23C44B053D02UL, 0x581C49FED002D64DUL, 0xDD474D6338261571UL, 0xAA4546C3E473D062UL,
0x928FCE349455F860UL, 0x48161BBACAAB94D9UL, 0x63912430770E6F68UL, 0x6EC8A5E602C6641CUL,
0x87282515337DDD2BUL, 0x2CDA6B42034B701BUL, 0xB03D37C181CB096DUL, 0xE108438266C71C6FUL,
0x2B3180C7EB51B255UL, 0xDF92B82F96C08BBCUL, 0x5C68C8C0A632F3BAUL, 0x5504CC861C3D0556UL,
0xABBFA4E55FB26B8FUL, 0x41848B0AB3BACEB4UL, 0xB334A273AA445D32UL, 0xBCA696F0A85AD881UL,
0x24F6EC65B528D56CUL, 0x0CE1512E90F4524AUL, 0x4E9DD79D5506D35AUL, 0x258905FAC6CE9779UL,
0x2019295B3E109B33UL, 0xF8A9478B73A054CCUL, 0x2924F2F934417EB0UL, 0x3993357D536D1BC4UL,
0x38A81AC21DB6FF8BUL, 0x47C4FBF17D6016BFUL, 0x1E0FAADD7667E3F5UL, 0x7ABCFF62938BEB96UL,
0xA78DAD948FC179C9UL, 0x8F1F98B72911E50DUL, 0x61E48EAE27121A91UL, 0x4D62F7AD31859808UL,
0xECEBA345EF5CEAEBUL, 0xF5CEB25EBC9684CEUL, 0xF633E20CB7F76221UL, 0xA32CDF06AB8293E4UL,
0x985A202CA5EE2CA4UL, 0xCF0B8447CC8A8FB1UL, 0x9F765244979859A3UL, 0xA8D516B1A1240017UL,
0x0BD7BA3EBB5DC726UL, 0xE54BCA55B86ADB39UL, 0x1D7A3AFD6C478063UL, 0x519EC608E7669EDDUL,
0x0E5715A2D149AA23UL, 0x177D4571848FF194UL, 0xEEB55F3241014C22UL, 0x0F5E5CA13A6E2EC2UL,
0x8029927B75F5C361UL, 0xAD139FABC3D6E436UL, 0x0D5DF1A94CCF402FUL, 0x3E8BD948BEA5DFC8UL,
0xA5A0D357BD3FF77EUL, 0xA2D12E251F74F645UL, 0x66FD9E525E81A082UL, 0x2E0C90CE7F687A49UL,
0xC2E8BCBEBA973BC5UL, 0x000001BCE509745FUL, 0x423777BBE6DAB3D6UL, 0xD1661C7EAEF06EB5UL,
0xA1781F354DAACFD8UL, 0x2D11284A2B16AFFCUL, 0xF1FC4F67FA891D1FUL, 0x73ECC25DCB920ADAUL,
0xAE610C22C2A12651UL, 0x96E0A810D356B78AUL, 0x5A9A381F2FE7870FUL, 0xD5AD62EDE94E5530UL,
0xD225E5E8368D1427UL, 0x65977B70C7AF4631UL, 0x99F889B2DE39D74FUL, 0x233F30BF54E1D143UL,
0x9A9675D3D9A63C97UL, 0x5470554FF334F9A8UL, 0x166ACB744A4F5688UL, 0x70C74CAAB2E4AEADUL,
0xF0D091646F294D12UL, 0x57B82A89684031D1UL, 0xEFD95A5A61BE0B6BUL, 0x2FBD12E969F2F29AUL,
0x9BD37013FEFF9FE8UL, 0x3F9B0404D6085A06UL, 0x4940C1F3166CFE15UL, 0x09542C4DCDF3DEFBUL,
0xB4C5218385CD5CE3UL, 0xC935B7DC4462A641UL, 0x3417F8A68ED3B63FUL, 0xB80959295B215B40UL,
0xF99CDAEF3B8C8572UL, 0x018C0614F8FCB95DUL, 0x1B14ACCD1A3ACDF3UL, 0x84D471F200BB732DUL,
0xC1A3110E95E8DA16UL, 0x430A7220BF1A82B8UL, 0xB77E090D39DF210EUL, 0x5EF4BD9F3CD05E9DUL,
0x9D4FF6DA7E57A444UL, 0xDA1D60E183D4A5F8UL, 0xB287C38417998E47UL, 0xFE3EDC121BB31886UL,
0xC7FE3CCC980CCBEFUL, 0xE46FB590189BFD03UL, 0x3732FD469A4C57DCUL, 0x7EF700A07CF1AD65UL,
0x59C64468A31D8859UL, 0x762FB0B4D45B61F6UL, 0x155BAED099047718UL, 0x68755E4C3D50BAA6UL,
0xE9214E7F22D8B4DFUL, 0x2ADDBF532EAC95F4UL, 0x32AE3909B4BD0109UL, 0x834DF537B08E3450UL,
0xFA209DA84220728DUL, 0x9E691D9B9EFE23F7UL, 0x0446D288C4AE8D7FUL, 0x7B4CC524E169785BUL,
0x21D87F0135CA1385UL, 0xCEBB400F137B8AA5UL, 0x272E2B66580796BEUL, 0x3612264125C2B0DEUL,
0x057702BDAD1EFBB2UL, 0xD4BABB8EACF84BE9UL, 0x91583139641BC67BUL, 0x8BDC2DE08036E024UL,
0x603C8156F49F68EDUL, 0xF7D236F7DBEF5111UL, 0x9727C4598AD21E80UL, 0xA08A0896670A5FD7UL,
0xCB4A8F4309EBA9CBUL, 0x81AF564B0F7036A1UL, 0xC0B99AA778199ABDUL, 0x959F1EC83FC8E952UL,
0x8C505077794A81B9UL, 0x3ACAAF8F056338F0UL, 0x07B43F50627A6778UL, 0x4A44AB49F5ECCC77UL,
0x3BC3D6E4B679EE98UL, 0x9CC0D4D1CF14108CUL, 0x4406C00B206BC8A0UL, 0x82A18854C8D72D89UL,
0x67E366B35C3C432CUL, 0xB923DD61102B37F2UL, 0x56AB2779D884271DUL, 0xBE83E1B0FF1525AFUL,
0xFB7C65D4217E49A9UL, 0x6BDBE0E76D48E7D4UL, 0x08DF828745D9179EUL, 0x22EA6A9ADD53BD34UL,
0xE36E141C5622200AUL, 0x7F805D1B8CB750EEUL, 0xAFE5C7A59F58E837UL, 0xE27F996A4FB1C23CUL,
0xD3867DFB0775F0D0UL, 0xD0E673DE6E88891AUL, 0x123AEB9EAFB86C25UL, 0x30F1D5D5C145B895UL,
0xBB434A2DEE7269E7UL, 0x78CB67ECF931FA38UL, 0xF33B0372323BBF9CUL, 0x52D66336FB279C74UL,
0x505F33AC0AFB4EAAUL, 0xE8A5CD99A2CCE187UL, 0x534974801E2D30BBUL, 0x8D2D5711D5876D90UL,
0x1F1A412891BC038EUL, 0xD6E2E71D82E56648UL, 0x74036C3A497732B7UL, 0x89B67ED96361F5ABUL,
0xFFED95D8F1EA02A2UL, 0xE72B3BD61464D43DUL, 0xA6300F170BDC4820UL, 0xEBC18760ED78A77AUL };
public static ulong[] SBOX2 = new ulong[0x100] {
0xE6A6BE5A05A12138UL, 0xB5A122A5B4F87C98UL, 0x563C6089140B6990UL, 0x4C46CB2E391F5DD5UL,
0xD932ADDBC9B79434UL, 0x08EA70E42015AFF5UL, 0xD765A6673E478CF1UL, 0xC4FB757EAB278D99UL,
0xDF11C6862D6E0692UL, 0xDDEB84F10D7F3B16UL, 0x6F2EF604A665EA04UL, 0x4A8E0F0FF0E0DFB3UL,
0xA5EDEEF83DBCBA51UL, 0xFC4F0A2A0EA4371EUL, 0xE83E1DA85CB38429UL, 0xDC8FF882BA1B1CE2UL,
0xCD45505E8353E80DUL, 0x18D19A00D4DB0717UL, 0x34A0CFEDA5F38101UL, 0x0BE77E518887CAF2UL,
0x1E341438B3C45136UL, 0xE05797F49089CCF9UL, 0xFFD23F9DF2591D14UL, 0x543DDA228595C5CDUL,
0x661F81FD99052A33UL, 0x8736E641DB0F7B76UL, 0x15227725418E5307UL, 0xE25F7F46162EB2FAUL,
0x48A8B2126C13D9FEUL, 0xAFDC541792E76EEAUL, 0x03D912BFC6D1898FUL, 0x31B1AAFA1B83F51BUL,
0xF1AC2796E42AB7D9UL, 0x40A3A7D7FCD2EBACUL, 0x1056136D0AFBBCC5UL, 0x7889E1DD9A6D0C85UL,
0xD33525782A7974AAUL, 0xA7E25D09078AC09BUL, 0xBD4138B3EAC6EDD0UL, 0x920ABFBE71EB9E70UL,
0xA2A5D0F54FC2625CUL, 0xC054E36B0B1290A3UL, 0xF6DD59FF62FE932BUL, 0x3537354511A8AC7DUL,
0xCA845E9172FADCD4UL, 0x84F82B60329D20DCUL, 0x79C62CE1CD672F18UL, 0x8B09A2ADD124642CUL,
0xD0C1E96A19D9E726UL, 0x5A786A9B4BA9500CUL, 0x0E020336634C43F3UL, 0xC17B474AEB66D822UL,
0x6A731AE3EC9BAAC2UL, 0x8226667AE0840258UL, 0x67D4567691CAECA5UL, 0x1D94155C4875ADB5UL,
0x6D00FD985B813FDFUL, 0x51286EFCB774CD06UL, 0x5E8834471FA744AFUL, 0xF72CA0AEE761AE2EUL,
0xBE40E4CDAEE8E09AUL, 0xE9970BBB5118F665UL, 0x726E4BEB33DF1964UL, 0x703B000729199762UL,
0x4631D816F5EF30A7UL, 0xB880B5B51504A6BEUL, 0x641793C37ED84B6CUL, 0x7B21ED77F6E97D96UL,
0x776306312EF96B73UL, 0xAE528948E86FF3F4UL, 0x53DBD7F286A3F8F8UL, 0x16CADCE74CFC1063UL,
0x005C19BDFA52C6DDUL, 0x68868F5D64D46AD3UL, 0x3A9D512CCF1E186AUL, 0x367E62C2385660AEUL,
0xE359E7EA77DCB1D7UL, 0x526C0773749ABE6EUL, 0x735AE5F9D09F734BUL, 0x493FC7CC8A558BA8UL,
0xB0B9C1533041AB45UL, 0x321958BA470A59BDUL, 0x852DB00B5F46C393UL, 0x91209B2BD336B0E5UL,
0x6E604F7D659EF19FUL, 0xB99A8AE2782CCB24UL, 0xCCF52AB6C814C4C7UL, 0x4727D9AFBE11727BUL,
0x7E950D0C0121B34DUL, 0x756F435670AD471FUL, 0xF5ADD442615A6849UL, 0x4E87E09980B9957AUL,
0x2ACFA1DF50AEE355UL, 0xD898263AFD2FD556UL, 0xC8F4924DD80C8FD6UL, 0xCF99CA3D754A173AUL,
0xFE477BACAF91BF3CUL, 0xED5371F6D690C12DUL, 0x831A5C285E687094UL, 0xC5D3C90A3708A0A4UL,
0x0F7F903717D06580UL, 0x19F9BB13B8FDF27FUL, 0xB1BD6F1B4D502843UL, 0x1C761BA38FFF4012UL,
0x0D1530C4E2E21F3BUL, 0x8943CE69A7372C8AUL, 0xE5184E11FEB5CE66UL, 0x618BDB80BD736621UL,
0x7D29BAD68B574D0BUL, 0x81BB613E25E6FE5BUL, 0x071C9C10BC07913FUL, 0xC7BEEB7909AC2D97UL,
0xC3E58D353BC5D757UL, 0xEB017892F38F61E8UL, 0xD4EFFB9C9B1CC21AUL, 0x99727D26F494F7ABUL,
0xA3E063A2956B3E03UL, 0x9D4A8B9A4AA09C30UL, 0x3F6AB7D500090FB4UL, 0x9CC0F2A057268AC0UL,
0x3DEE9D2DEDBF42D1UL, 0x330F49C87960A972UL, 0xC6B2720287421B41UL, 0x0AC59EC07C00369CUL,
0xEF4EAC49CB353425UL, 0xF450244EEF0129D8UL, 0x8ACC46E5CAF4DEB6UL, 0x2FFEAB63989263F7UL,
0x8F7CB9FE5D7A4578UL, 0x5BD8F7644E634635UL, 0x427A7315BF2DC900UL, 0x17D0C4AA2125261CUL,
0x3992486C93518E50UL, 0xB4CBFEE0A2D7D4C3UL, 0x7C75D6202C5DDD8DUL, 0xDBC295D8E35B6C61UL,
0x60B369D302032B19UL, 0xCE42685FDCE44132UL, 0x06F3DDB9DDF65610UL, 0x8EA4D21DB5E148F0UL,
0x20B0FCE62FCD496FUL, 0x2C1B912358B0EE31UL, 0xB28317B818F5A308UL, 0xA89C1E189CA6D2CFUL,
0x0C6B18576AAADBC8UL, 0xB65DEAA91299FAE3UL, 0xFB2B794B7F1027E7UL, 0x04E4317F443B5BEBUL,
0x4B852D325939D0A6UL, 0xD5AE6BEEFB207FFCUL, 0x309682B281C7D374UL, 0xBAE309A194C3B475UL,
0x8CC3F97B13B49F05UL, 0x98A9422FF8293967UL, 0x244B16B01076FF7CUL, 0xF8BF571C663D67EEUL,
0x1F0D6758EEE30DA1UL, 0xC9B611D97ADEB9B7UL, 0xB7AFD5887B6C57A2UL, 0x6290AE846B984FE1UL,
0x94DF4CDEACC1A5FDUL, 0x058A5BD1C5483AFFUL, 0x63166CC142BA3C37UL, 0x8DB8526EB2F76F40UL,
0xE10880036F0D6D4EUL, 0x9E0523C9971D311DUL, 0x45EC2824CC7CD691UL, 0x575B8359E62382C9UL,
0xFA9E400DC4889995UL, 0xD1823ECB45721568UL, 0xDAFD983B8206082FUL, 0xAA7D29082386A8CBUL,
0x269FCD4403B87588UL, 0x1B91F5F728BDD1E0UL, 0xE4669F39040201F6UL, 0x7A1D7C218CF04ADEUL,
0x65623C29D79CE5CEUL, 0x2368449096C00BB1UL, 0xAB9BF1879DA503BAUL, 0xBC23ECB1A458058EUL,
0x9A58DF01BB401ECCUL, 0xA070E868A85F143DUL, 0x4FF188307DF2239EUL, 0x14D565B41A641183UL,
0xEE13337452701602UL, 0x950E3DCF3F285E09UL, 0x59930254B9C80953UL, 0x3BF299408930DA6DUL,
0xA955943F53691387UL, 0xA15EDECAA9CB8784UL, 0x29142127352BE9A0UL, 0x76F0371FFF4E7AFBUL,
0x0239F450274F2228UL, 0xBB073AF01D5E868BUL, 0xBFC80571C10E96C1UL, 0xD267088568222E23UL,
0x9671A3D48E80B5B0UL, 0x55B5D38AE193BB81UL, 0x693AE2D0A18B04B8UL, 0x5C48B4ECADD5335FUL,
0xFD743B194916A1CAUL, 0x2577018134BE98C4UL, 0xE77987E83C54A4ADUL, 0x28E11014DA33E1B9UL,
0x270CC59E226AA213UL, 0x71495F756D1A5F60UL, 0x9BE853FB60AFEF77UL, 0xADC786A7F7443DBFUL,
0x0904456173B29A82UL, 0x58BC7A66C232BD5EUL, 0xF306558C673AC8B2UL, 0x41F639C6B6C9772AUL,
0x216DEFE99FDA35DAUL, 0x11640CC71C7BE615UL, 0x93C43694565C5527UL, 0xEA038E6246777839UL,
0xF9ABF3CE5A3E2469UL, 0x741E768D0FD312D2UL, 0x0144B883CED652C6UL, 0xC20B5A5BA33F8552UL,
0x1AE69633C3435A9DUL, 0x97A28CA4088CFDECUL, 0x8824A43C1E96F420UL, 0x37612FA66EEEA746UL,
0x6B4CB165F9CF0E5AUL, 0x43AA1C06A0ABFB4AUL, 0x7F4DC26FF162796BUL, 0x6CBACC8E54ED9B0FUL,
0xA6B7FFEFD2BB253EUL, 0x2E25BC95B0A29D4FUL, 0x86D6A58BDEF1388CUL, 0xDED74AC576B6F054UL,
0x8030BDBC2B45805DUL, 0x3C81AF70E94D9289UL, 0x3EFF6DDA9E3100DBUL, 0xB38DC39FDFCC8847UL,
0x123885528D17B87EUL, 0xF2DA0ED240B1B642UL, 0x44CEFADCD54BF9A9UL, 0x1312200E433C7EE6UL,
0x9FFCC84F3A78C748UL, 0xF0CD1F72248576BBUL, 0xEC6974053638CFE4UL, 0x2BA7B67C0CEC4E4CUL,
0xAC2F4DF3E5CE32EDUL, 0xCB33D14326EA4C11UL, 0xA4E9044CC77E58BCUL, 0x5F513293D934FCEFUL,
0x5DC9645506E55444UL, 0x50DE418F317DE40AUL, 0x388CB31A69DDE259UL, 0x2DB4A83455820A86UL,
0x9010A91E84711AE9UL, 0x4DF7F0B7B1498371UL, 0xD62A2EABC0977179UL, 0x22FAC097AA8D5C0EUL };
public static ulong[] SBOX3 = new ulong[0x100] {
0xF49FCC2FF1DAF39BUL, 0x487FD5C66FF29281UL, 0xE8A30667FCDCA83FUL, 0x2C9B4BE3D2FCCE63UL,
0xDA3FF74B93FBBBC2UL, 0x2FA165D2FE70BA66UL, 0xA103E279970E93D4UL, 0xBECDEC77B0E45E71UL,
0xCFB41E723985E497UL, 0xB70AAA025EF75017UL, 0xD42309F03840B8E0UL, 0x8EFC1AD035898579UL,
0x96C6920BE2B2ABC5UL, 0x66AF4163375A9172UL, 0x2174ABDCCA7127FBUL, 0xB33CCEA64A72FF41UL,
0xF04A4933083066A5UL, 0x8D970ACDD7289AF5UL, 0x8F96E8E031C8C25EUL, 0xF3FEC02276875D47UL,
0xEC7BF310056190DDUL, 0xF5ADB0AEBB0F1491UL, 0x9B50F8850FD58892UL, 0x4975488358B74DE8UL,
0xA3354FF691531C61UL, 0x0702BBE481D2C6EEUL, 0x89FB24057DEDED98UL, 0xAC3075138596E902UL,
0x1D2D3580172772EDUL, 0xEB738FC28E6BC30DUL, 0x5854EF8F63044326UL, 0x9E5C52325ADD3BBEUL,
0x90AA53CF325C4623UL, 0xC1D24D51349DD067UL, 0x2051CFEEA69EA624UL, 0x13220F0A862E7E4FUL,
0xCE39399404E04864UL, 0xD9C42CA47086FCB7UL, 0x685AD2238A03E7CCUL, 0x066484B2AB2FF1DBUL,
0xFE9D5D70EFBF79ECUL, 0x5B13B9DD9C481854UL, 0x15F0D475ED1509ADUL, 0x0BEBCD060EC79851UL,
0xD58C6791183AB7F8UL, 0xD1187C5052F3EEE4UL, 0xC95D1192E54E82FFUL, 0x86EEA14CB9AC6CA2UL,
0x3485BEB153677D5DUL, 0xDD191D781F8C492AUL, 0xF60866BAA784EBF9UL, 0x518F643BA2D08C74UL,
0x8852E956E1087C22UL, 0xA768CB8DC410AE8DUL, 0x38047726BFEC8E1AUL, 0xA67738B4CD3B45AAUL,
0xAD16691CEC0DDE19UL, 0xC6D4319380462E07UL, 0xC5A5876D0BA61938UL, 0x16B9FA1FA58FD840UL,
0x188AB1173CA74F18UL, 0xABDA2F98C99C021FUL, 0x3E0580AB134AE816UL, 0x5F3B05B773645ABBUL,
0x2501A2BE5575F2F6UL, 0x1B2F74004E7E8BA9UL, 0x1CD7580371E8D953UL, 0x7F6ED89562764E30UL,
0xB15926FF596F003DUL, 0x9F65293DA8C5D6B9UL, 0x6ECEF04DD690F84CUL, 0x4782275FFF33AF88UL,
0xE41433083F820801UL, 0xFD0DFE409A1AF9B5UL, 0x4325A3342CDB396BUL, 0x8AE77E62B301B252UL,
0xC36F9E9F6655615AUL, 0x85455A2D92D32C09UL, 0xF2C7DEA949477485UL, 0x63CFB4C133A39EBAUL,
0x83B040CC6EBC5462UL, 0x3B9454C8FDB326B0UL, 0x56F56A9E87FFD78CUL, 0x2DC2940D99F42BC6UL,
0x98F7DF096B096E2DUL, 0x19A6E01E3AD852BFUL, 0x42A99CCBDBD4B40BUL, 0xA59998AF45E9C559UL,
0x366295E807D93186UL, 0x6B48181BFAA1F773UL, 0x1FEC57E2157A0A1DUL, 0x4667446AF6201AD5UL,
0xE615EBCACFB0F075UL, 0xB8F31F4F68290778UL, 0x22713ED6CE22D11EUL, 0x3057C1A72EC3C93BUL,
0xCB46ACC37C3F1F2FUL, 0xDBB893FD02AAF50EUL, 0x331FD92E600B9FCFUL, 0xA498F96148EA3AD6UL,
0xA8D8426E8B6A83EAUL, 0xA089B274B7735CDCUL, 0x87F6B3731E524A11UL, 0x118808E5CBC96749UL,
0x9906E4C7B19BD394UL, 0xAFED7F7E9B24A20CUL, 0x6509EADEEB3644A7UL, 0x6C1EF1D3E8EF0EDEUL,
0xB9C97D43E9798FB4UL, 0xA2F2D784740C28A3UL, 0x7B8496476197566FUL, 0x7A5BE3E6B65F069DUL,
0xF96330ED78BE6F10UL, 0xEEE60DE77A076A15UL, 0x2B4BEE4AA08B9BD0UL, 0x6A56A63EC7B8894EUL,
0x02121359BA34FEF4UL, 0x4CBF99F8283703FCUL, 0x398071350CAF30C8UL, 0xD0A77A89F017687AUL,
0xF1C1A9EB9E423569UL, 0x8C7976282DEE8199UL, 0x5D1737A5DD1F7ABDUL, 0x4F53433C09A9FA80UL,
0xFA8B0C53DF7CA1D9UL, 0x3FD9DCBC886CCB77UL, 0xC040917CA91B4720UL, 0x7DD00142F9D1DCDFUL,
0x8476FC1D4F387B58UL, 0x23F8E7C5F3316503UL, 0x032A2244E7E37339UL, 0x5C87A5D750F5A74BUL,
0x082B4CC43698992EUL, 0xDF917BECB858F63CUL, 0x3270B8FC5BF86DDAUL, 0x10AE72BB29B5DD76UL,
0x576AC94E7700362BUL, 0x1AD112DAC61EFB8FUL, 0x691BC30EC5FAA427UL, 0xFF246311CC327143UL,
0x3142368E30E53206UL, 0x71380E31E02CA396UL, 0x958D5C960AAD76F1UL, 0xF8D6F430C16DA536UL,
0xC8FFD13F1BE7E1D2UL, 0x7578AE66004DDBE1UL, 0x05833F01067BE646UL, 0xBB34B5AD3BFE586DUL,
0x095F34C9A12B97F0UL, 0x247AB64525D60CA8UL, 0xDCDBC6F3017477D1UL, 0x4A2E14D4DECAD24DUL,
0xBDB5E6D9BE0A1EEBUL, 0x2A7E70F7794301ABUL, 0xDEF42D8A270540FDUL, 0x01078EC0A34C22C1UL,
0xE5DE511AF4C16387UL, 0x7EBB3A52BD9A330AUL, 0x77697857AA7D6435UL, 0x004E831603AE4C32UL,
0xE7A21020AD78E312UL, 0x9D41A70C6AB420F2UL, 0x28E06C18EA1141E6UL, 0xD2B28CBD984F6B28UL,
0x26B75F6C446E9D83UL, 0xBA47568C4D418D7FUL, 0xD80BADBFE6183D8EUL, 0x0E206D7F5F166044UL,
0xE258A43911CBCA3EUL, 0x723A1746B21DC0BCUL, 0xC7CAA854F5D7CDD3UL, 0x7CAC32883D261D9CUL,
0x7690C26423BA942CUL, 0x17E55524478042B8UL, 0xE0BE477656A2389FUL, 0x4D289B5E67AB2DA0UL,
0x44862B9C8FBBFD31UL, 0xB47CC8049D141365UL, 0x822C1B362B91C793UL, 0x4EB14655FB13DFD8UL,
0x1ECBBA0714E2A97BUL, 0x6143459D5CDE5F14UL, 0x53A8FBF1D5F0AC89UL, 0x97EA04D81C5E5B00UL,
0x622181A8D4FDB3F3UL, 0xE9BCD341572A1208UL, 0x1411258643CCE58AUL, 0x9144C5FEA4C6E0A4UL,
0x0D33D06565CF620FUL, 0x54A48D489F219CA1UL, 0xC43E5EAC6D63C821UL, 0xA9728B3A72770DAFUL,
0xD7934E7B20DF87EFUL, 0xE35503B61A3E86E5UL, 0xCAE321FBC819D504UL, 0x129A50B3AC60BFA6UL,
0xCD5E68EA7E9FB6C3UL, 0xB01C90199483B1C7UL, 0x3DE93CD5C295376CUL, 0xAED52EDF2AB9AD13UL,
0x2E60F512C0A07884UL, 0xBC3D86A3E36210C9UL, 0x35269D9B163951CEUL, 0x0C7D6E2AD0CDB5FAUL,
0x59E86297D87F5733UL, 0x298EF221898DB0E7UL, 0x55000029D1A5AA7EUL, 0x8BC08AE1B5061B45UL,
0xC2C31C2B6C92703AUL, 0x94CC596BAF25EF42UL, 0x0A1D73DB22540456UL, 0x04B6A0F9D9C4179AUL,
0xEFFDAFA2AE3D3C60UL, 0xF7C8075BB49496C4UL, 0x9CC5C7141D1CD4E3UL, 0x78BD1638218E5534UL,
0xB2F11568F850246AUL, 0xEDFABCFA9502BC29UL, 0x796CE5F2DA23051BUL, 0xAAE128B0DC93537CUL,
0x3A493DA0EE4B29AEUL, 0xB5DF6B2C416895D7UL, 0xFCABBD25122D7F37UL, 0x70810B58105DC4B1UL,
0xE10FDD37F7882A90UL, 0x524DCAB5518A3F5CUL, 0x3C9E85878451255BUL, 0x4029828119BD34E2UL,
0x74A05B6F5D3CECCBUL, 0xB610021542E13ECAUL, 0x0FF979D12F59E2ACUL, 0x6037DA27E4F9CC50UL,
0x5E92975A0DF1847DUL, 0xD66DE190D3E623FEUL, 0x5032D6B87B568048UL, 0x9A36B7CE8235216EUL,
0x80272A7A24F64B4AUL, 0x93EFED8B8C6916F7UL, 0x37DDBFF44CCE1555UL, 0x4B95DB5D4B99BD25UL,
0x92D3FDA169812FC0UL, 0xFB1A4A9A90660BB6UL, 0x730C196946A4B9B2UL, 0x81E289AA7F49DA68UL,
0x64669A0F83B1A05FUL, 0x27B3FF7D9644F48BUL, 0xCC6B615C8DB675B3UL, 0x674F20B9BCEBBE95UL,
0x6F31238275655982UL, 0x5AE488713E45CF05UL, 0xBF619F9954C21157UL, 0xEABAC46040A8EAE9UL,
0x454C6FE9F2C0C1CDUL, 0x419CF6496412691CUL, 0xD3DC3BEF265B0F70UL, 0x6D0E60F5C3578A9EUL };
public static ulong[] SBOX4 = new ulong[0x100] {
0x5B0E608526323C55UL, 0x1A46C1A9FA1B59F5UL, 0xA9E245A17C4C8FFAUL, 0x65CA5159DB2955D7UL,
0x05DB0A76CE35AFC2UL, 0x81EAC77EA9113D45UL, 0x528EF88AB6AC0A0DUL, 0xA09EA253597BE3FFUL,
0x430DDFB3AC48CD56UL, 0xC4B3A67AF45CE46FUL, 0x4ECECFD8FBE2D05EUL, 0x3EF56F10B39935F0UL,
0x0B22D6829CD619C6UL, 0x17FD460A74DF2069UL, 0x6CF8CC8E8510ED40UL, 0xD6C824BF3A6ECAA7UL,
0x61243D581A817049UL, 0x048BACB6BBC163A2UL, 0xD9A38AC27D44CC32UL, 0x7FDDFF5BAAF410ABUL,
0xAD6D495AA804824BUL, 0xE1A6A74F2D8C9F94UL, 0xD4F7851235DEE8E3UL, 0xFD4B7F886540D893UL,
0x247C20042AA4BFDAUL, 0x096EA1C517D1327CUL, 0xD56966B4361A6685UL, 0x277DA5C31221057DUL,
0x94D59893A43ACFF7UL, 0x64F0C51CCDC02281UL, 0x3D33BCC4FF6189DBUL, 0xE005CB184CE66AF1UL,
0xFF5CCD1D1DB99BEAUL, 0xB0B854A7FE42980FUL, 0x7BD46A6A718D4B9FUL, 0xD10FA8CC22A5FD8CUL,
0xD31484952BE4BD31UL, 0xC7FA975FCB243847UL, 0x4886ED1E5846C407UL, 0x28CDDB791EB70B04UL,
0xC2B00BE2F573417FUL, 0x5C9590452180F877UL, 0x7A6BDDFFF370EB00UL, 0xCE509E38D6D9D6A4UL,
0xEBEB0F00647FA702UL, 0x1DCC06CF76606F06UL, 0xE4D9F28BA286FF0AUL, 0xD85A305DC918C262UL,
0x475B1D8732225F54UL, 0x2D4FB51668CCB5FEUL, 0xA679B9D9D72BBA20UL, 0x53841C0D912D43A5UL,
0x3B7EAA48BF12A4E8UL, 0x781E0E47F22F1DDFUL, 0xEFF20CE60AB50973UL, 0x20D261D19DFFB742UL,
0x16A12B03062A2E39UL, 0x1960EB2239650495UL, 0x251C16FED50EB8B8UL, 0x9AC0C330F826016EUL,
0xED152665953E7671UL, 0x02D63194A6369570UL, 0x5074F08394B1C987UL, 0x70BA598C90B25CE1UL,
0x794A15810B9742F6UL, 0x0D5925E9FCAF8C6CUL, 0x3067716CD868744EUL, 0x910AB077E8D7731BUL,
0x6A61BBDB5AC42F61UL, 0x93513EFBF0851567UL, 0xF494724B9E83E9D5UL, 0xE887E1985C09648DUL,
0x34B1D3C675370CFDUL, 0xDC35E433BC0D255DUL, 0xD0AAB84234131BE0UL, 0x08042A50B48B7EAFUL,
0x9997C4EE44A3AB35UL, 0x829A7B49201799D0UL, 0x263B8307B7C54441UL, 0x752F95F4FD6A6CA6UL,
0x927217402C08C6E5UL, 0x2A8AB754A795D9EEUL, 0xA442F7552F72943DUL, 0x2C31334E19781208UL,
0x4FA98D7CEAEE6291UL, 0x55C3862F665DB309UL, 0xBD0610175D53B1F3UL, 0x46FE6CB840413F27UL,
0x3FE03792DF0CFA59UL, 0xCFE700372EB85E8FUL, 0xA7BE29E7ADBCE118UL, 0xE544EE5CDE8431DDUL,
0x8A781B1B41F1873EUL, 0xA5C94C78A0D2F0E7UL, 0x39412E2877B60728UL, 0xA1265EF3AFC9A62CUL,
0xBCC2770C6A2506C5UL, 0x3AB66DD5DCE1CE12UL, 0xE65499D04A675B37UL, 0x7D8F523481BFD216UL,
0x0F6F64FCEC15F389UL, 0x74EFBE618B5B13C8UL, 0xACDC82B714273E1DUL, 0xDD40BFE003199D17UL,
0x37E99257E7E061F8UL, 0xFA52626904775AAAUL, 0x8BBBF63A463D56F9UL, 0xF0013F1543A26E64UL,
0xA8307E9F879EC898UL, 0xCC4C27A4150177CCUL, 0x1B432F2CCA1D3348UL, 0xDE1D1F8F9F6FA013UL,
0x606602A047A7DDD6UL, 0xD237AB64CC1CB2C7UL, 0x9B938E7225FCD1D3UL, 0xEC4E03708E0FF476UL,
0xFEB2FBDA3D03C12DUL, 0xAE0BCED2EE43889AUL, 0x22CB8923EBFB4F43UL, 0x69360D013CF7396DUL,
0x855E3602D2D4E022UL, 0x073805BAD01F784CUL, 0x33E17A133852F546UL, 0xDF4874058AC7B638UL,
0xBA92B29C678AA14AUL, 0x0CE89FC76CFAADCDUL, 0x5F9D4E0908339E34UL, 0xF1AFE9291F5923B9UL,
0x6E3480F60F4A265FUL, 0xEEBF3A2AB29B841CUL, 0xE21938A88F91B4ADUL, 0x57DFEFF845C6D3C3UL,
0x2F006B0BF62CAAF2UL, 0x62F479EF6F75EE78UL, 0x11A55AD41C8916A9UL, 0xF229D29084FED453UL,
0x42F1C27B16B000E6UL, 0x2B1F76749823C074UL, 0x4B76ECA3C2745360UL, 0x8C98F463B91691BDUL,
0x14BCC93CF1ADE66AUL, 0x8885213E6D458397UL, 0x8E177DF0274D4711UL, 0xB49B73B5503F2951UL,
0x10168168C3F96B6BUL, 0x0E3D963B63CAB0AEUL, 0x8DFC4B5655A1DB14UL, 0xF789F1356E14DE5CUL,
0x683E68AF4E51DAC1UL, 0xC9A84F9D8D4B0FD9UL, 0x3691E03F52A0F9D1UL, 0x5ED86E46E1878E80UL,
0x3C711A0E99D07150UL, 0x5A0865B20C4E9310UL, 0x56FBFC1FE4F0682EUL, 0xEA8D5DE3105EDF9BUL,
0x71ABFDB12379187AUL, 0x2EB99DE1BEE77B9CUL, 0x21ECC0EA33CF4523UL, 0x59A4D7521805C7A1UL,
0x3896F5EB56AE7C72UL, 0xAA638F3DB18F75DCUL, 0x9F39358DABE9808EUL, 0xB7DEFA91C00B72ACUL,
0x6B5541FD62492D92UL, 0x6DC6DEE8F92E4D5BUL, 0x353F57ABC4BEEA7EUL, 0x735769D6DA5690CEUL,
0x0A234AA642391484UL, 0xF6F9508028F80D9DUL, 0xB8E319A27AB3F215UL, 0x31AD9C1151341A4DUL,
0x773C22A57BEF5805UL, 0x45C7561A07968633UL, 0xF913DA9E249DBE36UL, 0xDA652D9B78A64C68UL,
0x4C27A97F3BC334EFUL, 0x76621220E66B17F4UL, 0x967743899ACD7D0BUL, 0xF3EE5BCAE0ED6782UL,
0x409F753600C879FCUL, 0x06D09A39B5926DB6UL, 0x6F83AEB0317AC588UL, 0x01E6CA4A86381F21UL,
0x66FF3462D19F3025UL, 0x72207C24DDFD3BFBUL, 0x4AF6B6D3E2ECE2EBUL, 0x9C994DBEC7EA08DEUL,
0x49ACE597B09A8BC4UL, 0xB38C4766CF0797BAUL, 0x131B9373C57C2A75UL, 0xB1822CCE61931E58UL,
0x9D7555B909BA1C0CUL, 0x127FAFDD937D11D2UL, 0x29DA3BADC66D92E4UL, 0xA2C1D57154C2ECBCUL,
0x58C5134D82F6FE24UL, 0x1C3AE3515B62274FUL, 0xE907C82E01CB8126UL, 0xF8ED091913E37FCBUL,
0x3249D8F9C80046C9UL, 0x80CF9BEDE388FB63UL, 0x1881539A116CF19EUL, 0x5103F3F76BD52457UL,
0x15B7E6F5AE47F7A8UL, 0xDBD7C6DED47E9CCFUL, 0x44E55C410228BB1AUL, 0xB647D4255EDB4E99UL,
0x5D11882BB8AAFC30UL, 0xF5098BBB29D3212AUL, 0x8FB5EA14E90296B3UL, 0x677B942157DD025AUL,
0xFB58E7C0A390ACB5UL, 0x89D3674C83BD4A01UL, 0x9E2DA4DF4BF3B93BUL, 0xFCC41E328CAB4829UL,
0x03F38C96BA582C52UL, 0xCAD1BDBD7FD85DB2UL, 0xBBB442C16082AE83UL, 0xB95FE86BA5DA9AB0UL,
0xB22E04673771A93FUL, 0x845358C9493152D8UL, 0xBE2A488697B4541EUL, 0x95A2DC2DD38E6966UL,
0xC02C11AC923C852BUL, 0x2388B1990DF2A87BUL, 0x7C8008FA1B4F37BEUL, 0x1F70D0C84D54E503UL,
0x5490ADEC7ECE57D4UL, 0x002B3C27D9063A3AUL, 0x7EAEA3848030A2BFUL, 0xC602326DED2003C0UL,
0x83A7287D69A94086UL, 0xC57A5FCB30F57A8AUL, 0xB56844E479EBE779UL, 0xA373B40F05DCBCE9UL,
0xD71A786E88570EE2UL, 0x879CBACDBDE8F6A0UL, 0x976AD1BCC164A32FUL, 0xAB21E25E9666D78BUL,
0x901063AAE5E5C33CUL, 0x9818B34448698D90UL, 0xE36487AE3E1E8ABBUL, 0xAFBDF931893BDCB4UL,
0x6345A0DC5FBBD519UL, 0x8628FE269B9465CAUL, 0x1E5D01603F9C51ECUL, 0x4DE44006A15049B7UL,
0xBF6C70E5F776CBB1UL, 0x411218F2EF552BEDUL, 0xCB0C0708705A36A3UL, 0xE74D14754F986044UL,
0xCD56D9430EA8280EUL, 0xC12591D7535F5065UL, 0xC83223F1720AEF96UL, 0xC3A0396F7363A51FUL };
#endregion
private ulong[] _x = new ulong[8];
private ulong[] _digest = new ulong[3];
private byte[] _buffer = new byte[BLOCKSIZE];
private ulong _count = 0;
public TigerHashAlgorithm()
{
_digest[0] = 0x0123456789ABCDEFUL;
_digest[1] = 0xFEDCBA9876543210UL;
_digest[2] = 0xF096A5B4C3B2E187UL;
}
public void Hash(byte[] input)
{
if (input.Length % 8 != 0)
{
byte[] buffer = new byte[input.Length + (8 - input.Length % 8)];
System.Buffer.BlockCopy(input, 0, buffer, 0, input.Length);
input = buffer;
}
for (int j = 0; j < input.Length / 8; j++)
_x[j] = ((ulong)input[8 * j + 7] << 56) | ((ulong)input[8 * j + 6] << 48) |
((ulong)input[8 * j + 5] << 40) | ((ulong)input[8 * j + 4] << 32) |
((ulong)input[8 * j + 3] << 24) | ((ulong)input[8 * j + 2] << 16) |
((ulong)input[8 * j + 1] << 8) | ((ulong)input[8 * j]);
ulong A = _digest[0], B = _digest[1], C = _digest[2];
Round(ref A, ref B, ref C, _x[0], 5); Round(ref B, ref C, ref A, _x[1], 5); Round(ref C, ref A, ref B, _x[2], 5);
Round(ref A, ref B, ref C, _x[3], 5); Round(ref B, ref C, ref A, _x[4], 5); Round(ref C, ref A, ref B, _x[5], 5);
Round(ref A, ref B, ref C, _x[6], 5); Round(ref B, ref C, ref A, _x[7], 5);
_x[0] -= _x[7] ^ 0xA5A5A5A5A5A5A5A5UL; _x[1] ^= _x[0];
_x[2] += _x[1]; _x[3] -= _x[2] ^ ((~_x[1]) << 19); _x[4] ^= _x[3];
_x[5] += _x[4]; _x[6] -= _x[5] ^ ((~_x[4]) >> 23); _x[7] ^= _x[6];
_x[0] += _x[7]; _x[1] -= _x[0] ^ ((~_x[7]) << 19); _x[2] ^= _x[1];
_x[3] += _x[2]; _x[4] -= _x[3] ^ ((~_x[2]) >> 23); _x[5] ^= _x[4];
_x[6] += _x[5]; _x[7] -= _x[6] ^ 0x0123456789ABCDEFUL;
Round(ref C, ref A, ref B, _x[0], 7); Round(ref A, ref B, ref C, _x[1], 7); Round(ref B, ref C, ref A, _x[2], 7);
Round(ref C, ref A, ref B, _x[3], 7); Round(ref A, ref B, ref C, _x[4], 7); Round(ref B, ref C, ref A, _x[5], 7);
Round(ref C, ref A, ref B, _x[6], 7); Round(ref A, ref B, ref C, _x[7], 7);
_x[0] -= _x[7] ^ 0xA5A5A5A5A5A5A5A5UL; _x[1] ^= _x[0];
_x[2] += _x[1]; _x[3] -= _x[2] ^ ((~_x[1]) << 19); _x[4] ^= _x[3];
_x[5] += _x[4]; _x[6] -= _x[5] ^ ((~_x[4]) >> 23); _x[7] ^= _x[6];
_x[0] += _x[7]; _x[1] -= _x[0] ^ ((~_x[7]) << 19); _x[2] ^= _x[1];
_x[3] += _x[2]; _x[4] -= _x[3] ^ ((~_x[2]) >> 23); _x[5] ^= _x[4];
_x[6] += _x[5]; _x[7] -= _x[6] ^ 0x0123456789ABCDEFUL;
Round(ref B, ref C, ref A, _x[0], 9); Round(ref C, ref A, ref B, _x[1], 9); Round(ref A, ref B, ref C, _x[2], 9);
Round(ref B, ref C, ref A, _x[3], 9); Round(ref C, ref A, ref B, _x[4], 9); Round(ref A, ref B, ref C, _x[5], 9);
Round(ref B, ref C, ref A, _x[6], 9); Round(ref C, ref A, ref B, _x[7], 9);
_digest[0] ^= A; _digest[1] = B - _digest[1]; _digest[2] += C;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
private void Round(ref ulong A, ref ulong B, ref ulong C, ulong msg, ulong mult)
{
C ^= msg;
A -= SBOX1[GetByte(7, C)] ^ SBOX2[GetByte(5, C)] ^
SBOX3[GetByte(3, C)] ^ SBOX4[GetByte(1, C)];
B -= SBOX1[GetByte(0, C)] ^ SBOX2[GetByte(2, C)] ^
SBOX3[GetByte(4, C)] ^ SBOX4[GetByte(6, C)];
B *= mult;
}
public byte[] Final(int hashLength)
{
byte[] result = new byte[hashLength];
_buffer[0] = 0x01;
for (int j = BLOCKSIZE - 8; j < BLOCKSIZE; j++)
_buffer[j] = GetByte(7 - (j % 8), _count);
Hash(_buffer);
for (int j = 0; j < hashLength; j++)
result[j] = GetByte(7 - (j % 8), _digest[(j / 8) % 3]);
return result;
}
private static byte GetByte(int byteNum, ulong input)
{
return (byte)(input >> ((sizeof(ulong) - 1 - (byteNum & (sizeof(ulong) - 1))) << 3));
}
}
public unsafe sealed class TransferCipher
{
public static byte[] Key;
public static byte[] Salt;
private RivestCipher5 _rivest;
public TransferCipher(string unique)
{
TigerHashAlgorithm tigerHash = new TigerHashAlgorithm();
tigerHash.Hash(Encoding.ASCII.GetBytes(unique));
tigerHash.Hash(Key);
PasswordDeriveBytes password = new PasswordDeriveBytes(tigerHash.Final(0x10), Salt);
_rivest = new RivestCipher5();
_rivest.GenerateKeys(password.GetBytes(16));
}
public TransferCipher(string key, string salt, string unique)
{
TigerHashAlgorithm tigerHash = new TigerHashAlgorithm();
tigerHash.Hash(Encoding.ASCII.GetBytes(unique));
tigerHash.Hash(Encoding.ASCII.GetBytes(key));
PasswordDeriveBytes password = new PasswordDeriveBytes(tigerHash.Final(0x10), Encoding.ASCII.GetBytes(salt));
_rivest = new RivestCipher5();
_rivest.GenerateKeys(password.GetBytes(16));
}
public uint[] Encrypt(uint[] input)
{
byte[] buffer = new byte[8];
fixed (byte* ptr = buffer)
{
*(uint*)(ptr) = input[0];
*(uint*)(ptr + 4) = input[1];
}
_rivest.Encrypt(buffer);
return new uint[2] { BitConverter.ToUInt32(buffer, 0), BitConverter.ToUInt32(buffer, 4) };
}
public uint[] Decrypt(uint[] input)
{
byte[] buffer = new byte[8];
fixed (byte* ptr = buffer)
{
*(uint*)(ptr + 0) = input[0];
*(uint*)(ptr + 4) = input[1];
}
_rivest.Decrypt(buffer);
return new uint[2] { BitConverter.ToUInt32(buffer, 0), BitConverter.ToUInt32(buffer, 4) };
}
}
}
#region ServerTransferOfficer
case 15702:
{
dialog.Avatar(186);
switch (CMsgTaskDialog.OptionID)
{
case 0:
{
dialog.Text("Guys, I`m responsible for transferring servers. If you don`t wanna stay here anymore, I can help anytime except 07:00 - 09:30 and 15:00 - 17:30. Anything?");
dialog.Text("Yeah,~tell~me~more~about~it.");
dialog.Option("Yeah,~tell~me~more~about~it.", 1);
dialog.Option("I~wanna~transfer~now.", 2);
dialog.Option("Nothing.", 255);
dialog.Send();
break;
}
case 1:
{
dialog.Text("I like curious people, seriously. There`re something you need to do before transferring:");
dialog.Text("~1. Cancel all your relationships with this server, including guild, clan, mentor, trade partner and marriage.");
dialog.Text("~2. Make sure you aren`t detaining other players` equipment, or your equipment is being detained by others.");
dialog.Text("~3. Retrieve all items from your itemboxes in your house.");
dialog.Text("~4. Claim all your TQ Point Cards. 5. View all your unread messages. 6. Claim your mentor exp.");
dialog.Text("~After that, give me 150000 CPs, done!");
dialog.Option("I~got~it.", 255);
dialog.Send();
break;
}
case 2:
{
CMsgPlayerTransfer.StatusServers();
dialog.Text("Now select a server group.");
if (CMsgPlayerTransfer.Mode.EveOfWar_EU == 1)
dialog.Option("EveOfWar_EU [Online]", 4);
else
dialog.Option("EveOfWar_EU [Offline]", 4);
if (CMsgPlayerTransfer.Mode.WarLord == 1)
dialog.Option("WarLord [Online]", 5);
else
dialog.Option("WarLord [Offline]", 5);
dialog.Option("Nothing.", 255);
dialog.Send();
break;
}
case 4:
{
CMsgPlayerTransfer.CheckServer("WarLord", client);
break;
}
}
break;
}
#endregion
الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1) | |
|
الموضوع | كاتب الموضوع | المنتدى | مشاركات | آخر مشاركة |
ممكن حد ينزلنا نظام Union في قسم التطوير | uncelsam | مشكلات السيرفيرات كونكر الشخصيه | 3 | 2019-11-15 11:16 PM |
احنا بنعمل خير للناس هل يا ترا في حد هيعمل خير معايا فيه مشكله وياريت الحل الصحيح | zezonever | مشكلات السيرفيرات كونكر الشخصيه | 11 | 2019-11-11 05:14 AM |
لو سمحتو حل للمشكلتين دول وياريت نزول حلهم فى قسم التطوير | ابو مروان | مشكلات السيرفيرات كونكر الشخصيه | 10 | 2019-10-24 07:38 AM |
موضوع مهم | ElSaher | مشكلات السيرفيرات كونكر الشخصيه | 11 | 2019-08-28 07:27 PM |
مطلوب حماية السورس من الهكر ولا اضافة من فسم التطوير شغاله | ahmedfathy | مشكلات السيرفيرات كونكر الشخصيه | 1 | 2019-07-27 08:56 PM |