[WoW] [7.0.3.22289] Release Info Dump Thread menu

User Tag List

Page 2 of 2 FirstFirst 12
Results 16 to 18 of 18
  1. #16
    Frosttall's Avatar Active Member
    Reputation
    64
    Join Date
    Feb 2011
    Posts
    261
    Thanks G/R
    16/3
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Torpedoes View Post
    While we're on this topic, do you guys have any tricks for finding inner offsets?

    You can find global offsets using signature scans and you can find Lua Functions and Descriptors by dumping the table. But how about things like unit positions, angles, etc.
    Well pretty much same way you're finding global offsets. You look where they are used and create a pattern in exactly the same way. If you got the part of a function which accesses the X, Y and Z of a unit, the structure of the code in that part won't really change even though the data structure itself changes.

    You could also go more advanced if you add LeaModifiers (load effective address) in case the function accessing the offset you're looking for is too general and triggers too many hits with the signatur scan. In that case just find a significant (in term of signature) method calling the function and work down from there - basically a signature scan with two layers.

    [WoW] [7.0.3.22289] Release Info Dump Thread
  2. Thanks Torpedoes (1 members gave Thanks to Frosttall for this useful post)
  3. #17
    -Ryuk-'s Avatar Elite User CoreCoins Purchaser Authenticator enabled
    Reputation
    529
    Join Date
    Nov 2009
    Posts
    1,028
    Thanks G/R
    38/51
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Frosttall View Post
    Well pretty much same way you're finding global offsets. You look where they are used and create a pattern in exactly the same way. If you got the part of a function which accesses the X, Y and Z of a unit, the structure of the code in that part won't really change even though the data structure itself changes.

    You could also go more advanced if you add LeaModifiers (load effective address) in case the function accessing the offset you're looking for is too general and triggers too many hits with the signatur scan. In that case just find a significant (in term of signature) method calling the function and work down from there - basically a signature scan with two layers.
    Spot on, this is the way me and team do it, so simple and very effective.
    |Leacher:11/2009|Donor:02/2010|Established Member:09/2010|Contributor:09/2010|Elite:08/2013|

  4. #18
    reliasn's Avatar Legendary Authenticator enabled
    Reputation
    774
    Join Date
    Jan 2009
    Posts
    136
    Thanks G/R
    24/215
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Torpedoes View Post
    While we're on this topic, do you guys have any tricks for finding inner offsets?

    You can find global offsets using signature scans and you can find Lua Functions and Descriptors by dumping the table. But how about things like unit positions, angles, etc.
    I use sub-patterns for that (what Frosttall referred to as "signature scan with two layers").

    Code:
    {
      "CGUnit_C__GetPosition": {
        "pat": "55 8b ?? 8b ?? ?? ?? ?? ?? 8d ?? ?? 50 ff ?? ?? e8 ?? ?? ?? ?? 8b ?? ?? 5d c2"
      },
      "CMovementOffset": {
        "displ": 2,
        "ref": "CGUnit_C__GetPosition",
        "size": 4,
        "subpat": ".8b 8d"
      },
      "CMovementPos_Ofs": {
        "displ": 2,
        "ref": "CGUnit_C__GetPosition",
        "size": 1,
        "subpat": ".8d"
      }
    }
    So the Unit position would be at [address + CMovementOffset] + CMovementPos_Ofs. With those reads, you get the final "UnitPosXOffset" which is simply the final difference.

    This JSON is parsed by my offset finder and applies primary opcode patterns in order to find the desired offset. It also supports string xrefs:

    Code:
    {
      "JumpOrAscendStart_Ofs": {
        "string": "JumpOrAscendStart"
      },
      "Script_JumpOrAscendStart": {
        "rebase": 1,
        "ref": "JumpOrAscendStart_Ofs+4",
        "size": 4
      },
      "CGUnit_C__OnFlightLocal": {
        "displ": 1,
        "function": 1,
        "ref": "Script_JumpOrAscendStart",
        "subpat": ".e8 eb"
      }
    }
    And you can mix opcodes with mnemonics as well, because sometimes a "push" is replaced with another opcode, but the logic of the ASM keeps the same.
    Code:
    {
      "CGGameUI__Initialize": {
        "string": "Whether taint logging is enabled"
      },
      "LoadScriptFunctions": {
        "ref": "CGGameUI__Initialize",
        "subpat": ".e8 e8 push e8",
        "displ": 1,
        "function": 1
      }
    }
    But I only do this because I had the "fun" idea to add support to all WoW versions from 5.4.8 to 7.0.3. If you are only working with the latest version, simple binary patterns should be enough to handle it all.

    Anyways, the whole point is to use one offset to find others. If you are able to support "unlimited layers", that's better and faster! I think I've got some patterns here that have about 7 layers, as they start on CMovement_C__UpdatePlayerMovement and end on movement CMSG packet opcodes.

  5. Thanks iispyderii (1 members gave Thanks to reliasn for this useful post)
Page 2 of 2 FirstFirst 12

Similar Threads

  1. [WoW] [6.1.0 19678] Release Info Dump Thread
    By aeo in forum WoW Memory Editing
    Replies: 13
    Last Post: 02-27-2015, 09:54 PM
  2. [WoW] [6.0.3 19342] Release Info Dump Thread
    By danwins in forum WoW Memory Editing
    Replies: 19
    Last Post: 02-19-2015, 12:35 PM
  3. [WoW] [6.0.3 19103] Release Info Dump Thread
    By Torpedoes in forum WoW Memory Editing
    Replies: 30
    Last Post: 12-12-2014, 06:27 PM
  4. [WoW] [6.0.3 19243] Release Info Dump Thread
    By drizz in forum WoW Memory Editing
    Replies: 15
    Last Post: 12-12-2014, 05:06 AM
  5. [WoW] [6.0.3 19116] Release Info Dump Thread
    By evil2 in forum WoW Memory Editing
    Replies: 32
    Last Post: 12-03-2014, 09:40 PM
All times are GMT -5. The time now is 02:32 PM. 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