void _server_ClientConnectCallback(eSocket.Server.eSockClient c) { ConnectedClientsCount += 1; SetConnectedClients(ConnectedClientsCount); ConnectedClients.Add(c); if (isCracking) { SendClientBlock(c); } }
public void SendClientBlock(eSocket.Server.eSockClient client) { if (HashBlock.Count == 0) { client.Send(new Packet.MD5FirstBlock(hash, HashCharset)); HashBlock.AddRange(new int[] { 0, 0, 0 }); SetCurrentBlockText("???"); BlocksSent += 1; SetBlocksStatus(); return; } StringBuilder sBlock = new StringBuilder(); foreach (int i in HashBlock) { if (i > HashCharset.Length - 1) { continue; } sBlock.Append(HashCharset[i]); } client.Send(new Packet.MD5Crack(hash, sBlock.ToString(), HashCharset)); BlocksSent += 1; SetBlocksStatus(); HashBlock[0] += 1; for (int i = 0; i < HashBlock.Count; i++) { if (HashBlock[i] == HashCharset.Length) { if (i == HashBlock.Count) { HashBlock[i] = 0; HashBlock.Add(0); } else { HashBlock[i + 1] += 1; HashBlock[i] = 0; } } } sBlock = new StringBuilder(); foreach (int i in HashBlock) { if (i > HashCharset.Length) { continue; } sBlock.Append(HashCharset[i]); } SetCurrentBlockText("???" + sBlock.ToString()); }
void _server_ClientDisconnectCallback(eSocket.Server.eSockClient c, System.Net.Sockets.SocketError SE) { List <eSocket.Server.eSockClient> newList = new List <eSocket.Server.eSockClient>(); foreach (eSocket.Server.eSockClient cl in ConnectedClients) { if (!cl.NetworkSocket.Equals(c.NetworkSocket)) { newList.Add(cl); } } ConnectedClients = newList; ConnectedClientsCount -= 1; SetConnectedClients(ConnectedClientsCount); }
void _server_DataRetrievedCallback(eSocket.Server.eSockClient c, eSocket.PacketStructure packet, eSocket.Server.PacketError er) { try { if (!isCracking) { throw new Exception("Not cracking"); } if (er == eSocket.Server.PacketError.SizeIncorrect) { throw new Exception("Packet size is incorrect"); } Blocksrecieved += 1; SetBlocksStatus(); if (packet.Type == (ushort)Packet.PacketType.MD5Cracked) { Packet.MD5Cracked cracked = new Packet.MD5Cracked(packet.PacketBuffer); if (HashMatch(cracked.Output, hash)) { StopCracking(); SetHashOutput(cracked.Output); } else { SendClientBlock(c); } } else { SendClientBlock(c); } } catch (Exception ex) { //MessageBox.Show(ex.Message); } }