Hercules WPE Free - June 14th Patch

are you sure 2013-08-07 is supported? cu i just checked, wpe is useable even after setting packet obfuscation to 2.

please help!!!
Yes, the 2012-04 clients (and possibly a few others) have their keys chosen in such a way that makes the client effectively always use the same encryption key for each sent packet (thus allowing you to replay a packet as much as you want in WPE.)

You can either use a newer client, or edit the keys yourself in both client (you'll have to hex-edit it) and server (edit the appropriate packetKeys line for your PACKETVER in src/map/packets.h and recompile.)
The 2013-08-07 client falls into this category.
 
I'm going to play with this features soon. As far I see :

- only the map-server use this feature.

- nothing sent to the client to say "hey for now you need to switch to encryption" - bothersome...

- basic encryption in only the header of the packet and only from the packets sent from client (not from server).

Am I correct ?

 
Thank you
default_smile.png


 
what is the best client to use that can take advantage of this feature ?

I want to use a client that supports Rebellion Class as well and stable as much as possible

Any suggestions ... please

 
Last edited by a moderator:
The list of clients thats supported with this is:

20110817, 20110824, 20110831, 20110906, 20111005, 20111012, 20111021, 20111025, 20111102, 20111109, 20111122, 20111207, 20111214, 20111220, 20111228, 20120104, 20120111, 20120120, 20120202, 20120207, 20120214, 20120229, 20120307, 20120314, 20120321, 20120328, 20120404, 20120410, 20120418, 20120424, 20120509, 20120515, 20120525, 20120605, 20120612, 20120618, 20120702, 20120716, 20130320, 20130514, 20130522, 20130529, 20130605, 20130612, 20130618
 
what is the best client to use that can take advantage of this feature ?

I want to use a client that supports Rebellion Class as well and stable as much as possible

Any suggestions ... please
2013-12-23cRagexe

 
@Mysterious

 - thanks for the list

@evilpuncker

 - sounds good since I think it does have Rebellion, checking some guides and ready made client then

 
If guys search for a "not broken" client, check the list behind (each encryption tested 10 000 000 times), seems like Gravity doesn't even take time to find correct keys :

20110817 - PASSED
20110824 - FAILED x32
20110831 - PASSED
20110906 - PASSED
20111005 - FAILED x29
20111012 - FAILED x32
20111021 - PASSED
20111025 - PASSED
20111102 - FAILED x31
20111109 - FAILED x16
20111122 - FAILED x16
20111207 - FAILED x31
20111214 - FAILED x32
20111220 - FAILED x16
20111228 - FAILED x7
20120104 - PASSED
20120111 - PASSED
20120120 - PASSED
20120202 - PASSED
20120207 - PASSED
20120214 - FAILED x31
20120229 - PASSED
20120307 - FAILED x31
20120314 - PASSED
20120321 - PASSED
20120328 - FAILED x32
20120404 - PASSED
20120410 - FAILED x32
20120418 - FAILED x15
20120424 - FAILED x11
20120509 - PASSED
20120515 - PASSED
20120525 - FAILED x16
20120605 - PASSED
20120612 - FAILED x14
20120618 - PASSED
20120702 - PASSED
20120716 - PASSED
20130320 - FAILED x32
20130514 - PASSED
20130522 - PASSED
20130529 - FAILED x30
20130605 - PASSED
20130612 - PASSED
20130618 - PASSED
20130626 - FAILED x11
20130703 - FAILED x32
20130807 - FAILED x4
20131218 - FAILED x31
20131223 - FAILED x14
20131230 - PASSED
 
If guys search for a "not broken" client, check the list behind (each encryption tested 10 000 000 times), seems like Gravity doesn't even take time to find correct keys :

20110817 - PASSED
20110824 - FAILED x32
20110831 - PASSED
20110906 - PASSED
20111005 - FAILED x29
20111012 - FAILED x32
20111021 - PASSED
20111025 - PASSED
20111102 - FAILED x31
20111109 - FAILED x16
20111122 - FAILED x16
20111207 - FAILED x31
20111214 - FAILED x32
20111220 - FAILED x16
20111228 - FAILED x7
20120104 - PASSED
20120111 - PASSED
20120120 - PASSED
20120202 - PASSED
20120207 - PASSED
20120214 - FAILED x31
20120229 - PASSED
20120307 - FAILED x31
20120314 - PASSED
20120321 - PASSED
20120328 - FAILED x32
20120404 - PASSED
20120410 - FAILED x32
20120418 - FAILED x15
20120424 - FAILED x11
20120509 - PASSED
20120515 - PASSED
20120525 - FAILED x16
20120605 - PASSED
20120612 - FAILED x14
20120618 - PASSED
20120702 - PASSED
20120716 - PASSED
20130320 - FAILED x32
20130514 - PASSED
20130522 - PASSED
20130529 - FAILED x30
20130605 - PASSED
20130612 - PASSED
20130618 - PASSED
20130626 - FAILED x11
20130703 - FAILED x32
20130807 - FAILED x4
20131218 - FAILED x31
20131223 - FAILED x14
20131230 - PASSED
so this one >>> 20131223 - FAILED x14  <<< cannot use this anti wpe feature ?

does rPE and wPE works the same though ?

 
so this one >>> 20131223 - FAILED x14  <<< cannot use this anti wpe feature ?

does rPE and wPE works the same though ?
It's working for the 14 first packet received from the client, after the encryption will not be update and it's possible to use WPE/RPE.

And yeah WPE/RPE are the same (talking about this update).

 
so this one >>> 20131223 - FAILED x14  <<< cannot use this anti wpe feature ?

does rPE and wPE works the same though ?
It's working for the 14 first packet received from the client, after the encryption will not be update and it's possible to use WPE/RPE.

And yeah WPE/RPE are the same (talking about this update).
oh my ... that breaks my heart ... only way to fix this is to go to 20131230 ?

 
[FONT=comic sans ms']Do you mind if you make a complete guide of that? Because there isnt a lot of information. I tried to do it but I had to give up because of the same.[/FONT]
If you're using NEMO v.2.0 or newer, it's pretty easy to do it when hexing your client. Just enable the three "Packet __ Key Encryption" patches, and input the desired values.

Then edit your src/map/packets.h, adding a line like this near the end of your file (replacing FIRSTKEY, SECONDKEY and THIRDKEY as appropriate):

Code:
// Add me before the '#endif /* _MAP_PACKETS_H */' linepacketKeys(0xFIRSTKEY,0xSECONDKEY,0xTHIRDKEY);
Altermatively, if you don't want to edit source files, and you're compiling through ./configure and make, you can use the following (again, replace with your actual keys):
Code:
./configure --with-key1=0xFIRSTKEY --with-key2=0xSECONDKEY --with-key3=0xTHIRDKEY
 
Do you mind if you make a complete guide of that? Because there isnt a lot of information. I tried to do it but I had to give up because of the same.
If you're using NEMO v.2.0 or newer, it's pretty easy to do it when hexing your client. Just enable the three "Packet __ Key Encryption" patches, and input the desired values.

Then edit your src/map/packets.h, adding a line like this near the end of your file (replacing FIRSTKEY, SECONDKEY and THIRDKEY as appropriate):

// Add me before the '#endif /* _MAP_PACKETS_H */' linepacketKeys(0xFIRSTKEY,0xSECONDKEY,0xTHIRDKEY);Altermatively, if you don't want to edit source files, and you're compiling through ./configure and make, you can use the following (again, replace with your actual keys):
Code:
./configure --with-key1=0xFIRSTKEY --with-key2=0xSECONDKEY --with-key3=0xTHIRDKEY
I see, my doubts are:  what keys do I have to put in?  Do I have to make up those keys?  Do I have to use three different ones?

 
[FONT=comic sans ms']I see, my doubts are:  what keys do I have to put in?  Do I have to make up those keys?  Do I have to use three different ones?[/FONT]
what keys do I have to put in?
If you don't want to make them up, you can use the keys from any working client (you can find them in src/map/packets.h). Refer to the list posted by KeyWorld to know which ones can be safely used.

Do I have to make up those keys?

Possibly not. Generate your own keys only if (1) you know exactly how the algorithm works; (2) you are not Gravity; (3) you know how to generate strong keys.

I do not have any recommendations, as I don't have an algorithm to generate strong keys. I'm only able to recognize some classes of weak keys, but some keys I consider strong, may have other weaknesses. Just use keys from other client versions, since both I and KeyWorld have tested them with over 10 million iterations.

Do I have to use three different ones?

This is not strictly necessary.

 
Back
Top