Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Broken parsing of 4.x sniffs #262

Closed
ariel- opened this issue Aug 24, 2016 · 15 comments
Closed

Broken parsing of 4.x sniffs #262

ariel- opened this issue Aug 24, 2016 · 15 comments
Labels

Comments

@ariel-
Copy link
Contributor

ariel- commented Aug 24, 2016

Description: Some packets like SMSG_MOVE_UPDATE or SMSG_UPDATE_OBJECT are broken for cataclysm-era sniffs

Current behaviour: Random excerpt from a sniff:

ServerToClient: SMSG_UPDATE_OBJECT (0x4606) Length: 3533 ConnIdx: 2 Time: 12/30/2011 15:07:44.539 Number: 407345
Map: 631
Count: 18
[0] UpdateType: Values
[0] GUID: Full: *snip* Type: Player Low: xxxx Name: *hidden*
[0] UNIT_FIELD_TARGET: 
[0] UNIT_FIELD_TARGET + 1: 
[1] UpdateType: Values
[1] GUID: Full: *snip* Type: Player Low: xxxx Name: *hidden*
[1] UNIT_FIELD_POWER1: 427/5.983544E-43
[2] UpdateType: CreateObject1
[2] GUID: Full: 0xF113140D0000054E Type: GameObject Entry: 201741 Low: 1358
[2] Object Type: GameObject (5)
[2] Has GameObject Rotation: False
[2] Has AnimKits: False
[2] Has Attacking Target: False
[2] Self: False
[2] Has Vehicle Data: False
[2] Living: False
[2] Unknown array size: 2621440
[2] Has GameObject Position: False
[2] Has Stationary Position: False
[2] Transport: False
[2] [0] Unk UInt32: 1135578343
[2] [1] Unk UInt32: 1078676562
[2] [2] Unk UInt32: 1166890507
[2] [3] Unk UInt32: 1160582005
[2] [4] Unk UInt32: 1048736
[2] [5] Unk UInt32: 0
[2] [6] Unk UInt32: 193753857
[2] [7] Unk UInt32: 347648
[2] [8] Unk UInt32: 320081152
[2] [9] Unk UInt32: 8689
...
System.IO.EndOfStreamException
No se puede leer más allá del final de la secuencia.
   en System.IO.BinaryReader.FillBuffer(Int32 numBytes)
   en System.IO.BinaryReader.ReadUInt32()
   en WowPacketParser.Misc.Packet.ReadUInt32(String name, Object[] indexes) en D:\Wow extra\PacketParser\WowPacketParser\Misc\PacketReads.cs:línea 309
   en WowPacketParserModule.V4_3_4_15595.Parsers.UpdateHandler.ReadMovementUpdateBlock434(Packet packet, WowGuid guid, Object index) en D:\Wow extra\PacketParser\WowPacketParserModule.V4_3_4_15595\Parsers\UpdateHandler.cs:línea 266
   en WowPacketParserModule.V4_3_4_15595.Parsers.UpdateHandler.ReadCreateObjectBlock(Packet packet, WowGuid guid, UInt32 map, Object index) en D:\Wow extra\PacketParser\WowPacketParserModule.V4_3_4_15595\Parsers\UpdateHandler.cs:línea 64
   en WowPacketParserModule.V4_3_4_15595.Parsers.UpdateHandler.HandleUpdateObject(Packet packet) en D:\Wow extra\PacketParser\WowPacketParserModule.V4_3_4_15595\Parsers\UpdateHandler.cs:línea 49
   en WowPacketParser.Parsing.Handler.Parse(Packet packet, Boolean isMultiple) en D:\Wow extra\PacketParser\WowPacketParser\Parsing\Handler.cs:línea 145

Expected behaviour: The packets should parse correctly

Steps to reproduce the problem:

  1. Get a Cataclysm sniff (say 15050IcecrownCitadel.pkt, used in the example above)
  2. Parse it
  3. Open

36712db

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/37226405-broken-parsing-of-4-x-sniffs?utm_campaign=plugin&utm_content=tracker%2F457228&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F457228&utm_medium=issues&utm_source=github).
@Flameshot
Copy link

I have this error when trying to parse SQL file https://s17.postimg.org/rbkzwssfj/Capture.png

@DDuarte
Copy link
Contributor

DDuarte commented Aug 31, 2016

@Flameshot: No idea how your comment is related to this issue but I'll fix that shortly.

@Flameshot
Copy link

Flameshot commented Sep 1, 2016

@DDuarte sorry if i posted wrong here but i didn't want to make a new issue for my problem so I saw this issue related to 4.x sniffs and I posted the crash I have here. You can fix the error that i encounter or the issue?

@DDuarte
Copy link
Contributor

DDuarte commented Sep 1, 2016

@Flameshot: try after f6ff9a9

@Flameshot
Copy link

Flameshot commented Sep 1, 2016

@Aokromes
Copy link
Member

this bug is still valid?

