Protocol Obfuscation is a feature which causes eMule to obfuscate or
"hide" its protocol when communicating with other clients or servers.
Without obfuscation, each eMule communication has a given structure
which can be easily recognized and identified as an eMule packet by any
observer. If this feature is turned on, the whole eMule communication
appears like random data on the first look and an automatic
identification is no longer easily possible. This helps against
situations were the eMule Protocol is unjustly discriminated or even
completely blocked from a network by identifying its packets.
It is however important to note what Obfuscation is not intended to do:
It will not increase your anonymity, it will not make you "invisible"
in any way and it will also not protect you effective against
eavesdroppers. Also if your network admin has a good legal reason to
block eMule (for example a restricted company network), bypassing it
may cause you other unwanted consequences.
Obfuscation is currently available for ED2k TCP and UDP, Server TCP and
UDP and Kad TCP communication. Kad UDP packets are not yet
By default, each eMule client (>= 0.47b) supports obfuscated
connections to other clients, but doesn't actively requests them. If
your ISP is not discriminating the ED2K Protocol you do not need to
change anything and still help other users which may need obfuscation.
Otherwise your have the following options which can be found in the
Security Options page:
Enable Protocol Obfuscation:
If you think that eMule is throttled on your network, you should enable
this function. Whenever possible eMule will use obfuscated connections
and will ask other clients to do the same when connecting to your
client. When connecting to a server, eMule will try to establish an
obfuscated connection first and only if this fails choose a normal one.
There are in general no disadvantages by using this option, except
insignificant higher CPU usage and very few bytes more overhead, so you
can't really do anything wrong by enabling this setting.
Allow obfuscated connections only:
If you enable this option, eMule will only establish and accept
obfuscated connections. Clients which do not support obfuscations are
ignored, incoming plaintext connections rejected and the automatic
server connect will only allow obfuscated connections to a server. You
should only choose this setting if you know that the ED2K Protocol is
completely blocked on your network, otherwise you will loose sources
and therefore slow down your eMule. However if you know that eMule is
blocked, then enabling this option is recommended, because it saves
connection tries which are guaranteed to fail and therefore would waste
time, overhead and resources.
Disable support for obfuscated connections:
If for some reason you want to disable the whole obfuscation feature
completely you can choose this option. In general for most users there
is no reason nor advantage in doing this.
Protocol Obfuscation is pretty transparent for the user, so you most
likely won't see much of it. There are some indicators added however so
you know what your eMule is doing:
You can see if another client supports obfuscation by opening the
Client Details dialog and check the Obfuscation line. "Supported" means
that this client supports obfuscation, but it won't be used (for
example because you both choosed not to in your settings), while
"Enabled" means that the other client supports it and it will be used
when connecting to (or from) him.
Sometimes you will see a key symbol on the icon of a client as shown
above. This means that there exists an obfuscated connection to this
client at the moment. If there is no key, this doesn't mean he doesn't
support obfuscation - he might be just not connected to you at this
When you are connected to a server, the MyInfo box informs you, if you
use an obfuscated connection or not.