Packet Handling (Python 3.4)

Issue #2 resolved
Gustavo Aguiar created an issue

PyOT is receiving differents packet type for the same action, so it never know what handle to use.

For example, if you try to walk, sometime handleUseWith will be called, sometimes handleLogout.

Tried finding the root of the problem, and I went as far as gameserver.py@GameProtocol.onPacket

To debug I disabled handle call and only printed packet.data trying to figure out a pattern.

Packet type (base.py@BaseProtocol.handle) is seemingly random as well as packetData()

Comments (6)

  1. Gustavo Aguiar reporter

    Later today I'm going to look into otcrypto.decryptXTEA(packet.getData(), self.xtea) and onFirstPacket(self, packet)

  2. Gustavo Aguiar reporter

    When you try to say something in-game, packet.uint8() returns the first bit of what you tried to say.

  3. Gustavo Aguiar reporter

    service/gamserver.py@onPacket

    if you set packet.pos = 0, when you try to say something the first 2 bytes is the size of the text, always. Going back even further I didn't find anything interesting enough.

  4. Stian Andreassen

    Issue is related to non-CFFI crypto methods in otcrypto.py. This can be reproduced by disabling CFFI. (python3-cffi package on ubuntu).

    The bug has been addressed by r2271, 1a880864dfc3

  5. Log in to comment