PDA

View Full Version : seq changes for PoP (test server)



codepig666
10-18-2002, 11:39 PM
Since all 3 packets that libEQ cares about have been given new opcodes we're gonna need a new libEQ.a

I patched mine with a hexeditor, but it's still unable to decode. i just keeps tellin me what keys its checking =(

The 3 relevent opcodes to decryption as far as I can guess:
#define NewSpawnCode 0x4341
#define ZoneSpawnsCode 0x5f41
#define CharProfileCode 0x3640

The size of the NewSpawnStruct has changed also (or I made a really bad assumption =).

I think that I must be wrong about the NewSpawnCode opcode, but its the only packet that is close to the right size. But it looks like its not encrypted =(. There is nothing readable in it, but there is a strong pattern from packet to packet that I would not expect from encrypted data.

Anyone got a clue?

Mr. Suspicious
10-19-2002, 04:06 AM
Anyone got a clue?

Yes, this has been posted before aswell (just one post below this post): http://seq.sourceforge.net/showthread.php?s=&threadid=2047

codepig666
10-19-2002, 11:07 AM
Mr. S:

No mention in the post you linked about the NewSpawnCode. My list of changed opcodes is over 20 so far, but I'm not bothering to post it until it's complete. I was just trying ot deal with decryption in this thread.

My concern is with the encryption being changed and specifically if the opcode I posted is indeed the NewSpawnCode or not.

mvern
10-19-2002, 03:41 PM
Pretty sure 0x4341 is indeed the newspawn code. Since the patch I've seen seq get the key via brute force (checking 0x6000000, etc..), but decoded data was garbled, and the warnings seemed to indicate that the spawnstruct grew by 4 bytes. I've got a few of the opcode changes fixed here too, might be worth comparing notes to save some time.

adenine!
10-19-2002, 07:42 PM
Originally posted by codepig666
Since all 3 packets that libEQ cares about have been given new opcodes we're gonna need a new libEQ.a
...
The 3 relevent opcodes to decryption as far as I can guess:
#define NewSpawnCode 0x4341
#define ZoneSpawnsCode 0x5f41
#define CharProfileCode 0x3640

The last time it broke, libEQ.a was changed to include an initialization function to which those opcodes are passed.
decode.cpp line 73:

InitializeLibEQ(0, CharProfileCode, ZoneSpawnsCode, NewSpawnCode);

So all that has to be done is to change those codes in everquest.h and decryption should work if nothing else has changed.

codepig666
10-19-2002, 07:51 PM
ah. I was just replacing the defaults. My bad. I didn't even look at the initialize function.

adenine!
10-19-2002, 07:54 PM
Of course, if you've already changed them in everquest.h and recompiled decode.cpp, it's likely that something else has indeed changed since modifying the default values in libEQ.a wouldn't have changed anything unless libEQ.a is doing something really illogical with the new ones.

Jel321
10-20-2002, 10:35 AM
I have a question about the opcodes that have been posted so far that maybe you guys can answer. Hopefully the question will make sense.

I made the changes in the other post to opcodes.h and my map does load. Do those changes not control the player position marker and movement?

The map is nice and all but I was hoping to be able to show my own position and movement in the zone.

If those codes do not control that can you tell me what ones do?

If you don't wanna post the values that's fine, but the name of the opcodes would be cool for my own education.

Thanks for any information. I'd like to learn some more about this stuff :)

codepig666
10-20-2002, 11:41 AM
Jet:

touch decode.cpp and packet.cpp then recompile.

SEQ's makefile doesn't do header dependencies right so if you just change opcodes.h you aren't forcing a recompile of the 2 files that include it.

datadog
10-21-2002, 08:17 PM
Hmm,

Made the following changes in opcodes.h
#define ZoneEntryCode 0x2840
#define CharProfileCode 0x3640
#define NewZoneCode 0x5b40
#define ZoneSpawnsCode 0x5f41
#define MobUpdateCode 0x9f40
#define ZoneChangeCode 0xa340
#define CDoorSpawnsCode 0xf741
#define NewSpawnCode 0x4341
#define PlayerPosCode 0xf340

And touched decode.cpp and packet.cpp then recompiled.

Maps are working, player movement is ok, spawns are showing up but not decoding.

Is that basically where we are so far or am I missing something.

Here is the error message I got:

Still getting:
EQpacket::dispatchZoneData():CharProfileCode:Not Decoded
WARNING: ZoneEntryCode (2840) (datalen:358 != sizeof(ServerZoneEntryStuct):354) !

(NOTE: This was hand typed, so there could be a type, but I proofread it more than once, so im pretty sure its accurate.

Cryonic
10-21-2002, 09:15 PM
Size of the zone entry structure has apparently changed. Guess that needs to be changed also.

oakley
10-21-2002, 10:01 PM
I have changed all the opcodes, touch(ed) the files needed, but showeq still sits at the "Opcode Logging Mask: 0 0 0"
dosn't move from there, I have gone over it about 6 or 7 times making sure its correct and recompiling, is there something im missing here? Any help would be appreciated. thanks. :)


Oakley

Cryonic
10-21-2002, 10:05 PM
Did you have it working before the patch? If not, then this probably isn't your problem.

krimzon
10-21-2002, 10:19 PM
I updated all the OpCodes to get the partial fix.

How do I recompile so it works??

oakley
10-21-2002, 10:29 PM
yes it worked great before the encrytion change. I belive im smart enough to know that a perviously broken version of showeq wouldn't be what i want to use to try to make a fast fix, otherwise. The question still stands, anybody have any ideas what i should do from my previous post?