Reading Pointers

Posts 110 of 10 · Page 1 of 1
Reading Pointers
So i've found an adress and the pointers. I can get it to read with just the address, but i cant seem to figure out the code with offsets. Pls help.
Base Addresss + Pointer reading gives you Address1
Address1 + Offset1 reading gives you Address2
And so on
I recommend using a pointer scan - There are plenty of youtube videos on how to do this. What pointer are you looking for. I have an extensive list of pointers I have found in trove, and they are up to date.
Quote Originally Posted by ninjadude1 View Post
I recommend using a pointer scan - There are plenty of youtube videos on how to do this. What pointer are you looking for. I have an extensive list of pointers I have found in trove, and they are up to date.
He said he already has pointer and offsets -_-'
Ok im so confused at this point. What i can do currently is read the value from the basic address that i find first, no pointer or offsets. This is the code i use:

ProcessName := "trove.exe"
hwnd := MemoryOpenFromName(ProcessName)

Adress = 0x2A3C4514

Adress2 := MemoryReadPointer(hwnd,Adress, "int")

MsgBox, %Adress2%



return

MemoryOpenFromName(Name)
{
Process, Exist, %Name%
Return DllCall("OpenProcess", "Uint", 0x1F0FFF, "int", 0, "int", PID := ErrorLevel)
}

MemoryReadPointer(hwnd, base, datatype="int", length=4, offsets=0, offset_1=0, offset_2=0, offset_3=0, offset_4=0, offset_5=0, offset_6=0, offset_7=0, offset_8=0, offset_9=0)
{
B_FormatInteger := A_FormatInteger
Loop, %offsets%
{
baseresult := MemoryRead(hwnd,base)
Offset := Offset_%A_Index%
SetFormat, integer, h
base := baseresult + Offset
SetFormat, integer, d
}
SetFormat, Integer, %B_FormatInteger%
return MemoryRead(hwnd,base,datatyp,length)
}

MemoryRead(hwnd, address, datatype="int", length=4, offset=0)
{
VarSetCapacity(readvalue,length, 0)
DllCall("ReadProcessMemory","Uint",hwnd,"Uint",add ress+offset,"Str",readvalue,"Uint",length,"Uint *",0)
finalvalue := NumGet(readvalue,0,datatype)
return finalvalue
}

But how do i change this to read the consistent address that doesn't change each time the game restarts?
Quote Originally Posted by phj280600 View Post
Ok im so confused at this point. What i can do currently is read the value from the basic address that i find first, no pointer or offsets. This is the code i use:

ProcessName := "trove.exe"
hwnd := MemoryOpenFromName(ProcessName)

Adress = 0x2A3C4514

Adress2 := MemoryReadPointer(hwnd,Adress, "int")

MsgBox, %Adress2%



return

MemoryOpenFromName(Name)
{
Process, Exist, %Name%
Return DllCall("OpenProcess", "Uint", 0x1F0FFF, "int", 0, "int", PID := ErrorLevel)
}

MemoryReadPointer(hwnd, base, datatype="int", length=4, offsets=0, offset_1=0, offset_2=0, offset_3=0, offset_4=0, offset_5=0, offset_6=0, offset_7=0, offset_8=0, offset_9=0)
{
B_FormatInteger := A_FormatInteger
Loop, %offsets%
{
baseresult := MemoryRead(hwnd,base)
Offset := Offset_%A_Index%
SetFormat, integer, h
base := baseresult + Offset
SetFormat, integer, d
}
SetFormat, Integer, %B_FormatInteger%
return MemoryRead(hwnd,base,datatyp,length)
}

MemoryRead(hwnd, address, datatype="int", length=4, offset=0)
{
VarSetCapacity(readvalue,length, 0)
DllCall("ReadProcessMemory","Uint",hwnd,"Uint",add ress+offset,"Str",readvalue,"Uint",length,"Uint *",0)
finalvalue := NumGet(readvalue,0,datatype)
return finalvalue
}

But how do i change this to read the consistent address that doesn't change each time the game restarts?
You have to get a pointer + offsets. Tutorials on youtube as @ninjadude1 said
i got the part down on how to find the values, what im lacking is the AHK code.
Read memory from the first adress and add offset 1
Read memory from the obtained address and add offset 2
..
oh ok thx. You are the real mvp of this forum.
Posts 110 of 10 · Page 1 of 1

Post a Reply

Similar Threads

Tags for this Thread

None

Need help?