4.0 Migration menu

Shout-Out

User Tag List

Page 2 of 8 FirstFirst 123456 ... LastLast
Results 16 to 30 of 111
  1. #16
    Nesox's Avatar ★ Elder ★
    Reputation
    1280
    Join Date
    Mar 2007
    Posts
    1,238
    Thanks G/R
    0/3
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by TOM_RUS View Post
    Updated idc script for labeling dbc offsets in IDA:
    Code:
    #include <ida.idc>
    
    /************************************************************************
       Desc:                Label each database with an appropriate name and struct
       Author:  kynox
       Modified for Cataclysm by TOM_RUS
       Website: http://www.gamedeception.net
    *************************************************************************/
    
    static WoWDb_GetName( dbBase )
    {
        auto dbName;
    
        // mov     eax, offset aDbfilesclientA ; "DBFilesClient\\Achievement.dbc"
        dbName = GetString( Dword(dbBase), -1, ASCSTR_C );
    
        //Message("%s", dbName);
    
        // Return the the token after \ and before .
        return substr( dbName, strstr( dbName, "\\" ) + 1, -5 );
    }
    
    static BuildStruct()
    {
        // struct size changed, need figure out what was removed....
        auto id;
        id = AddStrucEx(-1,"WoWClientDB",0);
    
        AddStrucMember(id, "funcTable",   0X00,   0x20500400,     0X0,    4,      0XFFFFFFFF,     0X0,    0x000002);
        AddStrucMember(id, "numRows",     0X04,   0x20000400,     -1,     4);
        AddStrucMember(id, "maxIndex",    0X08,   0x20000400,     -1,     4);
        AddStrucMember(id, "minIndex",    0X0C,   0x20000400,     -1,     4);
        AddStrucMember(id, "stringTable", 0X10,   0x20000400,     -1,     4);
        AddStrucMember(id, "FirstRow",    0X14,   0x20000400,     -1,     4);
        AddStrucMember(id, "Rows",        0X18,   0x25500400,     0XFFFFFFFF,     4,      0XFFFFFFFF,     0X0,    0x000002);
    
        return id;
    }
    
    static StructBuilt()
    {
        return ( GetStrucIdByName( "WoWClientDB" ) != -1 );
    }
    
    static main()
    {
        auto curAddr, y, count;
        //                                     55 8B EC 51 53 56 57 8B 7D 08 8D 45 08 89 4D FC 8B 0F 50 51 E8 ? ? ? ? 83 7D 08 00 75 15 8B
        //curAddr = FindBinary( 0, SEARCH_DOWN, "55 8B EC 51 53 56 8B 75 08 57 8D 45 08 8B D9 8B 0E 50 51 E8 ? ? ? ? 83 7D 08 00 75 15 8B 16" );
        //                                     55 8B EC 81 EC 04 01 00 00 53 56 57 8B 7D 08 8D 45 08 89 4D FC 8B 0F 50 51 E8 ? ? ? ? 83 7D
        //curAddr = FindBinary( 0, SEARCH_DOWN, "55 8B EC 51 53 56 57 8B 7D 08 8D 45 08 89 4D FC 8B 0F 50 51 E8 ? ? ? ? 83 7D 08 00 75 15 8B" );
        curAddr = FindBinary( 0, SEARCH_DOWN, "55 8B EC 81 EC 04 01 00 00 53 56 57 8B 7D 08 8D 45 08 89 4D FC 8B 0F 50 51 E8 ? ? ? ? 83 7D" );
    
        if(curAddr == BADADDR)
        {
            Message("Can't find dbcLoadFunction, aborting...\n");
            return -1;
        }
    
        if ( !StructBuilt() )
        {
            Message( "Building struct..\n" );
    
            if( BuildStruct() == -1 )
            {
                Message( "Failed to build struct..\n" );
                return;
            }
        }
    
        for(y = RfirstB(curAddr); y != BADADDR; y = RnextB(curAddr, y))
        {
            auto dbNameOffset, dbStruct, dbName;
    
            dbStruct = ReadOperand(y, "mov", "offset");
            dbNameOffset = GetNameEffset(y);
    
            Message("%X %X %X\n", y, dbStruct, dbNameOffset);
    
            if(dbNameOffset == BADADDR)
            {
                count = count + HandleLoadLoop(dbStruct);
                continue;
            }
    
            SetType( dbStruct, "WoWClientDB;" );
            MakeStruct( dbStruct, "WoWClientDB" );
    
            dbName = WoWDb_GetName( dbNameOffset );
    
            Message("%s\n", dbName);
    
            MakeName( dbStruct, form( "g_%sDB", dbName ) );
            count++;
        }
    
        Message("DBC count %u\n", count);
    }
    
    static HandleLoadLoop(xref)
    {
        auto count;
        do
        {
            auto dbNameOffset, dbStruct, dbName;
            
            dbStruct = Dword(xref);
            dbNameOffset = Dword(xref + 4);
            
            if(dbStruct == 0 || dbNameOffset == 0)
                break;
    
            dbName = WoWDb_GetName(dbNameOffset);
    
            Message("%X %X %s\n", dbStruct, dbNameOffset, dbName);
    
            SetType( dbStruct, "WoWClientDB;" );
            MakeStruct( dbStruct, "WoWClientDB" );
            MakeName( dbStruct, form( "g_%sDB", dbName ) );
            xref = xref + 8;
            count++;
        } while(1);
        return count;
    }
    
    static GetNameEffset( xref )
    {
        auto offset, dbName;
        offset = ReadOperand( xref, "push", "offset" );
        dbName = GetString( Dword(offset), -1, ASCSTR_C );
        if(strstr( dbName, ".dbc" ) > -1)
            return offset;
        return BADADDR;
    }
    
    static ReadOperand( xref, operand, filter )
    {
        auto prevFunc;
        prevFunc = PrevFunction( xref );
        //Message("%X %X\n", xref, prevFunc);
        do
        {
            auto disasm;
            disasm = GetDisasm( xref );
    
            if ( strstr( disasm, operand ) > -1 && strstr( disasm, filter ) > -1 )
                break;
    
            xref = PrevHead( xref, prevFunc );
        } while ( 1 );
    
        return GetOperandValue( xref, operand == "mov" ? 1 : 0);
    }
    Cheers mate! very useful +Rep



    4.0 Migration
  2. #17
    JuJuBoSc's Avatar Banned for scamming CoreCoins Purchaser
    Reputation
    1019
    Join Date
    May 2007
    Posts
    922
    Thanks G/R
    1/3
    Trade Feedback
    1 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Also some change for enumerate the object manager :

    Code:
            public enum ObjectManager
            {
    
                CurMgrPointer = 0x008A5C20,                 // 4.0.1 13164
                CurMgrOffset = 0x4618,                      // 4.0.1 13164
                NextObject = 0x3C,                          // 4.0.1 13164
                FirstObject = 0xB4,                         // 4.0.1 13164
                LocalGUID = 0xC8                            // 4.0.1 13164
    
            }
    EDIT : For who want descriptors by index : http://pastie.org/1217984
    Last edited by JuJuBoSc; 10-13-2010 at 07:44 AM.

  3. #18
    KuRIoS's Avatar Admin
    Authenticator enabled
    Reputation
    2984
    Join Date
    Apr 2006
    Posts
    9,811
    Thanks G/R
    353/298
    Trade Feedback
    9 (100%)
    Mentioned
    5 Post(s)
    Tagged
    1 Thread(s)
    For offsets etc wouldnt it be easier for you guys to have it in the wiki? MMOwned Wiki (members with dumb chars in their nick cant get in)

  4. #19
    natt_'s Avatar Contributor
    Reputation
    145
    Join Date
    Dec 2007
    Posts
    391
    Thanks G/R
    13/0
    Trade Feedback
    3 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by JuJuBoSc View Post
    Also some change for enumerate the object manager :

    Code:
            public enum ObjectManager
            {
    
                CurMgrPointer = 0x008A5C20,                 // 4.0.1 13164
                CurMgrOffset = 0x4618,                      // 4.0.1 13164
                NextObject = 0x3C,                          // 4.0.1 13164
                FirstObject = 0xB4,                         // 4.0.1 13164
                LocalGUID = 0xC8                            // 4.0.1 13164
    
            }
    EDIT : For who want descriptors by index : #1217984 - Pastie
    Thanks! +rep

  5. #20
    MaiN's Avatar Elite User
    Reputation
    335
    Join Date
    Sep 2006
    Posts
    1,047
    Thanks G/R
    0/10
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by DrakeFish View Post
    Blizzard started doing some more detailed Crash Reports or something? File: .\Movement.cpp Line: 12 - Anonymous - yfk2kGu9 - Pastebin.com (While "trying" some new swim functions)
    That's a debug assertion failing.
    [16:15:41] Cypher: caus the CPU is a dick
    [16:16:07] kynox: CPU is mad
    [16:16:15] Cypher: CPU is all like
    [16:16:16] Cypher: whatever, i do what i want

  6. #21
    Mr.Sergey's Avatar Contributor
    Reputation
    117
    Join Date
    Apr 2009
    Posts
    201
    Thanks G/R
    6/23
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    sorry, deleted
    Last edited by Mr.Sergey; 10-13-2010 at 03:34 PM.

  7. #22
    NitroGlycerine's Avatar Member
    Reputation
    3
    Join Date
    May 2009
    Posts
    45
    Thanks G/R
    5/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by JuJuBoSc View Post
    Code:
            public enum ObjectManager
            {
    
                CurMgrPointer = 0x008A5C20,                 // 4.0.1 13164
                CurMgrOffset = 0x4618,                      // 4.0.1 13164
                NextObject = 0x3C,                          // 4.0.1 13164
                FirstObject = 0xB4,                         // 4.0.1 13164
                LocalGUID = 0xC8                            // 4.0.1 13164
    
            }
    Anyone tested these? Not working for me.

  8. #23
    caytchen's Avatar Contributor
    Reputation
    138
    Join Date
    Apr 2007
    Posts
    162
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    They're fine. Remember CurMgrPointer is a relative offset.

  9. #24
    oldmanofmen's Avatar Member
    Reputation
    12
    Join Date
    Jan 2010
    Posts
    104
    Thanks G/R
    4/3
    Trade Feedback
    3 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by NitroGlycerine View Post
    Not working for me.
    Clap. You're reading them as absolute addresses. You have to read the addresses relative to the WoW process now.

  10. #25
    boredevil's Avatar Active Member
    Reputation
    46
    Join Date
    Feb 2008
    Posts
    166
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    the ObjectBase is also 0x4 off
    Code:
    CGObject_Entry_Guid = 0x30      // unchanged
    CGObjMgr_ObjectBase = 0xAC
    CGObjMgr_FirstEntry = 0xB4
    CGObjMgr_LocalGuid = 0xC8

  11. #26
    Mr.Sergey's Avatar Contributor
    Reputation
    117
    Join Date
    Apr 2009
    Posts
    201
    Thanks G/R
    6/23
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by oldmanofmen View Post
    Clap. You're reading them as absolute addresses. You have to read the addresses relative to the WoW process now.
    I'm sorry, could you write it is now necessary to read a memory.
    I understand that to start I need find the "process offset", and then use, but how do I do not know. Pls help.

    Thank you in advance for your reply

    (Sorry fo my english)

  12. #27
    DrakeFish's Avatar Lazy Leecher

    Reputation
    634
    Join Date
    Nov 2008
    Posts
    569
    Thanks G/R
    0/14
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Mr.Sergey View Post
    I'm sorry, could you write it is now necessary to read a memory.
    I understand that to start I need find the "process offset", and then use, but how do I do not know. Pls help.

    Thank you in advance for your reply

    (Sorry fo my english)
    Sure,

    You can start by reading this:
    Process Class (System.Diagnostics)

    You will then be ready to read this:
    ProcessModule Class (System.Diagnostics)

    Here's an example if you don't get what's a module yet:
    Enumerating All Modules For a Process (Windows)

    Don't hesitate to read all of the detailed informations, it won't hurt you
    Last edited by DrakeFish; 10-13-2010 at 04:08 PM.

  13. #28
    mnbvc's Avatar Banned
    Reputation
    120
    Join Date
    Jul 2009
    Posts
    273
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    what i got so far:
    Code:
    tEnumVisibleObjects EnumVisibleObjects = (tEnumVisibleObjects)(wowbase+0x93BB0);
    tClntObjMgrObjectPtr ClntObjMgrObjectPtr = (tClntObjMgrObjectPtr)(wowbase+0x93E30);
    tClntObjMgrGetActivePlayer ClntObjMgrGetActivePlayer = (tClntObjMgrGetActivePlayer)(wowbase+0x929E0);
    tFrameScript__Execute FrameScript__Execute = (tFrameScript__Execute)(wowbase+0x3958F0);
    tFrameScript__GetLocalizedText FrameScript__GetLocalizedText = (tFrameScript__GetLocalizedText)(wowbase+0x1C1F60);
    tCGPlayer_C__CTMClickTerrain CGPlayer_C__CTMClickTerrain = (tCGPlayer_C__CTMClickTerrain)(wowbase+0x1CCFE0);
    tCGPlayer_C__IsClickMoving CGPlayer_C__IsClickMoving = (tCGPlayer_C__IsClickMoving)(wowbase+0x1C1A90);
    tCGPlayer_C__ClickToMove CGPlayer_C__ClickToMove = (tCGPlayer_C__ClickToMove)(wowbase+0x1C7E20);
    tCGGameUI__Target CGGameUI__Target = (tCGGameUI__Target)(wowbase+0x42A060);
    tGetCorpsePosition GetCorpsePosition = (tGetCorpsePosition)(wowbase+0x41E630);
    tGetObjectNameFromGuid GetObjectNameFromGuid = (tGetObjectNameFromGuid)(wowbase+0x1F9520);
    tCGWorldFrame__GetActiveCamera CGWorldFrame__GetActiveCamera = (tCGWorldFrame__GetActiveCamera)(wowbase+0x31B0);
    tCGUnit_C__UnitReaction CGUnit_C__UnitReaction = (tCGUnit_C__UnitReaction)(wowbase+0x1C51A0);
    tCMovement__CalcCurrentSpeed CMovement__CalcCurrentSpeed = (tCMovement__CalcCurrentSpeed)(wowbase+0x54ABD0);
    Code:
        zonename_ptr = 0x981688,
        loginstate_ptr = 0x96D514,
        InCombatLockdown_offset = 0x8B7BFC,
        InCombatLockdown_ptr = 4700,
    (everything untested)

    i have a problem with endscene:
    tEndScene EndScene = *(tEndScene*)(*(DWORD*)(*(DWORD*)((*(DWORD*)(wowbase+0x970F94))+0x27B4))+0xAC);
    it gets hooked, but in the first call, when i call return EndScene(pDevice); it crashes:
    The instruction at "0x42678AE9" referenced memory at "0x42678AE9".
    The memory could not be "executed".
    0x970F94 and 0x27B4 seem to be fine, i'm not sure about the 0xAC, but when i hook 0xA8 it never gets called. any ideas?

    some news about traceline would be great, if anybody is able to find it

  14. #29
    natt_'s Avatar Contributor
    Reputation
    145
    Join Date
    Dec 2007
    Posts
    391
    Thanks G/R
    13/0
    Trade Feedback
    3 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Hmm with some research i think i found out how to use the old method with a slight difference ?

    s_curmgr = ((WowBaseAdress+MgrPtr)+MgrOffset)
    curobject = (s_curmgr+firstobject)

    etc
    etc
    etc... But still it dosent seem to work, every object is returning 0

  15. #30
    PiroX's Avatar Knight
    Reputation
    180
    Join Date
    Sep 2006
    Posts
    196
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    nameStorePtrAddr = 0x881988

Page 2 of 8 FirstFirst 123456 ... LastLast

Similar Threads

  1. Free migration when Lich hits. True or false?
    By macho271 in forum World of Warcraft General
    Replies: 5
    Last Post: 08-23-2008, 02:20 AM
  2. Migrate to Russian realms SUCKS
    By Rockerfooi in forum World of Warcraft General
    Replies: 3
    Last Post: 08-06-2008, 07:46 PM
  3. Replies: 4
    Last Post: 06-11-2008, 05:05 PM
  4. Easy migrate a character!
    By INS4N3K1LL in forum WoW EMU Guides & Tutorials
    Replies: 6
    Last Post: 06-11-2008, 01:41 AM
  5. Free Character Migration
    By Unholyshaman in forum World of Warcraft General
    Replies: 0
    Last Post: 12-08-2007, 10:31 AM
All times are GMT -5. The time now is 11:06 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