WoW Memory Reading Help (Player Name) menu

User Tag List

Results 1 to 6 of 6
  1. #1
    zamba1587's Avatar Member
    Reputation
    15
    Join Date
    Jan 2008
    Posts
    6
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    WoW Memory Reading Help (Player Name)

    Hi,
    I am Trying to read my player name from World of Warcraft 4.2.0 14333, I am doing something wrong and i dont know what it is, can some one please help me out.
    the program is supposed to send a messagebox from autoit displaying my player name, but insted it returns a "0".

    Thanks in advanced!

    Code:
    ;Memory Reading [WoW][4.2.0.14333] Info Dump Thread
    ;Main Goal of This Program is to get My Player Name from WoW
    ;
    ;CREDITS
    ;-------------------------------------------------------------------------
    ;gononono64 (Thread: [Guide] How to make a Wow bot for complete newbs!)  
    ;-------------------------------------------------------------------------
    ;Link ->
    ;http://www.mmowned.com/forums/world-of-warcraft/bots-programs/memory-editing/319172-guide-how-make-wow-bot-complete-newbs.html
    
    ;-------------------------------------------------------------------------
    ;Thread: Need some help on my own GatherBot [AutoIt]
    ;-------------------------------------------------------------------------
    ;Link ->
    ;http://www.mmowned.com/forums/world-of-warcraft/bots-programs/memory-editing/320471-need-some-help-my-own-gatherbot-autoit.html
    
    HotKeySet("{ESC}", "Terminate")
    
    #include <NomadMemory.au3>
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #RequireAdmin
    
    ; Offsets Object Manager
    Global Const $ClientConnection = 0x97DA48
    Global Const $CurMgrOffset = 0x463C 
    Global Const $FirstObjectOffset = 0xB4 
    Global Const $NextObjectOffset = 0x3C 
    Global Const $PlayerGUID = 0xB8
    Global Const $GameObjGUIDOffset = 0x30
    Global Const $GameObjTypeOffset = 0x14
    
    ; Variables Corpse Player
    Global Const $UnitPosXOffset = 0xA964A4
    Global Const $UnitPosYOffset = 0xA964A4 + 0x4
    Global Const $UnitPosZOffset = 0xA964A4 + 0x8
    
    ; Variables for Player Name
    Global const $nameStorePtr= 0x9573D8 + 0x8		
    Global const $nameMaskOffset=0x024				
    Global const $nameBaseOffset=0x01c				
    Global const $nameStringOffset=0x020			
    
    $ProcessID = WinGetProcess("Wow.exe") 
    Global $WowBase = GetWoWBaseAddress($ProcessID)
    
    $WowProcess = _MemoryOpen($ProcessID) 
    
    $currMgr_pre = _MemoryRead("0x" & Hex($WowBase + $ClientConnection), $WowProcess , "dword")
    $currMgr = _MemoryRead("0x" & Hex($currMgr_pre + $CurMgrOffset), $WowProcess , "dword")
    $pGUID = _MemoryRead("0x" & Hex($currMgr + $PlayerGUID), $WowProcess , "UINT64")
    
    $pObjectMemLoc = GetMemLocByGUID($pGUID)
    
    While 1
    	MsgBox(4096,"Player Name",GetPlayerName($pGUID))
    	exit
    WEnd
    
    Func GetPlayerName($fGUID)
    
    	$mask=_MemoryRead($WowBase + 0x9573D8 + 0x8 +0x024, $WowProcess) 
    	$base=_MemoryRead($WowBase + 0x9573D8 + 0x8 +0x01c, $WowProcess) 
    
    	$shortGUID = BitAnd($fGUID, 0xffffffff)
    	if ($mask=0xffffffff) Then
    		return ""
    	EndIf
    
    	$offset = 12 * BitAnd($mask, $shortGUID)
    	$current = _MemoryRead($base+$offset+8, $WowProcess)
    	$offset = _MemoryRead($base+$offset, $WowProcess)
    
    	if (BitAND($current, 0x1) = 0x1) Then
    
    		return ""
    	EndIf
    
    	$testGUID= _MemoryRead($current, $WowProcess)
    
    	while ($testGUID <> $shortGUID)
    
    		$current=_MemoryRead($current+$offset+4, $WowProcess)
    		if (BitAND($current, 0x1) = 0x1) Then
    			return ""
    		EndIf
    		$testGUID=_MemoryRead($current, $WowProcess)
    	WEnd
    	return _MemoryRead($current + 0x020, $WowProcess, "char[20]")
    EndFunc
    
    Func Terminate()
        Exit 0
    EndFunc
    
    Func GETWOWBASEADDRESS($ProcessID)
    	
    	$HSNAP = DllCall("Kernel32.dll", "HANDLE", "CreateToolhelp32Snapshot", "DWORD", 8, "DWORD", $ProcessID)
    	$STMODULE = DllStructCreate("DWORD dwSize;DWORD th32ModuleID;DWORD th32ProcessID;" & "DWORD GlblcntUsage;DWORD ProccntUsage;ptr modBaseAddr;" & "DWORD modBaseSize;HANDLE hModule;WCHAR szModule[256];" & "WCHAR szExePath[260]")
    	DllStructSetData($STMODULE, "dwSize", DllStructGetSize($STMODULE))
    	$RET = DllCall("Kernel32.dll", "BOOLEAN", "Module32FirstW", "HANDLE", $HSNAP[0], "ptr", DllStructGetPtr($STMODULE))
    
    	IF ($RET[0] = False) Then
    		DllCall("Kernel32.dll", "BOOLEAN", "CloseHandle", "HANDLE", $HSNAP[0])
    		Return 0
    	Else
    		$RET[0] = True
    		Do
    			If DllStructGetData($STMODULE, "szModule") = "Wow.exe" Then
    
    				DllCall("Kernel32.dll", "BOOLEAN", "CloseHandle", "HANDLE", $HSNAP[0])
    
    				Return DllStructGetData($STMODULE, "modBaseAddr")
    			EndIf
    			$RET = DllCall("Kernel32.dll", "BOOLEAN", "Module32NextW", "HANDLE", $HSNAP[0], "ptr", DllStructGetPtr($STMODULE))
    		Until $RET[0] = False
    	EndIf
    EndFunc
    
    Func GetMemLocByGUID($guid)
    	;Read the first wow object by adding our current manager address and our first object offset together
    	$NextObject = _MemoryRead("0x" & Hex($currMgr + $FirstObjectOffset), $WowProcess , "dword")	
    	
    	;next get the object type buy adding our first object and our Objtype offset together  and reading that
    	$ObjType = _MemoryRead("0x" & Hex($NextObject + $GameObjTypeOffset), $WowProcess , "dword")
    	
    	;If the return of object type is less than or equal to 7 (which it should always be) and more than 0 in the case that we do have an object in the list than do a while loop. 
    
    	while (($ObjType <= 7) And ($ObjType > 0))
    		;NOTE: if there is an object in the list, objType will have to be = 1 to 7
    		; If our object plus the GUIDoffset = the GUID we are looking for (example our localplayer GUID) …
    		
                    IF (_MemoryRead("0x" & Hex($NextObject + $GameObjGUIDOffset), $WowProcess , "UINT64") = $guid) Then ; …then return our object
    		
    			Return $NextObject ;found what we wanted.
    		EndIf
    
    		;if no return happens (stays in the function) then cycle through the objects using our next object offset on our next object (might also be called current object)
    		$NextObject = _MemoryRead("0x" & Hex($NextObject + $NextObjectOffset), $WowProcess , "dword")
    
     		;We will also need to see the type
    		$ObjType = _MemoryRead("0x" & Hex($NextObject + $GameObjTypeOffset), $WowProcess , "dword")
    	Wend
    
    	;if we find nothing Return 0 (address are probably wrong or you messed up code)
    	Return 0
    EndFunc
    Attached Files Attached Files

    WoW Memory Reading Help (Player Name)
  2. #2
    DarkLinux's Avatar Former Staff
    CoreCoins Purchaser Authenticator enabled
    Reputation
    1627
    Join Date
    May 2010
    Posts
    1,846
    Thanks G/R
    193/539
    Trade Feedback
    16 (100%)
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)
    I don't think anyone is going to help you. You Copied and Pasted someones work and your asking why it does not function the way you would like. I hate to sound like an ass but this section of the form does not allow for questions like this. [NO QUESTIONS HERE] You can get away with some questions but they cant start with "Why does whit not work". Keep on trying, you will get it!

  3. #3
    LogicWin's Avatar Master Sergeant
    Reputation
    51
    Join Date
    Mar 2011
    Posts
    103
    Thanks G/R
    4/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0x97DA88 has nothing to do with namestore_ptr or what ever, you need to direct read it.

    Example
    _memoryread($base + 0x97DA88, $wow, "char[12]")

  4. #4
    zamba1587's Avatar Member
    Reputation
    15
    Join Date
    Jan 2008
    Posts
    6
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Thanks LogicWin !!

    Hi Thanks LogicWin, It Works !!!!.

    The Variable 0x97DA88 found it here

    Code:
            /// <summary>
            /// Player Offset
            /// </summary>
            public enum Player
            {
               LastTargetGUID = 0xA96190,
               petGUID = 0xB04170,
               playerName = 0x97DA88,
               PlayerComboPoint = 0xA9622D,
               RetrieveCorpseWindow = 0xA96200,
            }
    Here is the New Fix Code !!!

    Code:
    ;Memory Reading [WoW][4.2.0.14333] Info Dump Thread
    ;Main Goal of This Program is to get My Player Name from WoW
    ;
    ;CREDITS
    ;-------------------------------------------------------------------------
    ;gononono64 (Thread: [Guide] How to make a Wow bot for complete newbs!)  
    ;-------------------------------------------------------------------------
    ;Link ->
    ;http://www.mmowned.com/forums/world-of-warcraft/bots-programs/memory-editing/319172-guide-how-make-wow-bot-complete-newbs.html
    
    ;-------------------------------------------------------------------------
    ;Thread: Need some help on my own GatherBot [AutoIt]
    ;-------------------------------------------------------------------------
    ;Link ->
    ;http://www.mmowned.com/forums/world-of-warcraft/bots-programs/memory-editing/320471-need-some-help-my-own-gatherbot-autoit.html
    
    #include <NomadMemory.au3>
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #RequireAdmin
    
    $ProcessID = ProcessExists("wow.exe") 
    
    if($ProcessID = 0) Then
    	MsgBox(4096,"1","World of Warcraft Not Found")
    	exit
    EndIf
    
    Global $WowBase = GetWoWBaseAddress($ProcessID)
    
    $WowProcess = _MemoryOpen($ProcessID) 
    
    While 1
    	
    	$PlayerName = GetPlayerName()
    	if($PlayerName = "") Then
    		MsgBox(4096,"Please log in your character")
    	Else
    		MsgBox(4096,"Player Name","PLAYER NAME ---> " & GetPlayerName())
    	EndIf
    	exit
    WEnd
    
    Func GetPlayerName()
    	return _memoryread($WowBase + 0x97DA88, $WowProcess, "char[20]")
    EndFunc
    
    
    Func GETWOWBASEADDRESS($ProcessID)
    	
    	$HSNAP = DllCall("Kernel32.dll", "HANDLE", "CreateToolhelp32Snapshot", "DWORD", 8, "DWORD", $ProcessID)
    	$STMODULE = DllStructCreate("DWORD dwSize;DWORD th32ModuleID;DWORD th32ProcessID;" & "DWORD GlblcntUsage;DWORD ProccntUsage;ptr modBaseAddr;" & "DWORD modBaseSize;HANDLE hModule;WCHAR szModule[256];" & "WCHAR szExePath[260]")
    	DllStructSetData($STMODULE, "dwSize", DllStructGetSize($STMODULE))
    	$RET = DllCall("Kernel32.dll", "BOOLEAN", "Module32FirstW", "HANDLE", $HSNAP[0], "ptr", DllStructGetPtr($STMODULE))
    
    	IF ($RET[0] = False) Then
    		DllCall("Kernel32.dll", "BOOLEAN", "CloseHandle", "HANDLE", $HSNAP[0])
    		Return 0
    	Else
    		$RET[0] = True
    		Do
    			If DllStructGetData($STMODULE, "szModule") = "Wow.exe" Then
    
    				DllCall("Kernel32.dll", "BOOLEAN", "CloseHandle", "HANDLE", $HSNAP[0])
    
    				Return DllStructGetData($STMODULE, "modBaseAddr")
    			EndIf
    			$RET = DllCall("Kernel32.dll", "BOOLEAN", "Module32NextW", "HANDLE", $HSNAP[0], "ptr", DllStructGetPtr($STMODULE))
    		Until $RET[0] = False
    	EndIf
    EndFunc
    Last edited by zamba1587; 08-02-2011 at 03:10 PM.

  5. #5
    gononono64's Avatar Contributor
    Reputation
    100
    Join Date
    Jul 2009
    Posts
    85
    Thanks G/R
    1/5
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    thats what happens when you copy code you tend to not know what the hell is going on
    Hi! My name is Devon and I’m an alcoholic. Moving on…
    https://www.ownedcore.com/forums/world-of-warcraft/world-of-warcraft-bots-programs/wow-memory-editing/319172-guide-how-make-wow-bot-complete-newbs.html

  6. #6
    Cypher's Avatar Kynox's Sister's Pimp
    Reputation
    1358
    Join Date
    Apr 2006
    Posts
    5,368
    Thanks G/R
    0/6
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by DarkLinux View Post
    I don't think anyone is going to help you. You Copied and Pasted someones work and your asking why it does not function the way you would like. I hate to sound like an ass but this section of the form does not allow for questions like this. [NO QUESTIONS HERE] You can get away with some questions but they cant start with "Why does whit not work". Keep on trying, you will get it!
    Not quite correct. We allow questions here, but you're required to abide by the section-specific rules.

Similar Threads

  1. (Tutorial) Starting WoW-Memory Reading/Writing
    By Mrbrightside in forum WoW Memory Editing
    Replies: 198
    Last Post: 06-02-2017, 05:11 PM
  2. WoW Memory reading/writing questions
    By mathix in forum WoW Memory Editing
    Replies: 3
    Last Post: 03-11-2013, 08:17 AM
  3. [Request][Bounty] WoW memory reading example script c++
    By foxlin in forum WoW Bots Questions & Requests
    Replies: 4
    Last Post: 07-27-2011, 09:08 AM
  4. [Help] Reading Player Names
    By nopz in forum WoW Memory Editing
    Replies: 0
    Last Post: 09-15-2009, 05:59 PM
  5. [Help] Player names?
    By wraithZX in forum WoW Memory Editing
    Replies: 15
    Last Post: 05-13-2008, 07:45 AM
All times are GMT -5. The time now is 12:00 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