#include ".\include\NomadMemory.au3"
#include <MsgBoxConstants.au3>
Global Const $CurMgrPointer = 0x2387C88
Global Const $FirstObjectOffset = 0x18
Global Const $NextObjectOffset = 0x70
Global Const $LocalGUID = 0xB8
Global Const $UnitName1 = 0x17B8
Global Const $UnitName2 = 0xE0
Func GETWOWBASEADDRESS($PID)
$HSNAP = DllCall("Kernel32.dll", "HANDLE", "CreateToolhelp32Snapshot", "DWORD", 8, "DWORD", $PID)
$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") = "Wowclassic.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 ;==>GETWOWBASEADDRESS
$PID = WinGetProcess("World of Warcraft")
Global $WowBase = GetWoWBaseAddress($PID)
$hWow = _MemoryOpen($PID)
Hex($WowBase + $CurMgrPointer)
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $PID = ' & $PID & @CRLF) ;### Debug Console
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $WowBase = ' & $WowBase & @CRLF) ;### Debug Console
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : Hex($WowBase + $CurMgrPointer) = ' & Hex($WowBase + $CurMgrPointer) & @CRLF) ;### Debug Console
$curMgr = _MemoryRead("0x" & Hex($WowBase + $CurMgrPointer), $hWow , "dword")
$pGUID = _MemoryRead("0x" & Hex($curMgr + $LocalGUID ), $hWow , "UINT64")
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $curMgr = ' & $curMgr & @CRLF) ;### Debug Console
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $pGUID = ' & $pGUID & @CRLF) ;### Debug Console