Read the advice first...
*****************UPDATED 12/11/2011*********************************
**** ADDED VB6 PROXY BOT SOURCE-CODE, WORKING EXAMPLE OF PROXY BOT******
************************************************** ****************
The following CONSTANTS have been flagged, this means they appear in EVERY Packet exchange from client to server and server to client
Red = Packet Id - Each packet has a unique ID number, in this case AA02, Each Packet id Relates to a specific function, in this example the function is a reply to the server.
Green = Player Id - Each packet contains a unique player ID, this ID allows the server to know which Packet is from which user.
Blue = Timestamp - Each packet contains a Time stamp, this allows the server to make sure that a Packet hasnt taken to long to reach the server, If a packet is sent to server with a Timestamp older than allowed by the server the packet is refused and the player is disconnected... (* Obviouslly as ive stated before you CAN tell the server a Timestamp for a time, say,, tommorow instead of today, and the server WILL Accept the timestamp as its not considered "Old Until the time has elapsed *)
Magenta = Padding - Each Packet function has a set lenth, and a starting point in the packet, if the information in the function is smaller than the allocated size allowed for that function then the additional "Empty" bytes are filled with "Padding" values.... so that the timestamp which should start at byte 26 in this example would indeed start, at byte 26 (* Writtin in code as (4, 26), where 4 is the amount of bytes that function takes in the packet, and 26 being the start of that function *) This doesnt mean the timestamp is allways at byte 26, just that in this example packet that is the case. (* This is predetermined by the Struct of this particular Packet ID, if the Packet ID was say for the Login packet, the Timestamp and padding would be diffrent *)
****Edit** Added Packet Lenth so PunkS7le doesnt cry :'( Seeing as its absence was the only possibly "Inaccuracy" in this post :facepalm:... So... "PacketLenth"... obvious really so I wont even bother to explain it!.
(* For the benefit of other "L33t" coders attempting to flame/discredit with comments of "My packets Iz R Not look lik dem".... probably not... Its common practice to put a space between each Hex Value to make it easier for beginners to understand... this isnt for you so please P-ss of and leave the learners to learning, Also, all values and the Packet above are used purely in example...*)
The way the Packet is formed for different functions is called a "Struct", Each unique Packet ID will correlate to a different Struct format.... for example, a Login Packet containing the Username and password will have the Username and password in the packet at set places, the Packet ID would let the server know that its a "Login" packet and would therefore know to read the packet in the fashion matching with its matching Struct.
The packet is in a Hex format, Timestamp at the end must correlate to a correct time... 01 4E 0C D1 for say 15.24pm and 21 seconds, 01 4E 0C D2 would be for 22 seconds, 01 4F 01 D1 would be for 16.31pm and 21 seconds... simple!
==== Note The packets are encrypted as standard and you will not be able to just "Send" a packet, it will require encrypting to the same format using the same key as Cabal ====
In the standard environment all Data from Server to client and client to server goes as follows
A Proxy changes this exchange to
1) This means that ALL Traffic between the server and the client travels THROUGH the proxy.
2) A Proxy doesnt magically know what to do with each packet, unless its been told to deal with a packet in a specific way (* Such as "Traffic" packets which should be sent straight to client *)
3) Just cause you know theres packets there, unless you know how there encrypted you wont be able to touch them. In this isntance a working Proxy needs to be able to do the following
And obviouslly the other way round, I.e. Client>Server exchanges
4) The Proxy will not know how to Form "New" Packets, If you wish to send a new packet you will have to know the Struct for the packet function you wish to create
================================================== ===========ADDED VB6 Proxy-Bot Source-Code. REQUIRES VB6 TO BE INSTALLED= ================================================== =======
Quote:
Anyone PMing requesting a Proxy will be added to my block list, No Exceptions! (* Yes this does mean YOU *)
*****************UPDATED 12/11/2011*********************************
**** ADDED VB6 PROXY BOT SOURCE-CODE, WORKING EXAMPLE OF PROXY BOT******
************************************************** ****************
The following CONSTANTS have been flagged, this means they appear in EVERY Packet exchange from client to server and server to client
Red = Packet Id - Each packet has a unique ID number, in this case AA02, Each Packet id Relates to a specific function, in this example the function is a reply to the server.
Green = Player Id - Each packet contains a unique player ID, this ID allows the server to know which Packet is from which user.
Blue = Timestamp - Each packet contains a Time stamp, this allows the server to make sure that a Packet hasnt taken to long to reach the server, If a packet is sent to server with a Timestamp older than allowed by the server the packet is refused and the player is disconnected... (* Obviouslly as ive stated before you CAN tell the server a Timestamp for a time, say,, tommorow instead of today, and the server WILL Accept the timestamp as its not considered "Old Until the time has elapsed *)
Magenta = Padding - Each Packet function has a set lenth, and a starting point in the packet, if the information in the function is smaller than the allocated size allowed for that function then the additional "Empty" bytes are filled with "Padding" values.... so that the timestamp which should start at byte 26 in this example would indeed start, at byte 26 (* Writtin in code as (4, 26), where 4 is the amount of bytes that function takes in the packet, and 26 being the start of that function *) This doesnt mean the timestamp is allways at byte 26, just that in this example packet that is the case. (* This is predetermined by the Struct of this particular Packet ID, if the Packet ID was say for the Login packet, the Timestamp and padding would be diffrent *)
****Edit** Added Packet Lenth so PunkS7le doesnt cry :'( Seeing as its absence was the only possibly "Inaccuracy" in this post :facepalm:... So... "PacketLenth"... obvious really so I wont even bother to explain it!.
Code:
[COLOR="SandyBrown"]12 A1[/COLOR] [COLOR="Red"]AA 02 [/COLOR]E3 37[COLOR="SeaGreen"] B4 01 A0 D9[/COLOR] 22 [COLOR="Magenta"] 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 [/COLOR][COLOR="Blue"]01 4E 0C D1 [/COLOR]
(* For the benefit of other "L33t" coders attempting to flame/discredit with comments of "My packets Iz R Not look lik dem".... probably not... Its common practice to put a space between each Hex Value to make it easier for beginners to understand... this isnt for you so please P-ss of and leave the learners to learning, Also, all values and the Packet above are used purely in example...*)
The way the Packet is formed for different functions is called a "Struct", Each unique Packet ID will correlate to a different Struct format.... for example, a Login Packet containing the Username and password will have the Username and password in the packet at set places, the Packet ID would let the server know that its a "Login" packet and would therefore know to read the packet in the fashion matching with its matching Struct.
The packet is in a Hex format, Timestamp at the end must correlate to a correct time... 01 4E 0C D1 for say 15.24pm and 21 seconds, 01 4E 0C D2 would be for 22 seconds, 01 4F 01 D1 would be for 16.31pm and 21 seconds... simple!
==== Note The packets are encrypted as standard and you will not be able to just "Send" a packet, it will require encrypting to the same format using the same key as Cabal ====
Basics of a Proxy, how it works, and what it does:Quote:
================================================== ==================
====FOR ALL NEWBIES, A PROXY IS A TOOL NOT A "PROXY SERVER" TO HIDE YOUR IP, IT IS REQUIRED IF YOU WISH TO ALTER PACKETS, IF YOU DONT HAVE ONE, YOU CANNOT ALTER PACKETS! ANYONE CLAIMING OTHERWISE SHOULD BE OPENLY MOCKED FOR THERE STUPIDITY!!!! YES THIS DOES MEAN WPE WILL NOT SUFFICE AS A "PROXY" AS IT DOESNT HAVE ENCRYPTION HANDLING AND ANYONE WHO SUGGESTS USING IT SHOULD BE REPORTED FOR ENDANGERING YOUR INGAME ACCOUNT BECAUSE WPE WILL GET YOU BANNED IF YOU TRY USING IT! AND BEFORE ANYONE SUGGESTS IT, NO YOU CANNOT ALTER PACKETS WITH CHEATENGINE FOR GODS SAKE!!!!!!!!=======
In the standard environment all Data from Server to client and client to server goes as follows
Code:
Client>Server Server>Client
Code:
Client>Proxy>Server Server>Proxy>Client
2) A Proxy doesnt magically know what to do with each packet, unless its been told to deal with a packet in a specific way (* Such as "Traffic" packets which should be sent straight to client *)
3) Just cause you know theres packets there, unless you know how there encrypted you wont be able to touch them. In this isntance a working Proxy needs to be able to do the following
Code:
Recieve Server>Client Packet - De-Encrypt packet - Make Packet Alterations - Re-Encrypt packet - Send Server>Client Packet to Client
4) The Proxy will not know how to Form "New" Packets, If you wish to send a new packet you will have to know the Struct for the packet function you wish to create
================================================== ===========ADDED VB6 Proxy-Bot Source-Code. REQUIRES VB6 TO BE INSTALLED= ================================================== =======