Cheat Engine Forum Index Cheat Engine
The Official Site of Cheat Engine
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 


Warcraft 3 (DotA) read names from memory

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> General Gamehacking
View previous topic :: View next topic  
Author Message
ileandros
Newbie cheater
Reputation: 0

Joined: 02 Oct 2012
Posts: 17

PostPosted: Wed Sep 18, 2013 8:01 pm    Post subject: Warcraft 3 (DotA) read names from memory Reply with quote

Hello there guys,

I once again was trying to play with cheat engine and as usual I failed Razz
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
View user's profile Send private message
ileandros
Newbie cheater
Reputation: 0

Joined: 02 Oct 2012
Posts: 17

PostPosted: Thu Sep 19, 2013 8:46 pm    Post subject: Reply with quote

Still looking for some help gentlemens...
Back to top
View user's profile Send private message
ileandros
Newbie cheater
Reputation: 0

Joined: 02 Oct 2012
Posts: 17

PostPosted: Fri Sep 20, 2013 6:18 pm    Post subject: Reply with quote

Please give it a shot. I am sure a lot of people here have warcraft 3 installed...
Back to top
View user's profile Send private message
ileandros
Newbie cheater
Reputation: 0

Joined: 02 Oct 2012
Posts: 17

PostPosted: Tue Sep 24, 2013 8:11 pm    Post subject: Reply with quote

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
View user's profile Send private message
Mal1t1a
Cheater
Reputation: 0

Joined: 03 Jan 2010
Posts: 40

PostPosted: Wed Sep 25, 2013 9:19 am    Post subject: Reply with quote

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
View user's profile Send private message
ileandros
Newbie cheater
Reputation: 0

Joined: 02 Oct 2012
Posts: 17

PostPosted: Wed Sep 25, 2013 10:45 pm    Post subject: Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> General Gamehacking All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group

CE Wiki   IRC (#CEF)   Twitter
Third party websites