Packet reversing findings menu

User Tag List

Page 2 of 2 FirstFirst 12
Results 16 to 30 of 30
  1. #16
    namreeb's Avatar Legendary

    Reputation
    668
    Join Date
    Sep 2008
    Posts
    1,029
    Thanks G/R
    8/222
    Trade Feedback
    0 (0%)
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by lanman92 View Post
    Any help with what's wrong with this code? I don't think many other ppl can provide light on this. I keep getting a null pointer(0x0000 referencing 0x00000).

    dbgout << packet.m_buffer << std::endl;

    Should the packet be a pointer...?
    Yes it should, assuming you're using CDataStore, which is basically just a pretty wrapper for a vector.

    Packet reversing findings
  2. #17
    lanman92's Avatar Active Member
    Reputation
    50
    Join Date
    Mar 2007
    Posts
    1,033
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    yeahhhh, I decided just to go all-out on inline asm for this xD I just find it easier =/ not sure why, but C++ is just ugly to me. I think it's the ide...

  3. #18
    namreeb's Avatar Legendary

    Reputation
    668
    Join Date
    Sep 2008
    Posts
    1,029
    Thanks G/R
    8/222
    Trade Feedback
    0 (0%)
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)
    yuck......

  4. #19
    lanman92's Avatar Active Member
    Reputation
    50
    Join Date
    Mar 2007
    Posts
    1,033
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Haha, it's just preference Hard-coded offsets are ugly, but I like it better. It's just how my head works I guess.

  5. #20
    namreeb's Avatar Legendary

    Reputation
    668
    Join Date
    Sep 2008
    Posts
    1,029
    Thanks G/R
    8/222
    Trade Feedback
    0 (0%)
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)
    Do you have any insights on what the 'a2' argument to LoadMovePacket is? or 'a5' and 'a6' even?

  6. #21
    lanman92's Avatar Active Member
    Reputation
    50
    Join Date
    Mar 2007
    Posts
    1,033
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Tbh, I haven't looked at that function yet. My guess is it might be current location/rot/etc. Just a guess. Not sure. I'll look at it. I'm having issues reading the opcodes of each packet right now =/ movzx...sigh...

  7. #22
    namreeb's Avatar Legendary

    Reputation
    668
    Join Date
    Sep 2008
    Posts
    1,029
    Thanks G/R
    8/222
    Trade Feedback
    0 (0%)
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)
    I don't see how you can possibly be sending packets without answering these questions. Am I missing something?

  8. #23
    lanman92's Avatar Active Member
    Reputation
    50
    Join Date
    Mar 2007
    Posts
    1,033
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I'm not sending packets yet :P Why are you hovering around that function? The lua movement functions all use 'formpacket' and the offset that I'm using(0x5F92F0). Just look at [[arg0 + 0x4] + 0] and you can then check if the opcode is >= movement_opcodes_low and <= movement_opcodes_high. That's how I'm going to do it.
    Last edited by lanman92; 06-07-2009 at 02:24 AM.

  9. #24
    lanman92's Avatar Active Member
    Reputation
    50
    Join Date
    Mar 2007
    Posts
    1,033
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Here's an example dump of an unencrypted jump packet going into the forementioned function :P

    BB 00 00 00 00 10 00 00 00 00 E4 D3 9D 0C 9F 8C
    E6 44 11 BD CB 44 17 DE C1 42 6E 1E A7 40 00 00
    00 00 D8 93 FE C0 04 FB F9 3E C4 69 5F BF 00 00

    Compared to the structure listed by MangOS(well, not a structure...but u get it...)
    recv_data >> MovementFlags;
    recv_data >> movementInfo.unk1;
    recv_data >> movementInfo.time;
    recv_data >> movementInfo.x;
    recv_data >> movementInfo.y;
    recv_data >> movementInfo.z;
    recv_data >> movementInfo.o;
    Last edited by lanman92; 06-07-2009 at 02:34 AM.

  10. #25
    namreeb's Avatar Legendary

    Reputation
    668
    Join Date
    Sep 2008
    Posts
    1,029
    Thanks G/R
    8/222
    Trade Feedback
    0 (0%)
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)
    I must be completely lost. What you're saying makes no sense to me.

  11. #26
    lanman92's Avatar Active Member
    Reputation
    50
    Join Date
    Mar 2007
    Posts
    1,033
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Look at the opcode of that dump, the first byte. Then the next 5 bytes is size, 0x10. Now, there's 4 bytes of unk. Still part of the header I believe though. Haven't really looked into it. Then there's the good stuff. The X, Y, Z, orientation, and movement flags. I may have dumped a bit much there.

    EDIT: I just realized that the clients may be sending as big-endian data. I was unsure why the 0xBB is the first byte, when it should be in the second if it was little-endian.

  12. #27
    BoogieManTM's Avatar Active Member
    Reputation
    52
    Join Date
    May 2008
    Posts
    193
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by lanman92 View Post

    EDIT: I just realized that the clients may be sending as big-endian data. I was unsure why the 0xBB is the first byte, when it should be in the second if it was little-endian.
    network byte = big endian. the TCP/IP standard is to send all numeric values in network byte/big endian order.

  13. #28
    Apoc's Avatar Angry Penguin
    Reputation
    1388
    Join Date
    Jan 2008
    Posts
    2,750
    Thanks G/R
    0/13
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    System.Net.IPAddress.HostToNetworkOrder() does some neat stuff. Though, you're better off just plain breaking it down to bytes, then reversing it.

    public byte[] GetReverseOrder(int val)
    {
    byte[] ret = BitConverter.ToBytes(val);
    Array.Reverse(ret);
    return ret;
    }

  14. #29
    amadmonk's Avatar Active Member
    Reputation
    124
    Join Date
    Apr 2008
    Posts
    772
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Apoc View Post
    ...BitConverter.ToBytes(val);...
    Arg, arg, arg. Why do I always forget about the BitConverter class? Grr, I ended up rewriting 90% of its functionality...
    Don't believe everything you think.

  15. #30
    Apoc's Avatar Angry Penguin
    Reputation
    1388
    Join Date
    Jan 2008
    Posts
    2,750
    Thanks G/R
    0/13
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I oopsed with my post.

    It's actually BitConverter.GetBytes not ToBytes.

Page 2 of 2 FirstFirst 12

Similar Threads

  1. Once again (where to find packet parse function for wsarecv call)
    By Esoserv2 in forum Elder Scrolls Online General
    Replies: 3
    Last Post: 03-01-2014, 05:44 PM
  2. Stuck with packet structure reversing
    By ZealX in forum WoW Memory Editing
    Replies: 7
    Last Post: 11-29-2013, 06:32 AM
  3. [STUPID QUESTION] How to find stuff while reversing.
    By cenron in forum Diablo 3 Memory Editing
    Replies: 4
    Last Post: 08-23-2012, 08:10 AM
  4. Where could i find the best/stable ascent reversion for me ?
    By Wheeze201 in forum World of Warcraft Emulator Servers
    Replies: 14
    Last Post: 01-27-2008, 08:48 PM
  5. [Exploit] Find out if an opposite faction player is online
    By Matt in forum World of Warcraft Exploits
    Replies: 7
    Last Post: 11-04-2006, 09:22 AM
All times are GMT -5. The time now is 05:08 AM. Powered by vBulletin® Version 4.2.3
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Google Authenticator verification provided by Two-Factor Authentication (Free) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search