| View previous topic :: View next topic |
| Author |
Message |
ileandros Newbie cheater
Reputation: 0
Joined: 02 Oct 2012 Posts: 17
|
Posted: Wed Sep 18, 2013 8:01 pm Post subject: Warcraft 3 (DotA) read names from memory |
|
|
Hello there guys,
I once again was trying to play with cheat engine and as usual I failed
I am using AutoIT with Scite to create a small script to read the names of the local players ingame.
This is what I created so far:
| Code: | $WarcraftPID = WinGetProcess("[CLASS:Warcraft III]")
$WarcraftHandle = _MemoryOpen($WarcraftPID)
$GameDLL = _MemoryModuleGetBaseAddress($WarcraftPID, "Game.dll")
$WarcraftLocation = _ProcessGetLocation($WarcraftPID)
$WarcraftVersion = FileGetVersion($WarcraftLocation)
$name = _MemoryRead(0x453000, $WarcraftHandle, "byte")
MsgBox(0, "", $name & @CRLF)
_MemoryClose($WarcraftHandle) |
But it return fail. It returns some numbers. It is not binary or something.
This is the closest static address I could get from the game with the cheat engine.
Anyone who would help me read the names or guide me is welcome.
Thanks in advance everyone.
Cheers |
|
| Back to top |
|
 |
ileandros Newbie cheater
Reputation: 0
Joined: 02 Oct 2012 Posts: 17
|
Posted: Thu Sep 19, 2013 8:46 pm Post subject: |
|
|
| Still looking for some help gentlemens... |
|
| Back to top |
|
 |
ileandros Newbie cheater
Reputation: 0
Joined: 02 Oct 2012 Posts: 17
|
Posted: Fri Sep 20, 2013 6:18 pm Post subject: |
|
|
| Please give it a shot. I am sure a lot of people here have warcraft 3 installed... |
|
| Back to top |
|
 |
ileandros Newbie cheater
Reputation: 0
Joined: 02 Oct 2012 Posts: 17
|
Posted: Tue Sep 24, 2013 8:11 pm Post subject: |
|
|
| Anyone? I searched and found that it can be done with winpac but i prefere doing it with some memory read. Someone can try to find an address that could help me?!? |
|
| Back to top |
|
 |
Mal1t1a Cheater
Reputation: 0
Joined: 03 Jan 2010 Posts: 40
|
Posted: Wed Sep 25, 2013 9:19 am Post subject: |
|
|
Join the game, search for the player's name.
Find the non-static address.
Add the address to the address list.
Right-click said address, click "Pointerscan for this address"
Click okay to confirm your parameters for the pointerscan (searching for address not value).
Select where you want to save the pointerscan file (THIS IS IMPORTANT).
Wait until the scan completes.
Look at the pointers in the pointerscan list.
I usually add the first one via double-click.
Restart the program, and do everything again until you find the static address, it'll probably be something like: "war3.exe + 0x540181C"
Once you get the hang of the pointerscan method, you'll find that alot of values you are looking for may end up embeded in a library that is not the process. |
|
| Back to top |
|
 |
ileandros Newbie cheater
Reputation: 0
Joined: 02 Oct 2012 Posts: 17
|
Posted: Wed Sep 25, 2013 10:45 pm Post subject: |
|
|
| Mal1t1a wrote: | Join the game, search for the player's name.
Find the non-static address.
Add the address to the address list.
Right-click said address, click "Pointerscan for this address"
Click okay to confirm your parameters for the pointerscan (searching for address not value).
Select where you want to save the pointerscan file (THIS IS IMPORTANT).
Wait until the scan completes.
Look at the pointers in the pointerscan list.
I usually add the first one via double-click.
Restart the program, and do everything again until you find the static address, it'll probably be something like: "war3.exe + 0x540181C"
Once you get the hang of the pointerscan method, you'll find that alot of values you are looking for may end up embeded in a library that is not the process. |
Thanks for the tip. I found the name searching for a string. When found a dynamic address i searched for pointer scanned to this address.
After many times i came up with something like this
<?xml version="1.0"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>4</ID>
<Description>"name"</Description>
<Color>80000008</Color>
<VariableType>4 Bytes</VariableType>
<Address>"Game.dll"+00AB6884</Address>
<Offsets>
<Offset>A8</Offset>
<Offset>4</Offset>
<Offset>1C</Offset>
<Offset>34C</Offset>
<Offset>D0</Offset>
</Offsets>
</CheatEntry>
</CheatEntries>
</CheatTable>
I restarted warcraft and then reloaded the window to cheat engine and the address was the same, i think. I turned it to string and then renamed it and it worked so i guess it is good. But not sure what i should be doing now? The outertext of the address in the cheat engine is something like this: P->1107B100
Means that the current address point to 1107B100? What its actual adress?
How am i supposed to read it? In the xml i am seeing that it has 4 offsets... |
|
| Back to top |
|
 |
|