Users browsing this thread: 2 Guest(s)
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Packet reading
04-29-2010, 03:54 AM, (This post was last modified: 04-29-2010, 04:17 AM by Parallax.)
#1
Packet reading
So I'd like to keep the other thread on track while I put this one in the right place. Here we were talking about packet reading and extraction. I've got a couple packets, and I wanted to know if I'm reading them right.

I was testing out syncing packets:
Mara C? X:169 Y:5 Z:24
Target: 02 04 01 00 35 01 06 81 51 00 00 00 00
Sync: 02 04 01 00 39 01 08 80 c8 ea 01 30 39 08 00

Zia X:771 Y:7 Z:-442
Target: 02 04 01 00 a1 01 06 81 51 00 00 00 00
Sync: 02 04 01 00 a6 01 08 80 c8 95 05 b0 0f 08 00

The red seems to be a packet header, followed by a counter. I hadn't played enough to see how many bits were used for counting (have it roll up into the next bit).

The green in the target packet is the same no matter what I'm targeting. Perhaps a target switch?

Finally, The bold bits only seem to change depending on what is double clicked, one door's will be slightly different to the one beside it. I can't decide whether it's coordinates or an item code/id because there doesn't seem to be any math to it.

I know they probably don't matter because they're client-side reality packets, I just wanted to see if I understood the syntax. Am I way off?
Packets Info Packet (updated 09/17/2011)
[Image: 5669514277_7e91c97fee.jpg]
Reply
04-29-2010, 06:42 AM,
#2
RE: Packet reading
it's an ID. coords go in a 3 pack, notably of either 12 or 24 hex values.

The id is probably the first 4 hex values on bold (i.e.: ea 01 30 39)

Header includes the next 2 hex values too, those being a counter of actions:

00 01
00 02
....
00 a1
...
00 a6
Reply
04-29-2010, 08:44 AM,
#3
RE: Packet reading
I was surfing Rajko's Packets, and found this one that may relate to Mara C. It seems to be the only packet with the ID above. Makes sense to me because it was titled "PacketsGotIntoLoadingAreaJackedIntoMaraCThenLeft". Is there anything at all we can get from looking at such a packet?

