static void Main(string[] args) { IPEndPoint authServer = new IPEndPoint(IPAddress.Parse("37.114.57.220"), 11000); IPEndPoint loginServer = new IPEndPoint(IPAddress.Parse("37.114.57.220"), 13010); //IPEndPoint gameServer = new IPEndPoint(IPAddress.Parse("37.114.57.220"), 13094); VirtualClient vc = new VirtualClient(authServer, loginServer, Encoding.UTF8.GetBytes("LV,ZEuzy5A_[{LF!")); vc.LoginSuccessCallback += Vc_LoginSuccessCallback; vc.LoginFailCallback += Vc_LoginFailCallback; vc.Login("hackxlawl", "asdasdasd"); byte[] key = Encoding.UTF8.GetBytes("LV,ZEuzy5A_[{LF!"); //byte[] enckey = new byte[] { 0x7D, 0x6E, 0x78, 0x5F, 0x82, 0x01, 0x9E, 0x5B, 0xCB, 0x2C, 0x75, 0x62, 0xEC, 0xF5, 0xCF, 0x7A }; //byte[] key = CryptoUtils.GetKey_20050304Myevan(); //byte[] decryptKey = TinyEncryptionAlgorithm.Encrypt(enckey, key); //byte[] data = { 0x95, 0x0C, 0x18, 0x3C, 0xE3, 0x19, 0xD7, 0x01 }; ////TinyEncryptionAlgorithm tea = new TinyEncryptionAlgorithm(); //byte[] de = TinyEncryptionAlgorithm.Decrypt(data, decryptKey); //Logger l = new Logger(); //l.Log("hddmod", de); //Console.ReadLine(); }
public override void Received(VirtualClient virtualClient) { Inventory inventory = virtualClient.GetInventory(Cell.WindowType); if (inventory != null) { SlotItem slotItem = new SlotItem() { Vnum = this.Vnum, Count = this.Count }; for (int i = 0; i < StatBytes.Length; i = i + 3) { ItemStatType type = (ItemStatType)StatBytes[i]; Int16 value = BitConverter.ToInt16(StatBytes, i + 1); if (type != ItemStatType.None) { slotItem.ItemStats.Add(new ItemStat() { Type = type, Value = value }); } } inventory.SetSlot(Cell.Cell, slotItem); virtualClient.OnSlotChanged(Cell.WindowType, Cell.Cell, inventory.Slots[Cell.Cell]); } }
static void Main(string[] args) { //IPEndPoint authServer = new IPEndPoint(IPAddress.Parse("37.114.57.220"), 11000); //IPEndPoint loginServer = new IPEndPoint(IPAddress.Parse("37.114.57.220"), 13030); IPEndPoint authServer = new IPEndPoint(IPAddress.Parse("149.202.214.144"), 11000); IPEndPoint loginServer = new IPEndPoint(IPAddress.Parse("149.202.214.144"), 13010); VirtualClient virtualClient = new VirtualClient(authServer, loginServer, Encoding.UTF8.GetBytes("LV,ZEuzy5A_[{LF!")); virtualClient.LoginSuccessCallback += VirtualClient_LoginSuccessCallback; virtualClient.LoginFailCallback += VirtualClient_LoginFailCallback; virtualClient.ShopSearchFinishedCallback += VirtualClient_ShopSearchFinishedCallback; virtualClient.ItemSlotChangedCallback += VirtualClient_ItemSlotChangedCallback; virtualClient.Logger.LogLevel = LogLevel.Info; virtualClient.Login("testbenutzername", "testpasswort"); vc = virtualClient; timer.Elapsed += Timer_Elapsed; while (true) { Console.ReadLine(); } //Decrypt output from smartsniff with this code. //byte[] defkey = Encoding.UTF8.GetBytes("LV,ZEuzy5A_[{LF!"); //byte[] enkey = new byte[] { 0xB1, 0x5A, 0xF7, 0x21, 0xE2, 0x2B, 0x63, 0x76, 0x26, 0x3F, 0xD6, 0x68, 0x8F, 0x0D, 0xCC, 0x49 }; ////byte[] enkey = new byte[] { 0xAA, 0xAA, 0xAA, 0xAA, 0xBB, 0xBB, 0xBB, 0xBB, 0xCC, 0xCC, 0xCC, 0xCC, 0xDD, 0xDD, 0xDD, 0xDD }; //byte[] chinakey = CryptoUtils.GetKey_20050304Myevan(); //byte[] dekey = TinyEncryptionAlgorithm.Encrypt(enkey, chinakey); //while (true) //{ // String input; // byte[] bytes = new byte[0]; // do // { // input = Console.ReadLine(); // if (String.IsNullOrWhiteSpace(input)) // break; // String line = input.Substring(10); // int endpos = line.IndexOf(" "); // line = line.Substring(0, endpos); // String hex = line.Replace(" ", ""); // byte[] b = Enumerable.Range(0, hex.Length) // .Where(x => x % 2 == 0) // .Select(x => Convert.ToByte(hex.Substring(x, 2), 16)) // .ToArray(); // bytes = bytes.Concat(b).ToArray(); // } while (input.Length > 0); // byte[] dec = TinyEncryptionAlgorithm.Decrypt(bytes, defkey); // Logger l = new Logger(); // l.LogInfo("Input: ", dec); // Console.ReadLine(); //} }
public override void Received(VirtualClient virtualClient) { virtualClient.Logger.LogInfo("Authentication success"); virtualClient.Disconnect(); virtualClient.Encryption = false; virtualClient.LoginInformation.LoginKey = LoginKey; virtualClient.Connect(ServerEndPoint.LoginServer); }
public override void Received(VirtualClient virtualClient) { UInt16 packetSize = (UInt16)(Size - Marshal.SizeOf <SSyncPositionPacket>()); if (packetSize > 0) { virtualClient.DequeueReceivedData(packetSize); } }
private static void VirtualClient_ItemSlotChangedCallback(VirtualClient virtualClient, byte window, UInt16 slot, SlotItem slotItem) { if (!(window == 1 && slot == 0)) { return; } itemStats = slotItem.ItemStats; timer.Stop(); timer.Start(); }
public override void Received(VirtualClient virtualClient) { LoginFailResult result = new LoginFailResult { LoginFailReason = LoginFailReason.Description, Description = this.Status }; virtualClient.OnLoginFail(result); }
public override void Received(VirtualClient virtualClient) { UInt16 packetLength = (UInt16)(Size - Marshal.SizeOf <SQuestInfoPacket>()); byte[] packetBytes = virtualClient.DequeueReceivedData(packetLength); QuestPacketType type = QuestPacketType.QUEST_PACKET_TYPE_NONE; if ((Flag & (byte)QuestAttributes.QUEST_SEND_IS_BEGIN) > 0) { if ((QuestPacketType)virtualClient.DequeueReceivedData(1).First() != 0) { type = QuestPacketType.QUEST_PACKET_TYPE_BEGIN; } else { type = QuestPacketType.QUEST_PACKET_TYPE_END; } } else { type = QuestPacketType.QUEST_PACKET_TYPE_UPDATE; } if ((Flag & (byte)QuestAttributes.QUEST_SEND_TITLE) > 0) { virtualClient.DequeueReceivedData(31); } if ((Flag & (byte)QuestAttributes.QUEST_SEND_CLOCK_NAME) > 0) { virtualClient.DequeueReceivedData(17); } if ((Flag & (byte)QuestAttributes.QUEST_SEND_CLOCK_VALUE) > 0) { virtualClient.DequeueReceivedData(4); } if ((Flag & (byte)QuestAttributes.QUEST_SEND_COUNTER_NAME) > 0) { virtualClient.DequeueReceivedData(17); } if ((Flag & (byte)QuestAttributes.QUEST_SEND_COUNTER_VALUE) > 0) { virtualClient.DequeueReceivedData(4); } if ((Flag & (byte)QuestAttributes.QUEST_SEND_ICON_FILE) > 0) { virtualClient.DequeueReceivedData(25); } }
public override void Received(VirtualClient virtualClient) { if(virtualClient.IsIngame == false) { CEnterGamePacket packet = new CEnterGamePacket(); virtualClient.SendPacket(packet); virtualClient.Logger.LogInfo("Entered Game"); virtualClient.IsIngame = true; } virtualClient.CharacterManager.GetCharacter().Gold = this.Gold;; virtualClient.Logger.LogInfo("Gold: " + Gold); }
private void Received_PhaseSentry(VirtualClient virtualClient) { CSentrySendPacket packet = new CSentrySendPacket() { Mac = "00::00::20::00::00::02", Guid = "445cd91f-7ae3-acab-9ffa-51b9dc5bfabb", CpuId = "288BBBFF0F100BA0", HddMod = "SAMSUNGSUPERFASTFUCKYOU", HddSer = "RS032GYJAB6969SHIT0845", DeviceName = "DESKTOP" }; virtualClient.SendPacket(packet); }
private static void Vc_LoginSuccessCallback(VirtualClient virtualClient, LoginSuccessResult loginResult) { Console.Clear(); Console.WriteLine("Login Success"); Console.WriteLine(); foreach (SelectCharacter c in loginResult.Characters) { Console.WriteLine("Name: " + c.Name); Console.WriteLine("Level: " + c.Level); Console.WriteLine("Race: " + c.Race); Console.WriteLine(); } virtualClient.SelectCharacter(0); }
public override void Received(VirtualClient virtualClient) { Inventory inventory = virtualClient.GetInventory(Cell.WindowType); if (inventory != null) { SlotItem slotItem = new SlotItem() { Vnum = this.Vnum, Count = this.Count }; inventory.SetSlot(Cell.Cell, slotItem); } }
public override void Received(VirtualClient virtualClient) { MainCharacter mainCharacter = new MainCharacter() { VID = this.VID, Empire = this.Empire, Name = this.Username, Race = this.Race, SkillGroup = this.SkillGroup, X = this.X, Y = this.Y, Z = this.Z, }; virtualClient.CharacterManager.SetCharacter(mainCharacter); }
public void ProcessAction(VirtualClient client) { client.battleStart = true; foreach (var id_pos in clientPosDict) { if (client.ID == id_pos.Key) { client.InitPlayer(id_pos.Value); } else { client.InitOtherPlayer(id_pos.Key, id_pos.Value); } } }
private void Received_PhaseAuth(VirtualClient virtualClient) { virtualClient.Encryption = true; CLogin3Packet packet = new CLogin3Packet() { Username = virtualClient.LoginInformation.Username, Password = virtualClient.LoginInformation.Password, HWID = "CSsa/aFvBBQNA+1mkwS41lCvp4VYNBcw4UdoLWRD/1E=", Language = "de", Timestamp = virtualClient.ClientVersion, }; Array.Copy(virtualClient.ClientKey, packet.ClientKey, 4); virtualClient.SendPacket(packet); }
public override void Received(VirtualClient virtualClient) { UInt16 packetSize = (UInt16)(Size - Marshal.SizeOf <SNPCPositionPacket>()); byte[] packetBytes = virtualClient.DequeueReceivedData(packetSize); List <NPCPosition> npcPositions = new List <NPCPosition>(Count); int npcPositionSize = Marshal.SizeOf <NPCPosition>(); for (int i = 0; i < npcPositionSize * Count; i = i + npcPositionSize) { byte[] npcPositionBytes = new byte[npcPositionSize]; Array.Copy(packetBytes, i, npcPositionBytes, 0, npcPositionSize); GCHandle handle = GCHandle.Alloc(npcPositionBytes, GCHandleType.Pinned); NPCPosition npcPosition = (NPCPosition)Marshal.PtrToStructure(handle.AddrOfPinnedObject(), typeof(NPCPosition)); handle.Free(); npcPositions.Add(npcPosition); } }
public override void Received(VirtualClient virtualClient) { if (virtualClient.ConnectedServerEndPoint != ServerEndPoint.GameServer) { virtualClient.LoginSuccessResult.Characters.AddRange(this.Characters.Where(x => x.ID != 0).ToList()); String logtext = ""; for (int i = 0; i < virtualClient.LoginSuccessResult.Characters.Count; i++) { SelectCharacter character = virtualClient.LoginSuccessResult.Characters[i]; logtext += i + ") Name: " + character.Name + " Level: " + character.Level + " Race: " + character.Race + "\r\n"; } virtualClient.Logger.LogInfo(logtext); virtualClient.OnLoginSuccess(); } else { CCharacterSelectPacket packet = new CCharacterSelectPacket(); packet.CharacterIndex = virtualClient.SelectedCharacterIndex; virtualClient.SendPacket(packet); } }
private void Received_PhaseLogin(VirtualClient virtualClient) { if (virtualClient.LoginInformation.LoginKey.HasValue == false) { throw new Exception("No Login Key available"); } virtualClient.Encryption = true; CLogin2Packet packet = new CLogin2Packet { Username = virtualClient.LoginInformation.Username, LoginKey = virtualClient.LoginInformation.LoginKey.Value }; Array.Copy(virtualClient.ClientKey, packet.ClientKey, 4); virtualClient.SendPacket(packet); byte[] encryptKey = new byte[16]; Buffer.BlockCopy(virtualClient.ClientKey, 0, encryptKey, 0, 16); byte[] key = CryptoUtils.GetKey_20050304Myevan(); byte[] decryptKey = TinyEncryptionAlgorithm.Encrypt(encryptKey, key); virtualClient.SetXteaKey(encryptKey, decryptKey); }
private static void VirtualClient_ShopSearchFinishedCallback(VirtualClient virtualClient, List <ShopSearchTuple> tuples) { virtualClient.ShopManager.Buy(0x086c04, 1); //DateTime now = DateTime.Now; //virtualClient.Logger.LogLevel = LogLevel.Info; //if (tuples == null || tuples.Count == 0) // return; //Stopwatch sw = new Stopwatch(); //sw.Start(); //int c = 0; //using (ShopContext context = new ShopContext()) //{ // HashSet<String> allHashes = context.ShopItems.Select(x => x.Hash).ToHashSet(); // List<ShopSearchTuple> newTuples = tuples.Where(x => !allHashes.Contains(x.Hash)).ToList(); // foreach (ShopSearchTuple tuple in newTuples) // { // c++; // ShopItem shopItem = new ShopItem() // { // Count = tuple.Count, // Hash = tuple.Hash, // ItemId = tuple.ItemId, // UnitPrice = tuple.Price / tuple.Count, // Seller = tuple.Seller, // ShopId = tuple.ShopId, // ShopPosition = tuple.ShopPosition, // }; // context.ShopItems.Add(shopItem); // } // context.SaveChanges(); //} //sw.Stop(); //Console.WriteLine("Added " + c + " items to db in " + sw.ElapsedMilliseconds); }
private async void connect_Click(object sender, EventArgs e) { var onlineStatus = online.Checked; if (onlineStatus) { _client.Disconnect(); return; } var mac = deviceNo.Text; var ip = this.ip.Text; var port = Convert.ToInt32(this.port.Text); var device = new VirtualDevice(mac, showSend, showRecv, onlineChange); var hbSwitch = heartbeat.Checked; var interval = 30; if (!String.IsNullOrEmpty(heartBeatInterval.Text)) { interval = Convert.ToInt32(heartBeatInterval.Text); } _client = new VirtualClient(ip, port, hbSwitch, interval, device); await _client.Start(); }
public override void Received(VirtualClient virtualClient) { Inventory inventory = virtualClient.GetInventory(Cell.WindowType); if (inventory != null) { List <ItemStat> itemStats = new List <ItemStat>(); for (int i = 0; i < StatBytes.Length; i = i + 3) { ItemStatType type = (ItemStatType)StatBytes[i]; Int16 value = BitConverter.ToInt16(StatBytes, i + 1); if (type != ItemStatType.None) { itemStats.Add(new ItemStat() { Type = type, Value = value }); } } inventory.UpdateItem(Cell.Cell, Count, itemStats); virtualClient.OnSlotChanged(Cell.WindowType, Cell.Cell, inventory.Slots[Cell.Cell]); } }
public override void Received(VirtualClient virtualClient) { virtualClient.currentPhase = this.Phase; if (this.Phase == Phase.AUTH) { Received_PhaseAuth(virtualClient); } else if (this.Phase == Phase.Login) { Received_PhaseLogin(virtualClient); } else if (this.Phase == Phase.Game) { Received_PhaseGame(virtualClient); } else if (this.Phase == Phase.SENTRY) { Received_PhaseSentry(virtualClient); } else if (this.Phase == Phase.Select) { Received_PhaseSelect(virtualClient); } }
/// <summary> /// A client data instance is required on the client implementing AsyncTCPLib.AsyncVirtualClient /// It interacts as controller for authentication and proxy transmission /// </summary> /// <param name="owner"></param> internal ClientData(VirtualClient owner) { this.Owner = owner; }
public override void Received(VirtualClient virtualClient) { UInt16 packetSize = (UInt16)(Size - Marshal.SizeOf <SLandListPacket>()); byte[] packetBytes = virtualClient.DequeueReceivedData(packetSize); }
public void ProcessAction(VirtualClient virtualClient) { }
public override void Received(VirtualClient virtualClient) { }
public override void Received(VirtualClient virtualClient) { CPongPacket packet = new CPongPacket(); virtualClient.SendPacket(packet); }
public ShopManager(VirtualClient virtualClient) { this.virtualClient = virtualClient; timeoutTimer.Elapsed += TimeoutTimer_Elapsed; timeoutTimer.AutoReset = false; }
public abstract void Received(VirtualClient virtualClient);
public override void Received(VirtualClient virtualClient) { virtualClient.LoginSuccessResult.Empire = this.Empire; }