@Keader
Copy link
Member

Keader commented Feb 22, 2017

Yes, i have issue on 14480Ulduar_AllExceptLast2.pkt file

ServerToClient: SMSG_UPDATE_OBJECT (0x72A7) Length: 1113 ConnIdx: 2 Time: 08/19/2011 15:52:17.851 Number: 102295
Map: 603
Count: 7
[0] UpdateType: DestroyObjects
[0] Object Count: 24
[0] [0] Object GUID: Full: 0xF15081BE000074AA Type: Vehicle Entry: 33214 (Mechanolift 304-A) Low: 29866
[0] [1] Object GUID: Full: 0xF13081C2000074AB Type: Creature Entry: 33218 (Pyrite Safety Container) Low: 29867
[0] [2] Object GUID: Full: 0xF1508548000077AD Type: Vehicle Entry: 34120 (Brann's Flying Machine) Low: 30637
[0] [3] Object GUID: Full: xx Type: Player Low: xx Name: xx
[0] [4] Object GUID: Full: 0xF13081A5000075D2 Type: Creature Entry: 33189 (Liquid Pyrite) Low: 30162
[0] [5] Object GUID: Full: 0xF13081A5000075D3 Type: Creature Entry: 33189 (Liquid Pyrite) Low: 30163
[0] [6] Object GUID: Full: 0xF15081BE000073A8 Type: Vehicle Entry: 33214 (Mechanolift 304-A) Low: 29608
[0] [7] Object GUID: Full: 0xF13081C2000073A9 Type: Creature Entry: 33218 (Pyrite Safety Container) Low: 29609
[0] [8] Object GUID: Full: 0xF15081BE0000747A Type: Vehicle Entry: 33214 (Mechanolift 304-A) Low: 29818
[0] [9] Object GUID: Full: 0xF13081C20000747B Type: Creature Entry: 33218 (Pyrite Safety Container) Low: 29819
[0] [10] Object GUID: Full: 0xF15081BE00007557 Type: Vehicle Entry: 33214 (Mechanolift 304-A) Low: 30039
[0] [11] Object GUID: Full: 0xF13081C200007558 Type: Creature Entry: 33218 (Pyrite Safety Container) Low: 30040
[0] [12] Object GUID: Full: 0xF15081BE000053C4 Type: Vehicle Entry: 33214 (Mechanolift 304-A) Low: 21444
[0] [13] Object GUID: Full: 0xF13081C2000053C5 Type: Creature Entry: 33218 (Pyrite Safety Container) Low: 21445
[0] [14] Object GUID: Full: 0xF15081BE000073F7 Type: Vehicle Entry: 33214 (Mechanolift 304-A) Low: 29687
[0] [15] Object GUID: Full: 0xF13081C2000073F8 Type: Creature Entry: 33218 (Pyrite Safety Container) Low: 29688
[0] [16] Object GUID: Full: 0xF15081BE000074C8 Type: Vehicle Entry: 33214 (Mechanolift 304-A) Low: 29896
[0] [17] Object GUID: Full: 0xF13081C2000074C9 Type: Creature Entry: 33218 (Pyrite Safety Container) Low: 29897
[0] [18] Object GUID: Full: 0xF15081BE00006CFE Type: Vehicle Entry: 33214 (Mechanolift 304-A) Low: 27902
[0] [19] Object GUID: Full: 0xF13081C200006CFF Type: Creature Entry: 33218 (Pyrite Safety Container) Low: 27903
[0] [20] Object GUID: Full: 0xF15081BE000053A0 Type: Vehicle Entry: 33214 (Mechanolift 304-A) Low: 21408
[0] [21] Object GUID: Full: 0xF13081C2000053A1 Type: Creature Entry: 33218 (Pyrite Safety Container) Low: 21409
[0] [22] Object GUID: Full: 0xF15081BE000052C2 Type: Vehicle Entry: 33214 (Mechanolift 304-A) Low: 21186
[0] [23] Object GUID: Full: 0xF13081C2000052C3 Type: Creature Entry: 33218 (Pyrite Safety Container) Low: 21187
[1] UpdateType: Values
[1] GUID: Full: xx Type: Player Low: xx Name: xx
[1] UNIT_FIELD_MOUNTDISPLAYID: 27244/3.817698E-41
[1] UNIT_NPC_EMOTESTATE: 0/0
[2] UpdateType: CreateObject1
[2] GUID: Full: 0xF13081BA000077D5 Type: Creature Entry: 33210 (Expedition Commander) Low: 30677
[2] Object Type: Unit (3)
[2] Update Flags: Living, StationaryObject (96)
[2] Movement Flags: None (0)
[2] Extra Movement Flags: None (0)
[2] Time: 30677
[2] Position: X: -8.740191E+29 Y: -4.188146E+21 Z: 585.6672
[2] Orientation: -104.4477
[2] Walk Speed: 391.6004
[2] Run Speed: 1.518436
[2] RunBack Speed: 2.5
[2] Swim Speed: 8
[2] SwimBack Speed: 4.5
[2] Turn Speed: 4.72222
[2] Fly Speed: 2.5
[2] FlyBack Speed: 7
[2] Pitch Speed: 4.5
System.IO.EndOfStreamException
Não é possível ler depois do fim do fluxo.
   em System.IO.MemoryStream.InternalReadInt32()
   em WowPacketParser.Parsing.Parsers.UpdateHandler.ReadValuesUpdateBlock(Packet packet, ObjectType type, Object index, Boolean isCreating) na C:\projects\wowpacketparser-191\WowPacketParser\Parsing\Parsers\UpdateHandler.cs:linha 142
   em WowPacketParser.Parsing.Parsers.UpdateHandler.ReadCreateObjectBlock(Packet packet, WowGuid guid, UInt32 map, Object index) na C:\projects\wowpacketparser-191\WowPacketParser\Parsing\Parsers\UpdateHandler.cs:linha 80
   em WowPacketParser.Parsing.Parsers.UpdateHandler.HandleUpdateObject(Packet packet) na C:\projects\wowpacketparser-191\WowPacketParser\Parsing\Parsers\UpdateHandler.cs:linha 62
   em WowPacketParser.Parsing.Handler.Parse(Packet packet, Boolean isMultiple) na C:\projects\wowpacketparser-191\WowPacketParser\Parsing\Handler.cs:linha 145


ServerToClient: MSG_MOVE_SET_RUN_SPEED (0x0B21) Length: 36 ConnIdx: 2 Time: 08/19/2011 15:52:17.851 Number: 102300
GUID: 0x0
Movement Flags: PendingBackward, SplineEnabled, Waterwalking (402784256)
Extra Movement Flags: InterpolateTurning, InterpolatePitching, Unknown10 (38912)
Time: 2577325476
Position: X: 6.358317E-32 Y: -1.210465E+08 Z: 9.611234E-38
Orientation: 7.7
Fall Time: 1085708437
Fall Velocity: -4.064427E+21
System.IO.EndOfStreamException
Não é possível ler depois do fim do fluxo.
   em System.IO.BinaryReader.FillBuffer(Int32 numBytes)
   em System.IO.BinaryReader.ReadSingle()
   em WowPacketParser.Misc.Packet.ReadSingle(String name, Object[] indexes) na C:\projects\wowpacketparser-191\WowPacketParser\Misc\PacketReads.cs:linha 288
   em WowPacketParser.Parsing.Handler.Parse(Packet packet, Boolean isMultiple) na C:\projects\wowpacketparser-191\WowPacketParser\Parsing\Handler.cs:linha 145

@DDuarte DDuarte added the bug label Feb 27, 2017
@gpn39f
Copy link

gpn39f commented Mar 19, 2017

i have a sniff from # Detected build: V5_4_8_18414
the opcode-headerline are parsed correct for all packets, but the content of each packet is broken. no packet is translated successful..
i guess two years ago, i have used wpp successful for translate this sniff

@DDuarte
Copy link
Contributor

DDuarte commented Mar 19, 2017

Upload the sniffs in our forum so that I can take a look.

@gpn39f
Copy link

gpn39f commented Mar 19, 2017

upload link in forum, in section adb/wdb/sniff
title: westfall sniff part1 548_18414

note: if i set my local git folder 7 month back in time, the wpp translate successful

@gpn39f
Copy link

gpn39f commented Jul 19, 2017

my initial clone of wpp was from 2014-2015
delete the old folder and clone new was the solution..
compare my backup with new clone: some older NuGet packages was not replaced..

@funjoker
Copy link
Member

MovmentInformation is read incorrectly

MovementHandler.cpp

Change this:

        public static MovementInfo ReadMovementInfo(Packet packet, WowGuid guid, object index = null)
        {
            if (ClientVersion.Build == ClientVersionBuild.V4_2_0_14333)
                return ReadMovementInfo420(packet, index);

            return ReadMovementInfoGen(packet, guid, index);
        }

to this:

        public static MovementInfo ReadMovementInfo(Packet packet, WowGuid guid, object index = null)
        {
            if (ClientVersion.AddedInVersion(ClientVersionBuild.V4_2_0_14333))
                return ReadMovementInfo420(packet, index);

            return ReadMovementInfoGen(packet, guid, index);
        }

@funjoker
Copy link
Member

This will solve 90% of you issues

@Ovahlord
Copy link
Contributor

Still broken for 4.3.2 sniffs.
Packet reference: 15211_2012-02-06_22-25-03_cata_heroics_and_misc.pkt
Reference unit: [4] GUID: Full: 0xF150BDBB00033D18 Type: Vehicle Entry: 48571 (Waterspout) Low: 212248

@funjoker
Copy link
Member

open new issue. PS: MOVE_UPDATE not fixed anywhere

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

8 participants