WORLD->Client [05:28:57 07/30/09] packet size: 728
PSS: 7f LocalSeq: 7 RemoteSeq: 11
02 03 01 00 0c 0c 00 a3 cd ab 29 9b 95 ff 2c 00 00 00 43 68 65 73 68 69 72 65 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 13 98 da d1 51 22 43 61 74 61 72 69 6e 61
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 85 cd cc 4c 40 ff fc d3
02 00 03 28 0a 0c 00 00 7a 44 00 00 08 00 ce 94 ff f7 00 bc 7f 00 00 27 ce 19 00 42 61 64 4b 69
69 74 79 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 d1
94 d0 40 00 00 00 00 00 f0 7e 40 00 00 00 20 d6 a1 a2 40 28 0a fd 04 02 00 00 19 00 75 54 07 00
f4 1a 01 00 a6 11 50 88 21 18 a3 48 22 8e 99 01 38 00 00 f7 00 fd 00 00 00 e0 a9 71 d0 40 00 00
00 00 00 f0 7e 40 00 00 00 00 3e 28 9e 40 94 ff 32 12 fb ff d7 30 46 12 b0 01 00 02 00 89 dc d3
2f 22 46 1d 7b 22 00 00 01 11 00 00 00 2f 00 49 00 00 01 00 08 d0 20 f1 01 30 39 c1 cd ab 08 fd
00 00 00 00 80 83 cf 40 00 00 00 00 00 f0 7e 40 00 00 00 00 00 cc aa 40 47 69 6c 6c 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 3a 00 3d 0b 00
58 00 00 03 00 00 00 00 00 f2 04 35 3f 00 00 00 00 f3 04 35 3f 47 00 00 01 00 08 b5 19 eb 01 30
39 6b cd ab 02 05 00 00 00 00 00 75 d0 40 00 00 00 00 00 d0 7b 40 00 00 00 00 00 cc a0 40 01 37
00 00 01 00 08 50 02 ea 01 30 39 da cd ab 01 01 00 00 00 00 00 9a d0 40 00 00 00 00 00 90 80 40
00 00 00 00 00 30 a1 40 35 00 00 00 00 04 01 00 0c 0a 16 80 bc 56 00 ca 00 00 77 b2 00 00 09 04
1d 00 00 00 00 00 00 00 00 16 80 bc 56 00 cb 00 00 77 b2 00 00 9d 00 1d 00 00 00 00 00 00 00 00
16 80 bc 56 00 cc 00 00 77 b2 00 00 b5 00 1d 00 00 00 00 00 00 00 00 16 80 bc 56 00 8f 00 00 31
b3 00 00 b4 00 21 00 00 00 01 00 00 00 00 16 80 bc 56 00 90 00 00 31 b3 00 00 09 04 21 00 00 00
01 00 00 00 00 16 80 bc 56 00 91 00 00 31 b3 00 00 e5 03 02 00 00 00 01 00 00 00 00 16 80 bc 56
00 92 00 00 31 b3 00 00 9d 00 21 00 00 00 01 00 00 00 00 16 80 bc 56 00 93 00 00 31 b3 00 00 06
04 02 00 00 00 01 00 00 00 00 16 80 bc 56 00 cd 00 00 31 b3 00 00 b4 00 21 00 00 00 00 00 00 00
00 16 80 bc 56 00 ce 00 00 31 b3 00 00 09 04 21 00 00 00 00 00 00 00 00
Packets Info Packet (updated 09/17/2011)
[Image: 5669514277_7e91c97fee.jpg]
Reply
04-30-2010, 01:54 PM, (This post was last modified: 04-30-2010, 03:47 PM by Parallax.)
#4
RE: Packet reading
Dunno if you guys need this or not (it seems simple to me, perhaps you've figured it out and are using it already), but I thought it may be more useful than teleporting through doors. I read through an opening door packet and sent it through to open a door. At least, the door (and frame) disappeared and I could walk into the room, if there was a room there.

where the bold is the id of the door you're targeting to open.

got into polyvinyl front door on the right with this:
02 03 01 00 08 a0 01 0a 00 20 4c e5 cd ab 03 84 00 00 00 00 f3 04 35 bf 00 00 00 00 f3 04 35 3f
41 00 00 00 00 80 a6 f0 c0 00 00 00 00 00 20 62 40 00 00 00 00 00 b3 d0 40 34 08 00 00 12 00 00
00 00

couldn't get the door to open from the inside using that packet or another I found labeled "opening from inside" using the interior door id.

one problem I noticed is that after I open one door, any other doors I try to open will not. I suspect this may be because I'm not sending a close packet. Though it could simply be that i'm breaking the game Big Grin
Packets Info Packet (updated 09/17/2011)
[Image: 5669514277_7e91c97fee.jpg]
Reply
04-30-2010, 08:43 PM,
#5
RE: Packet reading
umm keep doors away xD. We got some ideas and you need to modify more than the ID to open xD (coords, counters, animations...).

the format is "almost" known, i got it noted if i recall correctly Tongue.
Reply
04-30-2010, 10:03 PM,
#6
RE: Packet reading
The Doors packet consists of a "counter" which says "how many doors are open in the world" .means if you open a door successful and want to open the next door you have to increase bye "one" Smile

As morpheus said, keep doors away..from this we know the basic structure .

Second thing which i am me really asking, is how we could later realize this -.-. When you open a door , the response consist of :
- door id
- door animation coordination (which we dont know really, if you use a "template" packet..it teleports the door where the template is...ok then the door is open too *g* but you dont see it Smile)
- doors open
[Image: neofinal.png]
HD is now 100% Reality Code independent.
Now margin server packet analyse . Status 5/15.
Reply
04-30-2010, 10:12 PM,
#7
RE: Packet reading
In response to your doors open animation in coordinate...

If I recall Morpheus discovered that the door estimates where you open it from in the world. Thats why the packet teleports you to that location because there's a world coordinates location in the packet. We would need to identify that too.
Reply
04-30-2010, 10:47 PM,
#8
RE: Packet reading
better said "where door is opened". But like Val and neo said.
Reply
04-30-2010, 11:57 PM, (This post was last modified: 05-01-2010, 04:39 AM by Parallax.)
#9
RE: Packet reading
okay then. Just playing around. Information is power. Wink

So how else do I know where to look? It's not like all the packets are labeled, and so I don't really know what I'm looking at/for when I search for every instance of world->client.
Packets Info Packet (updated 09/17/2011)
[Image: 5669514277_7e91c97fee.jpg]
Reply
05-01-2010, 09:31 AM,
#10
RE: Packet reading
Thats the beauty... You need to test each and every individual packet by picking it out of the blocks. I will now post the data necessary:

For those Testing packets the header for each packet is: 02 04 01 <counter> 01

Counter starts 00 15 then continues in hex upwards!

*for reality version 2. Future releases may differ.

Standard structure for 04 packets:

* Single 04

- With one msgblock:

02 04 01 [counter] 01 [MsgBlock Length + data]

- with several msgblock:

02 04 01 [counter] [number of Msgblocks] [MsgBlock1 Length + data] [MsgBlock2 Length + data] ...


* 04 combination

-With one msgblock:

-02 04 01 [counter] 01 [MsgBlock Length + data] [counter+1] 01[MsgBlock2 Length + data]

- with several msgblock:

02 04 01 [counter] [number of Msgblocks] [MsgBlock1 Length + data] [MsgBlock2 Length + data] ... [counter+N] [number2 of Msgblocks] [MsgBlock3 Length + data] [MsgBlock4 Length + data] ...

*Counter increases in +X, depending on the X msgblocks sent before it. +2 if 2 msgblocks were sent and so on.

Standard structure for 04 Msgblocks

General structure:

Length Header Data

Example (buddy status):

2a 80 d7 08 00 3B 00 00 8e 25 00 53 4f 45 2b 4d 58 4f 2b 56 65 63 74 6f 72 2d 48 6f 73 74 69 6c 65 2b 65 6e 74 69 6c 73 61 72 00


* lenght is limited b definition to 255 decimal.
** length includes header bytes
*** header is always 2 bytes. If starting with 8x, the gamecode header is 8X YY - 80 00. In the example shown, "00 d7".

Information is thanks to Morpheus helping me compile it properly!
Reply


Forum Jump: