![]() Packet headers are 4 bytes long, and are generated with the use of the send IV, packet length (without header) and the version of MapleStory. The Packet Encryption in MapleStory is a combination of AES and MapleStory's own encryption. The concept of bit fields is used primarily with buff stats. If the result of the operation is zero, the value was 0, else the value was 1. The mask is then bitwise and-ed to the bitfield in question. The mask in this example to check the corresponding bit would be 0x40 (0b01000000 in binary). To check if the second bit (shown in bold) has been set, the number can be masked to isolate that bit and checked if the value was set. For example, the number 0圆8 (0b0 1101000 in binary) contains 3 bits to be discovered as booleans set to true. To pull out bits from the number, masking is used. Private Severs will parse a portion of the packet as an unsigned integer, but the actual data consists of bits neighboring eachother. String - 2 bytes (denoting the length of the string) + length of the string in bytesĪdditionally, packets may also include a concept known as bit fields.Here is a list of the data types used in MapleStory packets. Each packet contains common methods for pulling out basic data types. The remaining data (if any), size and content, depend on the message type. These two bytes represent the message type / Operation Code. MapleStory's base protocol is a minimalist design only containing two bytes of overhead for every packet. After the first packet, every subsequent packet is encrypted. The first packet sent / received will always be in plain-text (not encrypted). MapleStory packets are performed though a TCP socket. ![]() 3.2 AES in MapleStory Global, after version 118.The corresponding number would be written into the packet:Īctions that are handled by packets on MapleStory are defined by an identifier called an Operation Code (opcode for short), which is the first 2 bytes of the packet (a short), though in earlier versions it used to be the first byte (a byte). Given the integer number shown in hexadecimal below: Because data types are represented in little endian, the logical ordering of bytes appears reversed in comparison to typical representation of hexadecimal. The packets in MapleStory are in Little Endian Format. ![]() Moreover, much work in the private server development field deals with handling packets correctly. Instead the server acts as a mediator between all MapleStory clients and selectively chooses and even modifies the information it receives by various clients to be send to clients that require the information. It is important to note that a MapleStory client never sends packets directly to another MapleStory client. Some examples of packets sent are player movement information, monster movement information, item placements and much more. The packets they send contain various information and data describing game play information. Both the MapleStory client and server use Network Packets, commonly referred to as Packets, to communicate between each other. ![]()
0 Comments
Leave a Reply. |