{'fraction_non_alphanumeric': 0.0273109243697479, 'fraction_numerical': 0.0063025210084033615, 'mean_word_length': 5.108974358974359, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Reverse Engineering of eMule

eMule is a popular peer-to-peer (p2p) client which builds upon the severbased eDonkey2000 (ed2k) platform. In newer versions of eMule, lookups can also be performed over the serverless Kad-network, an implementation of a distributed hash table (DHT) called Kademlia. Since only little is known about the techniques and algorithms used by eMule, this thesis presents an analysis of the implementation of Kademlia in eMule. This includes the structure of the routing table, the connection phase with bootstrapping, searching and publishing in Kademlia, the behavior of the client if network address translation (NAT) or a firewall is used and an analysis of all message types used in Kademlia. The algorithms found are compared to the version described in the Kademlia paper. Additionally, a successful attack is presented, that removes an arbitrary keyword from the Kademlia network, using a modified version of the client.