Jump to content

Forums

  1. Community Discussion Areas

    1. Introduce Yourself

      New here? Say hi and a little about yourself :)

      533
      posts
    2. 203
      posts
    3. Community Input

      Please give us your input on things we are working on here

      235
      posts
    4. 776
      posts
    5. MaNGOS University

      Want to learn, enrole at the university now !!

      205
      posts
  • Build Status

      CORE LINUX WINDOWS
      ZERO Mangos ZERO LINUX Buiild Status Mangos ZERO WINDOWS Buiild Status
      ONE Mangos ONE LINUX Build Status Mangos ONE WINDOWS Build Status
      TWO Mangos TWO LINUX Build Status Mangos TWO WINDOWS Build Status
      THREE Mangos THREE LINUX Build Status Mangos THREE WINDOWS Build Status

    Status images link to detailed build reports.

  • getMaNGOS Community Donations

    Our site costs £75/month to run, please consider contributing.

    Click here to learn more about what we use your donations for and a list of rewards.

    block_verified.png

    Paypal.png visa.png MasterCard.png amex.png Discover.png
    Accepted Payment Types

    0%
    0.00 GBP of 75.00 GBP Donate Now
  • getMaNGOS Discord

    Join Server
  • Blog Entries

  • Posts

    • Hello, Did you check big_endian & little_endian format ? Some more info there: https://github.com/Warkdev/JaNGOSRealm/blob/master/src/main/java/eu/jangos/realm/network/packet/server/character/SMSG_CHAR_ENUM.java#L178 Tal'
    • I'm trying to send SMSG_CHAR_ENUM packet (example below): 1. Character data data = pack( '<Q{name_len}s3B5BB2I3f2IB3IIBI'.format(name_len = len(name_bytes)), 1, # guid name_bytes, # 'Name' + '\x00' 4, # race 11, # class id 0, # gender 0, # skin 0, # face 0, # hair style 0, # hair color 0, # facial hair 61, # level 141, # zone id 1, # map id 10322.1, # x 825.436, # y 1326.37, # z 0, # guild 0, # char flags ? 0, # first login 0, # pet display id 0, # pet level 0, # pet family 0, # first bag inventory id 0, # first bag inventory type 0 # enchant ? ) 2. Full packet: packet = pack('<B', num_chars) + data But client returns 'Error retrieving character list'. What am I doing wrong ?
    • Wonderful, you find issue and root cause at the same time! 
    • Solved! The opcode is 55 (0x037) = CMSG_CHAR_ENUM. Answering own question: in client request (b'\x00\x047\x00\x00\x00\x18\xb7\xce\xa7/Y\xff\xff\xff\xff') the first 2 bytes = packet size, next 4 bytes = opcode, so 7\x00\x00\x00 is opcode here, which equals to 55 after translating into integer.
    • After success SMSG_AUTH_RESPONSE client sends packet, after decryption it equals to b'\x00\x047\x00\x00\x00\x18\xb7\xce\xa7/Y\xff\xff\xff\xff', What is the client packet structure ? First two bytes are opcode, aren't it ? But if so, I can't find this opcode in list. Maybe I'm doing something wrong ? This is my enc/decrypt code: def encrypt(self, data): assert len(data) >= HeaderCrypt.ENCRYPT_HEADER_SIZE encrypted_header = [0] * HeaderCrypt.ENCRYPT_HEADER_SIZE for index in range(HeaderCrypt.ENCRYPT_HEADER_SIZE): enc = (data[index] ^ self.crypt_key[self.send_i]) + self.send_j enc %= 0x100 encrypted_header[index] = self.send_j = enc self.send_i = (self.send_i + 1) % len(self.crypt_key) return bytes(encrypted_header) + data[HeaderCrypt.ENCRYPT_HEADER_SIZE:] def decrypt(self, data): assert len(data) >= HeaderCrypt.DECRYPT_HEADER_SIZE decrypted_header = [0] * HeaderCrypt.DECRYPT_HEADER_SIZE for index in range(self.DECRYPT_HEADER_SIZE): dec = (data[index] - self.recv_j) ^ self.crypt_key[self.recv_i] dec %= 0x100 decrypted_header[index] = dec self.recv_j = data[index] self.recv_i = (self.recv_i + 1) % len(self.crypt_key) return bytes(decrypted_header) + data[HeaderCrypt.DECRYPT_HEADER_SIZE:] Encryption works fine (because I can send SMSG_AUTH_RESPONSE and go to Character list loading), but I'm not sure about decryption. So, the question - what is the CMSG_* packets structure and what packet client send under 0x047 opcode after SMSG_AUTH_RESPONSE ?
  • Topics

  • Forum Statistics

    • Total Topics
      9,987
    • Total Posts
      78,169

Contact Us

To contact us click here
You can also email us at [email protected]

Privacy Policy | Terms & Conditions

Repositories

The Link to the master list
of MaNGOS repositories:
Copyright © getMaNGOS. All rights Reserved.

This website is in no way associated with or endorsed by Blizzard Entertainment®
×