(http://imgur.com/a/0rs7sZl)
You must be registered to see links
How come all my opcodes values are so high?
Also why when I press stop sniffing and then start sniffing back again I don't get any data? (and I need to restart the game to recieve packets again)
Is there any fix for that?
May I ask what client region you're sniffing? These values are set for GMS2's client, so they might be in a different order if you're trying to sniff KMS2/CMS2/etc. Remember what I noted at the very beginning if your opcodes showed up incorrect: move around the encryption indexes in the crypto manager class.
EDIT: Lmao nevermind, Nexon is probably over here trying to battle us. It seems they changed the order yet again, I'm guessing a few days after this thread was made. I'll update the source code and the thread, but in the meantime here is the latest encryption indexes (GMS2 v101):
PHP:
public static readonly int
ENCRYPT_NONE = 0,
ENCRYPT_REARRANGE = 1,
ENCRYPT_XOR = 2,
ENCRYPT_TABLE = 3
;
In regards to stop/start sniffing, this is just how MapleShark works. The way it's setup is as if it's like its own self-client. It waits until a session is created/connected to a port within that range, and starts a sniffing session. Just like when you connect to the session yourself and the server sends to the client a handshake packet, MapleShark2 will receive that same packet as well. When MapleShark2 receives the initial handshake after it has created a sniff session, it initializes the crypto with the sequences that were contained in that handshake packet. Since those sequences have to constantly be in sync, you can't just resume sniffing because the sequences would be out of order. As far as I'm aware, there's no way around this, unless
Diamondo25 has any ideas. Instead of restarting the game though, a quick workaround is to start sniffing again and either change channels or go to character selection screen. Either way should resume sniffing without an entire client/game restart necessary.
Encryption probably a bit off. Try to shuffle encryption indexes. (or try to permanently fix it, they come from version number)
What exactly do you mean when you say they come from the version number? This is the function in GMS2 v100, which is the same as the previous client versions:
If you know of a different method to get these indexes, feel free to share; I'd love to know!
..or were you actually referring to where Nexon uses the version number to initialize their RNG seeds? Those are correctly calculated as well:
TableCrypter:
Code:
Rand32 rand32 = new Rand32((uint) Math.Pow(version, 2));
XORCrypter:
Code:
Rand32 rand1 = new Rand32(version);
Rand32 rand2 = new Rand32(2 * version);
Where both of these have their versions initialized from the pBuild (major version) provided in the MapleStream, which is constructed after receiving the initial handshake that contains said version.